Skip to main content
POST
Prepare RAMS selector ActionSpec registration
Maps to ramsSetExecutorAction. signerAddress must be the AgentExecutor owner; the operation is always client-signed. Pass either selector (4 bytes) or its left-aligned bytes32 action, then set the ActionSpec fields: supported, hasAmount, and amountIndex when the action carries value.
Registering a value-bearing selector with hasAmount: false bypasses mandate transaction and cumulative caps. Use the correct zero-based ABI word index.

Next step

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

Choose who signs and who broadcasts

brickken-relayed — the relayer signs, broadcasts, and pays the native gas; you sign only the payment, and prepare is free. client-signed (the default) — you sign, Brickken broadcasts. client-broadcast — you sign and broadcast yourself, then confirm with txHash. Both client-controlled modes charge half the price at prepare and half at send.Relaying is available on the ERC-8004 and agent-token facades and on the four signed RAMS lifecycle calls. The other RAMS operations check msg.sender against an on-chain role, so they reject it.
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 API key is accepted here only in client-signed mode.
3

Poll until it confirms

Call GET /get-transaction-status with the txId. Relayed transactions need no credential to poll. 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 AgentExecutor owner (pre-checked on-chain). Never brickken-relayed.

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

Whether the selector is executable through this executor.

hasAmount
boolean
required

Whether the calldata carries a value amount that must be checked against the mandate caps.

selector
string

4-byte function selector to register, e.g. 0x23b872dd for transferFrom. Provide either selector or action.

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

Alternative to selector: a left-aligned bytes32 action (bytes 4..31 must be zero); the server extracts the first 4 bytes.

Pattern: ^0x[a-fA-F0-9]{64}$
amountIndex
integer

Required when hasAmount is true: zero-based index of the amount word in the calldata (uint8). E.g. 2 for transferFrom(from, to, amount). Ignored (0) when hasAmount is false.

Required range: 0 <= x <= 255
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