Skip to main content
POST
Prepare RAMS execute
Maps to ramsExecute. signerAddress must be the mandate’s agent.
This operation is always client-signed: the AgentExecutor checks msg.sender against the mandated agent.

Input modes

Exactly one mode is accepted. The API reads the selector registration, derives any cap-gated amount, and simulates mandate authorization before returning the unsigned executor transaction.

Next step

Preparing does not touch the chain. The response gives you txId, the unsigned transactions, and an x402Requirements quote.
1

Choose who broadcasts

client-signed (the default) — you sign the transaction and Brickken broadcasts it. client-broadcast — you sign and broadcast it yourself, then confirm with txHash. Either way the operation price is split evenly: half at prepare, half at send.
2

Submit it and settle the payment

POST to /send-transactions. The first attempt answers 402 Payment Required; read PAYMENT-REQUIRED, sign the payment locally, and retry with X-PAYMENT. An x-api-key is accepted here instead of paying.
3

Poll until it confirms

Call GET /get-transaction-status with the txId. Your payment settles only after the operation confirms, and is released if it reverts.
See Authentication for the payment handshake and Pricing for the per-operation cost.

Authorizations

X-Payment
string
header
required

Base64-encoded x402 payment payload. Supported for x402-eligible agentic methods on /x402/... facades, /prepare-transactions, and eligible /send-transactions retries.

Body

application/json
chainId
string
default:11155111
required

Target operation chain ID. RAMS is available on Ethereum Sepolia (11155111) only at launch. Decimal and 0x hex values are accepted.

Examples:

"11155111"

"0xaa36a7"

signerAddress
string
required

MUST be the agent wallet named in the mandate — msg.sender of AgentExecutor.execute is the agent. This operation is always client-signed and can never be brickken-relayed.

Pattern: ^0x[a-fA-F0-9]{40}$
target
string

Raw mode: the contract the executor will call (e.g. the asset). Required when data is provided.

Pattern: ^0x[a-fA-F0-9]{40}$
data
string

Raw mode: full inner calldata for target, at least 4 bytes. When present the request is treated as raw mode and asset/from/to/amount are ignored.

Pattern: ^0x([a-fA-F0-9]{2})*$
asset
string

Transfer-helper mode (data absent): token to move; becomes the executor call target.

Pattern: ^0x[a-fA-F0-9]{40}$
from
string

Transfer-helper mode: token holder — normally the executor's bound principal. The response info warns when it differs from AgentExecutor.principal().

Pattern: ^0x[a-fA-F0-9]{40}$
to
string

Transfer-helper mode: transfer recipient.

Pattern: ^0x[a-fA-F0-9]{40}$
amount

Transfer-helper mode: transfer amount. Raw base units — no decimals scaling is applied. Decimal string (canonical), 0x hex string, or number accepted.

executorAddress
string

Optional AgentExecutor contract override; defaults to the chain's configured (platform) RAMS AgentExecutor address. Executors are per-principal — pass the principal's executor here.

Pattern: ^0x[a-fA-F0-9]{40}$
gasLimit

Optional explicit gas limit.

nonce
number

Optional explicit transaction nonce when managing nonces manually.

ownerEmail
string<email>

Optional owner attribution email.

email
string<email>

Alias for ownerEmail where supported.

Response

Prepared unsigned transaction payload.

data
object