Contracts

Transfer a token from a signer without gas

The signer is the payer of an x402 exact payment: the gateway builds the token's EIP-3009 TransferWithAuthorization for exactly amount to to, the signer's key signs its EIP-712 digest, and the platform's facilitator verifies and settles it and pays the gas. The signer needs no native balance. One signing fee ($0.000005) is billed; no gas is. Idempotent on an optional Idempotency-Key with request fingerprinting: a matched replay returns the stored transfer, a mismatch answers 409 carrying the stored transfer's id, status and tx_hash, and a transfer that failed before settlement re-executes under the same key while one that died in settlement never does. Answers 200 settled with the transaction, or 202 unknown when the settle call's outcome never came back (the reconciler finishes it from the token's authorizationState; poll the transfer).

post/contracts/v1/signers/{signer_id}/transfers

Request

  • Base URL: https://api.run402.com
  • URL: https://api.run402.com/contracts/v1/signers/{signer_id}/transfers
  • Auth: HTTP bearer

Path parameters

signer_idstring required

Headers

Idempotency-Keystring

Request body

chainstring required

The signer's chain (base-mainnet or base-sepolia).

assetstring

The token to send; usdc today. Refused with TRANSFER_ASSET_UNSUPPORTED when the facilitator does not settle it on the signer's network.

tostring required

The receiving address.

amountstring required

The amount in the asset's base units (USDC: 6 decimals), as a decimal string.

Response

Settled.

transfer_idstring
signer_idstring
status'pending' | 'settled' | 'failed' | 'unknown'
tx_hashstring nullable

The settlement transaction once the facilitator reports it; null for a transfer the reconciler settled from the token's authorization state.

chainstring
networkstring

The x402 network id (eip155:…).

assetstring
asset_addressstring
tostring
amountstring
noncestring nullable

The EIP-3009 authorization nonce, so a caller can read authorizationState(from, nonce) itself.

failed_phase'precheck' | 'sign' | 'verify' | 'settle' | 'null' nullable
facilitator_reasonstring nullable
created_atstring date-time
updated_atstring date-time

Changes

No recorded changes to this operation across all 1 revision of this API.