Approve token transfer
Set up a one-time Permit2 allowance for gas-sponsored token transfers.
Required when using /earn/transfer or /credit/transfer with gas_sponsorship=true. This allowance only needs to be set up once per token.
With gas sponsorship (gas_sponsorship=true):
- Returns EIP-712 typed data for the owner to sign off-chain
- Submit signature + typed data to /prepare
- Only works for tokens that support EIP-2612 permit (e.g., USDC)
Some tokens, like USDT and WETH, do not support EIP-2612 permit. For these tokens, set gas_sponsorship=false to receive an unsigned transaction that the owner must sign, submit, and pay gas for.
Body
The wallet address that owns the Earn Account.
"0x06A9aF046187895AcFc7258450B15397CAc67400"
Blockchain network
base, ethereum, arbitrum, hyperevm, tempo "base"
The token you would like to transfer with gas sponsorship.
"USDC"
"WETH"
"0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"
Optionally request gas sponsorship. If set to true, EIP-712 signature data will be returned that must be signed by the owner and submitted to the /gas_sponsorship/prepare endpoint.
Response
Successful Response
Unsigned approval transaction. Present when gas_sponsorship=false.
{
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}EIP-712 typed data for off-chain permit signing. Present when gas_sponsorship=true.
{
"domain": {
"chainId": 8453,
"name": "USD Coin",
"verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"version": "2"
},
"message": {
"deadline": "1735689600",
"nonce": "0",
"owner": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"spender": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1",
"value": "100000000"
},
"primaryType": "Permit",
"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" }
]
}
}