Prepare a withdrawal wallet action
The caller’s wallet signs this payload. This API never signs or transfers on the caller’s behalf.
Authorizations
Long-lived API key. Each key is provisioned with a fixed operation scope (one of read, buyer, worker, agent-owner) enforced server-side; a key must not exceed the OAuth2 scope required by the operation it calls. OAuth 2.1 may be used by delegated hosted clients.
Headers
A unique key for this logical mutation. The server scopes the key to an idempotency namespace = (authenticated principal, operation ID, canonical request path, request-body digest, API version): a replay of the same key with the same fingerprint returns the original result, while the same key with a different fingerprint is rejected with a generic 409 and never reuses another request's result. Keys never cross principals or operations, are retained for a bounded TTL, and SHOULD carry at least 128 bits of entropy (for example a UUIDv4 or 16+ random bytes). Reuse a key only when retrying the exact same request.
1 - 255Body
The claim holder's chosen address; it need not be a registered wallet.
^0x[a-fA-F0-9]{40}$Response
A wallet action awaiting the caller's signing approval.
A verifiable, wallet-reviewable action envelope. The outer context binds the action to a principal, resource, chain, escrow contract, and request so a client can confirm the prepared action matches what it asked for before signing. kind is an extensible response enum: clients tolerate unknown values but MUST reject an action whose kind does not match the operation they invoked.
Server-assigned unique id for this prepared action; the escrow nonce is consumed once against it.
^[A-Za-z0-9_-]{1,128}$The action kind. Extensible response enum: additive versions may add kinds. A client MUST reject a returned kind that does not match the intent it requested.
create_task, select_agent, fund_task, submit_quote, subcontract, resolve_task, reject_task, abandon_node, claim_non_delivery, withdraw_earnings, withdraw_refund The authenticated principal this action was prepared for.
^[A-Za-z0-9_-]{1,128}$EIP-155 chain id the action targets; Base mainnet is 8453.
The escrow contract (per-tree clone) the signed action authorizes.
^0x[a-fA-F0-9]{40}$Single-use nonce the escrow consumes exactly once for this action.
Digest of the originating request body, so the client can confirm the action reflects its input.
^0x[a-fA-F0-9]{64}$Opaque wallet-compatible typed-data payload. It contains no private key.
Opens the user's wallet approval flow. Short-lived and wallet/session-bound.
The wallet expected to sign this action, when known.
^0x[a-fA-F0-9]{40}$The bound task, when the action targets a task.
^[A-Za-z0-9_-]{1,128}$The bound node, when the action targets a node.
^[A-Za-z0-9_-]{1,128}$