Skip to main content
POST
Prepare RAMS extend mandate
Maps to ramsExtendMandate. newValidUntil must exceed the current expiry; extending does not reset cumulativeUsed.

Authorization modes

Preparing is free. The full x402 fee is collected when the prepared transaction is sent.

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"

agent
string
required

Agent whose mandate is extended.

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

Principal that granted the mandate.

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

New expiry. Must be greater than the mandate's current validUntil; the mandate must be active and not expired. cumulativeUsed is preserved (NOT reset). Unix timestamp in seconds (uint48).

signerAddress
string

Required for direct/client-signed mode. Omit for brickken-relayed execution; Brickken supplies its operation signer.

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

Optional EIP-712 signature from the principal (never the operator). At least 65 bytes for EOAs (r||s||v); longer payloads are allowed for EIP-1271 contract wallets. Omit for direct mode (the transaction sender authorizes on-chain). Obtain the payload to sign from GET /rams/typed-data/{operation}.

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

Unix-seconds signature deadline (uint256). Required when signature is provided and must be greater than now — it must equal the deadline that was signed. Ignored (encoded as 0) in direct mode.

executionMode
enum<string>

Optional. Only valid together with signature + deadline: Brickken's relayer becomes the transaction sender and the on-chain authorization rides on the principal's EIP-712 signature. Omit for client-signed execution (default on all /x402/rams facades).

Available options:
brickken-relayed
agentMandateAddress
string

Optional AgentMandate contract override; defaults to the chain's configured RAMS AgentMandate address.

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