Skip to main content
POST
Prepare ERC-8004 identity ownership transfer
Prepares an unsigned ERC-721 safeTransferFrom that moves an ERC-8004 agent identity from Brickken custody to a wallet you control. This facade maps to agentTransferOwnership. By default Brickken is the on-chain owner of the agent identity in brickken-relayed mode. Call this method only when you explicitly want to take custody of the identity NFT yourself.

Authentication

Preparing is free and needs no credential. The x402 USDC payment is charged on POST /send-transactions, which answers 402 Payment Required with a PAYMENT-REQUIRED header describing the chain, asset, transfer method, amount, recipient, and timeout. Sign the payment locally and retry with X-PAYMENT. In brickken-relayed mode Brickken’s relayer signs and broadcasts the operation — API keys are not accepted on a relayed send. In client-signed mode you sign the prepared transaction yourself first. See Authentication for the full credential matrix.

Key Fields

Response

Returns a prepared unsigned transaction and txId. Submit it to POST /send-transactions and complete the x402 payment.
  • brickken-relayed: send { txId, transactions }; Brickken signs and broadcasts.
  • client-signed: sign the transaction locally as the current owner, then send { txId, signedTransactions }.
Ownership transfer is irreversible and is different from agentSetWallet, which only changes the operational wallet. After the identity leaves Brickken custody, Brickken’s relayer can no longer perform owner-only operations for that agent unless ownership is transferred back.

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:8453
required

Target operation chain ID. Use 8453 on Base mainnet or 84532 on Base Sepolia.

Examples:

"8453"

"84532"

newOwner
string
required

Wallet that will receive the ERC-8004 identity NFT.

Pattern: ^0x[a-fA-F0-9]{40}$
executionMode
enum<string>
default:client-signed

Execution mode. Use brickken-relayed to let Brickken's relayer sign, pay gas, and broadcast (omit signerAddress). Use client-signed to sign the prepared transaction yourself.

Available options:
brickken-relayed,
client-signed
signerAddress
string

Wallet that signs the prepared blockchain transaction. Required only in client-signed mode; omit in brickken-relayed mode.

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

Optional explicit gas limit.

nonce
number

Optional explicit nonce when managing nonces manually.

privateRpcUrl
string

Optional private RPC URL override.

ownerEmail
string<email>

Optional owner attribution email.

email
string<email>

Alias for ownerEmail where supported.

agentUuid
string

Stored tokenized agent UUID returned by agentRegister.

agentId
string

On-chain ERC-8004 agent ID.

Response

Prepared unsigned transaction payload.

transactions
object
txId
string
info
object