Overview
GET /partner/v1/withdrawals/assets: list destination assets.POST /partner/v1/withdrawals/range: get min/max for a destination pair.POST /partner/v1/withdrawals/estimate: quote destination receive amount for a given amount.POST /partner/v1/withdrawals: create relay + fetch Rain withdrawal signature payload.
Withdrawal routes are dynamic (BTC/SOL/EVM and others) and can change. Always call
assets, range, and estimate before create.
In sandbox, source is fixed to rUSD on Base Sepolia.
source.contractId is optional.Flow
API flows (step-by-step)
1
1) Discover destination assets
Endpoint: You can optionally pass
GET /partner/v1/withdrawals/assetssourceChainId and sourceTokenAddress as hints, but they are not required.2
2) Get min/max for chosen route
Endpoint:
POST /partner/v1/withdrawals/range3
3) Estimate destination receive amount
Endpoint:
POST /partner/v1/withdrawals/estimate4
4) Create withdrawal signature payload (breaking schema)
Endpoint: Ready responses include:
POST /partner/v1/withdrawalsexecutioninfo for contract call routing.relaymetadata (payinAddress,payinExtraId,payoutAddress,payoutExtraId, route ids).
5
5) Execute onchain
frommust be the same admin EOA used in the create request (adminAddress).tomust beexecution.callTarget(controller or coordinator), not the collateral proxy address.- Use
parametersin order:[collateralProxy, token, amount, recipient, expiresAt, executorSalt, executorSignature]. - If
execution.callPath = controller_v1, call 7-argwithdrawAsset(…). - If
execution.callPath = coordinator_v2, call 10-argwithdrawAsset(…)and include v2 admin signature values. - If
statusispending, waitretryAfterSecondsand retry the same request with the same idempotency key.
Onchain execution details
Forcoordinator_v2, you must generate an additional admin signature before calling the contract.
Relay metadata fields
string
Provider exchange id for relay tracking.
string
Address Rain withdrawal sends funds to.
string
Optional memo/tag required on relay pay-in side.
string
Final destination address configured on the relay.
string
Optional destination memo/tag configured for payout.