Docs / The Pipeline / Steps 4–5 · Relay Distribution

Steps 4–5 · Relay Distribution

The bundle must not be traceable to one funding transaction. Wallet 0 splits the budget across every bundle wallet through relay.link, on your schedule.

Step 4 — Choose the window

Enter the total duration in hours (e.g. 0.5 = 30 min) and click Build plan. The engine reads wallet 0's live balance on the source chain and generates a plan:

  • Amounts — randomized around the average share, within ±30%
  • Timing — Poisson-spaced intervals rescaled to fill your window, with a randomized gap between every transfer
  • Routing — each entry is a relay.link cross-chain transfer into a different bundle wallet

The plan is written to out/funding-plan.json — inspectable, resumable.

Step 5 — Execute

Click Execute. The vault must be unlocked (the app asks for the password if needed). The engine then works through the plan:

  • Each transfer goes pending → sending → confirmed (or error)
  • Failed entries are retried on the next run — the journal makes the whole job crash-safe
  • The Setup step flips running while it works and done only when every entry is confirmed

from_balance mode means the plan always matches wallet 0's real balance — an empty funder refuses at plan time, not mid-execution.

API

RouteBodyNotes
POST /api/plan{hours, from_balance, src_chain, source_index}src_chain accepts 8453 or "base"
POST /api/execute{execute: true}requires unlocked vault; {execute: false} dry-runs

GET /api/state reports plan.status counts ({confirmed: n, pending: n, …}) — the UI derives step-5 completion from that, never from a flag you could fake.

Until this is done

Launch remains locked: /api/launch returns etape 5 : la distribution relay.link n'est pas terminee if any entry is unconfirmed.