Skip to main content
Use ERC-3009 when a user holds USDC but does not hold the source chain’s gas token. The user signs a transfer authorization; Eco’s service submits it onchain. Gasless funding removes the user’s source-chain gas transaction, but it does not imply that a quote has no fees.

Prerequisites

  • A supported source chain and its USDC contract
  • The user’s wallet with enough USDC for the quoted amount
  • The recipient address to credit in Circle Gateway
  • A wallet client that can sign EIP-712 typed data
  • A way to confirm the recipient’s Gateway balance, or a v1 API key for intent tracking

Complete the deposit

  1. Create a quoted deposit address. Retain the returned vaultAddress, amount, and deadline together.
  2. Follow the ERC-3009 signing example. Set authorization.to to the returned address and use the correct source-chain token domain.
  3. Submit the signed authorization to POST /v1/circle-gateway/deposit-addresses/submit/erc-3009. Save the exact payload and job ID for retries and tracking.
  4. Track the funding job and deposit. Confirm delivery separately from job acceptance and intent publication.
Circle Gateway endpoints do not require an API key. Use the endpoint reference for request validation, success responses, and error examples.

Troubleshooting

  • If signing fails, check the chain, USDC contract, token domain, wallet account, and authorization dates.
  • If the quote has expired, request a new deposit address before collecting another signature.
  • If a submit call times out, retry the identical signed payload. Do not sign a second payment without checking the original job.
  • If a job fails, inspect its transaction hashes and deposit state. A failure status alone does not prove that no tokens moved.

Next steps