Skip to main content
Send supported EVM token transfers from an API-managed wallet without funding that wallet with native gas.
Gas sponsorship requires Para to enable it for your partner in the environment you use. For the Beta pilot, use Ethereum Sepolia (chain ID 11155111) and Circle’s official test USDC (0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238). Test USDC has no monetary value. Enablement covers eligible wallets created before or afterward; it does not enable production sponsorship.
Eligible wallets must belong to your partner, be API-created and unclaimed, and be ready for signing. Each transfer still requires wallet access and passes through permission checks and the configured per-operation gas cap. Non-EVM wallets keep their existing transfer behavior.

Send a transfer

Use the existing transfer() method with an idempotency key saved in your payout or job record. Initialize para as shown in REST SDK. Supply your enrolled chain, token contract, and recipient.
sponsored-transfer.ts
value is a positive integer in token base units. Omit nonce, transaction type and gas/fee overrides. Omit broadcast or set it to true. Leave recipient screening enabled. Native transfers, unsupported chains or tokens, sign-only requests, and requests with transaction overrides or disabled recipient screening keep the existing transfer path. If Para pauses sponsorship admission while your partner remains enabled, new eligible sponsored requests are rejected. Partners without sponsorship enabled use the existing transfer path, which may require wallet-funded gas. The sponsored response is HTTP 202, with executionMode: "sponsored", transactionId, and status. Save the tracking ID. Para also returns it in x-transaction-id and provides the lookup path in Location. The response contains no signed transaction bytes. userOperationHash identifies the sponsored operation; txHash in transfer and replay responses and hash in transaction lookup/history identify the on-chain transaction after inclusion. 202 means the request is recorded. Para checks policy, recipient screening, and the per-operation gas cap afterward. Rejections during preparation appear as tracked failed results; uncertain outcomes remain nonterminal.

Track and resume

Poll getRestTransaction() using the original tracking ID. See Transaction history.
resume-transfer.ts
Resume continues the same transfer through POST /v1/wallets/{walletId}/transactions/{transactionId}/resume. It accepts the applicable review ID, not a replacement recipient or amount. Later steps can require another review. This supports existing policy reviews. Conditional approval policies are not supported for sponsored transfers in this pilot. If the transfer response is lost, repeat the original request with the same key. Sponsored keys recover the same operation beyond 24 hours and after sponsorship is disabled. Reusing a key for a different wallet or intent returns 409 IDEMPOTENCY_CONFLICT. Replaying transfer() retrieves status; it does not resume a review. actualGasCost is the settled cost of the individual operation in native-token base units, including included reverts. Read it as a decimal string or bigint. A timeout does not establish failure, and gas cost does not establish token delivery.

Wallet delegation

Sponsorship uses EIP-7702 while keeping the wallet’s address. Once applied on-chain, delegation persists until another authorization replaces or clears it. A reverted transfer or disabled sponsorship does not remove that delegation. Signing an authorization alone does not change the account. See EIP-7702.