Get wallet approval options
Changed onReturns the available wallet approval options for a mandate. The mandate must be in created or approval_failed status, not expired, and have no approval or revocation in flight.
Provide one or more customer wallet addresses as query parameters. Each option specifies the network, asset, and payloads the customer must sign to approve the mandate. Present the options to the customer and let them choose one, then call Approve a mandate with a wallet with the selected option and its signed payloads.
This is a stateless read operation and does not modify the mandate. The payloads embed fresh on-chain signing data such as a nonce and deadline, so sign and submit the payloads from a single response rather than caching them.
If a requested address has no eligible approval options, it appears in ineligibleAddresses with a code and message instead of being absent from options.
Request
- Base URL: https://api.cdp.coinbase.com/platform
- URL: https://api.cdp.coinbase.com/platform/v2/mandates/{mandateId}/approvals/wallet/options
- Auth: HTTP none
Path parameters
The ID of the mandate, a UUID prefixed by mandate_.
The unique identifier of the mandate.
Query parameters
The customer's wallet addresses to generate approval options for. Provide between 1 and 5 unique addresses, comma-separated (e.g. ?addresses=0xA,0xB). Each returned option's source.address identifies which requested address it applies to. If a requested address has no eligible approval options, it appears in ineligibleAddresses with a code explaining why.
[ "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" ]
The blockchain network supported for payment session sources. Testnet networks are only available in sandbox environments.
Optional filter to restrict options to a specific blockchain network.
The symbol of the asset (e.g., eth, usd, usdc, usdt).
Filter options by asset. Currently, only usdc and usdt return results.
Response
Successfully retrieved mandate wallet approval options.
Example response
{
"options": [
{
"optionId": "opt_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"source": {
"address": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"network": "base",
"asset": "usdc"
},
"payloads": [
{
"payloadId": "payload_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"type": "eip2612",
"data": {
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"Permit": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "nonce",
"type": "uint256"
},
{
"name": "deadline",
"type": "uint256"
}
]
},
"primaryType": "Permit",
"domain": {
"name": "USD Coin",
"version": "2",
"chainId": 8453,
"verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
},
"message": {
"owner": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"spender": "0x9Fb909eA400c2b8D99Be292DADf07e63B814527c",
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
"nonce": "0",
"deadline": "1798761600"
}
}
}
]
}
],
"ineligibleAddresses": []
}Changes
- info
endpoint added
- info