latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-193774225.7 KB

c9aa3f252e4f

Processing

Prepare a gasless permit deposit

Experimental. Builds the EIP-712 token-authorization payload the owner signs to authorize their deposit smart account to pull amount of token from their wallet — no on-chain transfer needed. Selects ERC-3009, ERC-2612, then Permit2; validates the route, session coverage, domain, balance, and allowance before the user is asked to sign. The server chooses replay and deadline fields; submit the signature with the same fields via POST /deposits/permit. EVM source chains only; cross-chain routes only (v1).

post/deposits/permit/prepare

Headers

x-api-keystring

API key for authentication (omit when sending Authorization)

Example:your-api-key

API key for authentication (omit when sending Authorization)

authorizationstring

Bearer platform token (e.g. forwarded by user-service). Takes precedence over x-api-key when both are present.

Example:Bearer eyJhbGciOi...

Bearer platform token (e.g. forwarded by user-service). Takes precedence over x-api-key when both are present.

Request body

accountstring required

Ethereum address (0x followed by 40 hex characters)

sourceChainstring required

CAIP-2 chain identifier (e.g. "eip155:8453")

tokenstring required

Ethereum address (0x followed by 40 hex characters)

amountstring required

Numeric string representing a bigint value

ownerstring required

Ethereum address (0x followed by 40 hex characters)

kind'auto' | 'erc3009' | 'erc2612' | 'permit2'

Authorization scheme preference. Auto selects ERC-3009, then ERC-2612, then Permit2.

Example request

{
  "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
  "sourceChain": "eip155:8453",
  "token": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
  "amount": "1000000000000000000",
  "owner": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
  "kind": "auto"
}

Response

Typed data to sign, with the server-chosen nonce and deadline

OR

Example response

{
  "authorization": {
    "nonce": "0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
    "validAfter": "1000000000000000000",
    "validBefore": "1000000000000000000"
  }
}