/v1/funding route
requires the matching wallet session. Withdrawal quote/build calls also require
CSRF for cookie sessions and explicitly reject developer keys and restricted
trading authorizations.
Balance and deposit requirements
balance() separates raw confirmed collateral, reservations and authoritative
spendable collateral. Never present the raw balance as withdrawable and never
add reservations to spendable. nativeWithdrawal.allowedNow is false and its
maximum is zero while any listed trading or custody blocker remains.
This includes BUY collateral holds, SELL share reservations, sequencer
obligation holds, pending settlements and a truncated sequencer risk snapshot.
depositRequirements() returns the current network, collateral token, native
Alephium wallet destination, dust requirement and confirmation count. Read it
at action time rather than persisting deployment constants. Accepted BUY orders
use automatic JIT funding; builders do not construct that transfer.
requirements.requiredConfirmations is obtained from wallet-svc over its
authenticated internal channel and is a positive integer runtime policy. Do
not assume two confirmations (or any other fallback). If Aura cannot obtain a
valid policy, the endpoint fails with 503 funding_requirements_unavailable;
freeze the funding flow and retry with backoff rather than guessing.
After a deposit transaction is submitted, reconcile its transaction ID at
GET /v1/transactions/{txId} and follow private funding realtime events.
Funding history and status
funding.operations.get(txId) reports the
wallet-custody state for an owned transaction. Generic transaction
reconciliation additionally exposes owner-filtered aura.walletCustody state,
chain confirmation, script outcome, indexing and reorg recovery. When a wallet
session owns the custody row, aura.walletCustody.transaction.sequencer adds a
sanitized sequencer cursor, bounded correlations, and that account’s matching
match/cancellation records. It never exposes another account, an intent or
cancel signature, or internal custody bytes.
Native withdrawal
1
Create an idempotent quote
2
Build the persisted ordered vector
3
Hand the whole vector to the trusted Aura signer
Use the first-party wallet helper
submitNativeWithdrawal(build). It binds
a fresh step-up to these exact bytes and submits signatures only into
wallet-svc durable custody. Never sign, reorder, omit or independently
submit a vector member, and never move the bytes to a builder backend.4
Reconcile to terminal state
Follow the operation and generic transaction endpoints. A node rejection
remains fail-closed; recovery may retry only the same persisted
byte/signature vector.

