Transactions

Submit a transaction for signing

Replay protection: send an optional Idempotency-Key header (e.g. UUID or opaque string). Duplicate requests with the same key within 24 hours return the cached transaction response (no second sign/broadcast). Omit the header for non-idempotent submissions.

post/v1/agents/{agent_id}/transactions

Request

  • Base URL: https://api.1claw.co
  • URL: https://api.1claw.co/v1/agents/{agent_id}/transactions
  • Auth: HTTP bearer

Path parameters

agent_idstring uuid required

Headers

Idempotency-Keystring

Optional key for replay protection; duplicate requests return cached response.

Request body

tostring required

Destination address (0x-prefixed)

valuestring required

Value in ETH

chainstring required

Chain name or numeric ID

datastring

Hex-encoded calldata

signing_key_pathstring

Vault path to signing key. Auto-resolves per-chain signing key if provisioned, otherwise keys/{chain}-signer.

nonceinteger
gas_pricestring
gas_limitinteger
max_fee_per_gasstring
max_priority_fee_per_gasstring
simulate_firstboolean
mode'eoa' | 'smart_account'

Transaction mode

gaslessboolean

Whether to submit as a gasless (sponsored) transaction

destination_taginteger

Non-EVM (XRP): destination tag for exchange deposits

memostring

Non-EVM (XRP, Solana): optional memo

fee_rate_sat_per_vbyteinteger

Non-EVM (Bitcoin): override the fetched fee rate (sat/vByte)

fee_limit_suninteger

Non-EVM (Tron): TRC-20 energy fee limit in sun

token_mintstring

Non-EVM (Solana SPL / Tron TRC-20): token mint or contract address; omit for native transfer

token_decimalsinteger

Non-EVM (Solana, Tron): token decimals (default 6)

ttlinteger

Non-EVM (Cardano): transaction time-to-live (absolute slot)

xrpl_tx_jsonobject

Raw XRPL transaction JSON for full transaction type coverage. When present (and chain is XRP), the handler uses the xrpl-rust binary codec to encode and sign the transaction as-is. Supports all XRPL transaction types: Payment, TrustSet, OfferCreate, OfferCancel, AccountSet, EscrowCreate, NFTokenMint, AMMCreate, and 20+ more. Account, Sequence, Fee, LastLedgerSequence, and SigningPubKey are auto-filled when absent.

approval_idstring uuid

Optional pending approval ID. When consensus policies match, clients resubmit with this field set to bypass the 202 gate after the approval has been executed.

raw_transactionstring

Pre-built raw transaction as a base64-encoded byte string. When provided, the handler decodes and deep-inspects the transaction for policy evaluation before signing. Supported for non-EVM chains where the client constructs the transaction payload.

tron_transactionobject

Pre-built Tron transaction JSON object. When provided, the handler signs the transaction as-is using the Tron protobuf format. Enables full Tron transaction type coverage beyond simple TRX/TRC-20 transfers.

Response

Transaction previously created with same Idempotency-Key (replay-safe response)

idstring uuid
agent_idstring uuid
chainstring
chain_idinteger
tostring
value_weistring
status'pending' | 'signed' | 'sign_only' | 'broadcast' | 'confirmed' | 'reverted' | 'dropped' | 'failed' | 'simulation_failed'

broadcast means the RPC accepted the raw transaction; it does not mean the transaction mined. The receipt reconciler resolves it to confirmed, reverted or dropped once the chain answers. reverted mined and failed on-chain (nonce consumed, gas paid); dropped never mined and never will (the sender's nonce has moved past it), so no value moved and no gas was paid. Non-EVM chains reach confirmed/reverted but never dropped, because the absence of a transaction there cannot be distinguished from a node having pruned it.

signed_txstring nullable

Raw signed transaction hex. On GET list and GET by id, this property is omitted by default (absent from the response). Pass include_signed_tx=true on those endpoints to include it. Always present on the initial POST submit response.

tx_hashstring
error_messagestring
created_atstring date-time
signed_atstring date-time
simulation_idstring
simulation_statusstring
tenderly_dashboard_urlstring uri
max_fee_per_gasstring
max_priority_fee_per_gasstring
from_addressstring

Sender, learned from the chain by the receipt reconciler.

block_numberinteger

Block (EVM), slot (Solana) or ledger index (XRP) the transaction settled in. Absent until it settles.

confirmed_atstring date-time

When settlement was observed. Absent for a dropped transaction, which never settled.

reconciled_atstring date-time

Last time the reconciler asked the chain about this transaction. Set while status is still broadcast means we looked and could not tell yet, as distinct from nobody having looked.

Changes

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