Create a withdrawal intent
Validates and persists a desired withdrawal (WITHDRAW_SOL / WITHDRAW_TOKEN) for the authenticated PID's smart account. Policy: account + registered passkey required, amount > 0, valid destination, destination != the smart account. The intent is single-use and expires (PRD_v4 §22) — reusing or exceeding it is rejected.
Validates and persists a desired withdrawal (WITHDRAW_SOL / WITHDRAW_TOKEN) for the authenticated PID's smart account. Policy: account + registered passkey required, amount > 0, valid destination, destination != the smart account. The intent is single-use and expires (PRD_v4 §22) — reusing or exceeding it is rejected.
Authorization
cookieAuth JWT access token set by /auth/google/callback or /auth/refresh
In: cookie
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/wallet/intents" \ -H "Content-Type: application/json" \ -d '{ "type": "WITHDRAW_SOL", "payload": { "amount": "5000000" } }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "WITHDRAW_SOL", "payload": {}, "status": "pending", "expiresAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z"}Sponsored generic execute (passkey-authorized, V3) POST
One passkey-signed intent drives an arbitrary Solana call with the PDA as signer (wallet parity with the EVM `execute`). The relayer submits and floats the network fee; the smart account reimburses the attested network cost in full plus the on-chain-recomputed protocol fee, atomically. The backend rejects drift beyond 120% of the quoted network fee.
Rotate the on-chain authority to a registered replacement credential POST
Credential-lifecycle rotation: register the replacement credential first (approval flow), then the current key authorizes on-chain `update_authority` here. The old credential is revoked in DB only after the chain confirms the new authority.