curl --request POST \
--url https://api.sandbox.brickken.com/x402/agent/set-uri \
--header 'Content-Type: application/json' \
--header 'X-Payment: <api-key>' \
--data '
{
"chainId": "8453",
"executionMode": "client-signed",
"signerAddress": "<string>",
"gasLimit": "<string>",
"nonce": 123,
"privateRpcUrl": "<string>",
"ownerEmail": "jsmith@example.com",
"email": "jsmith@example.com",
"agentUuid": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"image": "<string>",
"services": [
{
"name": "<string>",
"endpoint": "<string>",
"version": "<string>"
}
],
"metadata": {},
"aiModelName": "<string>",
"aiModelProvider": "<string>",
"tags": [
"<string>"
],
"version": "<string>",
"documentation": "<string>",
"sourceCode": "<string>",
"license": "<string>",
"agentType": "<string>",
"supportedTrust": [
"<string>"
],
"x402Support": true,
"active": true,
"registrations": [
{}
]
}
'import requests
url = "https://api.sandbox.brickken.com/x402/agent/set-uri"
payload = {
"chainId": "8453",
"executionMode": "client-signed",
"signerAddress": "<string>",
"gasLimit": "<string>",
"nonce": 123,
"privateRpcUrl": "<string>",
"ownerEmail": "jsmith@example.com",
"email": "jsmith@example.com",
"agentUuid": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"image": "<string>",
"services": [
{
"name": "<string>",
"endpoint": "<string>",
"version": "<string>"
}
],
"metadata": {},
"aiModelName": "<string>",
"aiModelProvider": "<string>",
"tags": ["<string>"],
"version": "<string>",
"documentation": "<string>",
"sourceCode": "<string>",
"license": "<string>",
"agentType": "<string>",
"supportedTrust": ["<string>"],
"x402Support": True,
"active": True,
"registrations": [{}]
}
headers = {
"X-Payment": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Payment': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chainId: '8453',
executionMode: 'client-signed',
signerAddress: '<string>',
gasLimit: '<string>',
nonce: 123,
privateRpcUrl: '<string>',
ownerEmail: 'jsmith@example.com',
email: 'jsmith@example.com',
agentUuid: '<string>',
agentId: '<string>',
name: '<string>',
description: '<string>',
image: '<string>',
services: [{name: '<string>', endpoint: '<string>', version: '<string>'}],
metadata: {},
aiModelName: '<string>',
aiModelProvider: '<string>',
tags: ['<string>'],
version: '<string>',
documentation: '<string>',
sourceCode: '<string>',
license: '<string>',
agentType: '<string>',
supportedTrust: ['<string>'],
x402Support: true,
active: true,
registrations: [{}]
})
};
fetch('https://api.sandbox.brickken.com/x402/agent/set-uri', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.brickken.com/x402/agent/set-uri",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chainId' => '8453',
'executionMode' => 'client-signed',
'signerAddress' => '<string>',
'gasLimit' => '<string>',
'nonce' => 123,
'privateRpcUrl' => '<string>',
'ownerEmail' => 'jsmith@example.com',
'email' => 'jsmith@example.com',
'agentUuid' => '<string>',
'agentId' => '<string>',
'name' => '<string>',
'description' => '<string>',
'image' => '<string>',
'services' => [
[
'name' => '<string>',
'endpoint' => '<string>',
'version' => '<string>'
]
],
'metadata' => [
],
'aiModelName' => '<string>',
'aiModelProvider' => '<string>',
'tags' => [
'<string>'
],
'version' => '<string>',
'documentation' => '<string>',
'sourceCode' => '<string>',
'license' => '<string>',
'agentType' => '<string>',
'supportedTrust' => [
'<string>'
],
'x402Support' => true,
'active' => true,
'registrations' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Payment: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.brickken.com/x402/agent/set-uri"
payload := strings.NewReader("{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Payment", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.brickken.com/x402/agent/set-uri")
.header("X-Payment", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.brickken.com/x402/agent/set-uri")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Payment"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"transactions": {},
"txId": "<string>",
"info": {}
}Set Agent URI
Prepare an ERC-8004 agent URI/profile update through x402.
curl --request POST \
--url https://api.sandbox.brickken.com/x402/agent/set-uri \
--header 'Content-Type: application/json' \
--header 'X-Payment: <api-key>' \
--data '
{
"chainId": "8453",
"executionMode": "client-signed",
"signerAddress": "<string>",
"gasLimit": "<string>",
"nonce": 123,
"privateRpcUrl": "<string>",
"ownerEmail": "jsmith@example.com",
"email": "jsmith@example.com",
"agentUuid": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"image": "<string>",
"services": [
{
"name": "<string>",
"endpoint": "<string>",
"version": "<string>"
}
],
"metadata": {},
"aiModelName": "<string>",
"aiModelProvider": "<string>",
"tags": [
"<string>"
],
"version": "<string>",
"documentation": "<string>",
"sourceCode": "<string>",
"license": "<string>",
"agentType": "<string>",
"supportedTrust": [
"<string>"
],
"x402Support": true,
"active": true,
"registrations": [
{}
]
}
'import requests
url = "https://api.sandbox.brickken.com/x402/agent/set-uri"
payload = {
"chainId": "8453",
"executionMode": "client-signed",
"signerAddress": "<string>",
"gasLimit": "<string>",
"nonce": 123,
"privateRpcUrl": "<string>",
"ownerEmail": "jsmith@example.com",
"email": "jsmith@example.com",
"agentUuid": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"image": "<string>",
"services": [
{
"name": "<string>",
"endpoint": "<string>",
"version": "<string>"
}
],
"metadata": {},
"aiModelName": "<string>",
"aiModelProvider": "<string>",
"tags": ["<string>"],
"version": "<string>",
"documentation": "<string>",
"sourceCode": "<string>",
"license": "<string>",
"agentType": "<string>",
"supportedTrust": ["<string>"],
"x402Support": True,
"active": True,
"registrations": [{}]
}
headers = {
"X-Payment": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Payment': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chainId: '8453',
executionMode: 'client-signed',
signerAddress: '<string>',
gasLimit: '<string>',
nonce: 123,
privateRpcUrl: '<string>',
ownerEmail: 'jsmith@example.com',
email: 'jsmith@example.com',
agentUuid: '<string>',
agentId: '<string>',
name: '<string>',
description: '<string>',
image: '<string>',
services: [{name: '<string>', endpoint: '<string>', version: '<string>'}],
metadata: {},
aiModelName: '<string>',
aiModelProvider: '<string>',
tags: ['<string>'],
version: '<string>',
documentation: '<string>',
sourceCode: '<string>',
license: '<string>',
agentType: '<string>',
supportedTrust: ['<string>'],
x402Support: true,
active: true,
registrations: [{}]
})
};
fetch('https://api.sandbox.brickken.com/x402/agent/set-uri', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.brickken.com/x402/agent/set-uri",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chainId' => '8453',
'executionMode' => 'client-signed',
'signerAddress' => '<string>',
'gasLimit' => '<string>',
'nonce' => 123,
'privateRpcUrl' => '<string>',
'ownerEmail' => 'jsmith@example.com',
'email' => 'jsmith@example.com',
'agentUuid' => '<string>',
'agentId' => '<string>',
'name' => '<string>',
'description' => '<string>',
'image' => '<string>',
'services' => [
[
'name' => '<string>',
'endpoint' => '<string>',
'version' => '<string>'
]
],
'metadata' => [
],
'aiModelName' => '<string>',
'aiModelProvider' => '<string>',
'tags' => [
'<string>'
],
'version' => '<string>',
'documentation' => '<string>',
'sourceCode' => '<string>',
'license' => '<string>',
'agentType' => '<string>',
'supportedTrust' => [
'<string>'
],
'x402Support' => true,
'active' => true,
'registrations' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Payment: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.brickken.com/x402/agent/set-uri"
payload := strings.NewReader("{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Payment", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.brickken.com/x402/agent/set-uri")
.header("X-Payment", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.brickken.com/x402/agent/set-uri")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Payment"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chainId\": \"8453\",\n \"executionMode\": \"client-signed\",\n \"signerAddress\": \"<string>\",\n \"gasLimit\": \"<string>\",\n \"nonce\": 123,\n \"privateRpcUrl\": \"<string>\",\n \"ownerEmail\": \"jsmith@example.com\",\n \"email\": \"jsmith@example.com\",\n \"agentUuid\": \"<string>\",\n \"agentId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"services\": [\n {\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"version\": \"<string>\"\n }\n ],\n \"metadata\": {},\n \"aiModelName\": \"<string>\",\n \"aiModelProvider\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"version\": \"<string>\",\n \"documentation\": \"<string>\",\n \"sourceCode\": \"<string>\",\n \"license\": \"<string>\",\n \"agentType\": \"<string>\",\n \"supportedTrust\": [\n \"<string>\"\n ],\n \"x402Support\": true,\n \"active\": true,\n \"registrations\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"transactions": {},
"txId": "<string>",
"info": {}
}agentSetURI.
Authentication
Omitx-api-key. Prepare is free; the x402 payment is charged on POST /send-transactions, where the API returns 402 Payment Required. Sign the x402 payment locally and retry with X-PAYMENT. In brickken-relayed mode (recommended) Brickken’s relayer signs and broadcasts; in client-signed mode you sign the prepared transaction first.
Key Fields
| Parameter | Required | Description |
|---|---|---|
chainId | Yes | Target chain ID. Use 8453 for Base mainnet or 84532 for Base Sepolia. Decimal and hex values are accepted. |
executionMode | No | brickken-relayed (recommended) or client-signed. |
signerAddress | Conditional | Required in client-signed mode. Omit in brickken-relayed mode (Brickken signs). |
agentUuid or agentId | Usually | Agent identifier from registration or the on-chain agent ID. |
name, description, image | No | Profile fields used to build the updated URI metadata. |
services, metadata, tags | No | Additional agent profile metadata. |
documentation, sourceCode, license | No | Public agent documentation and source metadata. |
Response
Returns prepared unsigned transactions andtxId. Submit it to POST /send-transactions: in brickken-relayed mode send { txId, transactions } and pay via x402 (Brickken signs and broadcasts); in client-signed mode sign the transaction locally and send { txId, signedTransactions }.Authorizations
Base64-encoded x402 payment payload. Supported for x402-eligible agentic methods on /x402/... facades, /prepare-transactions, and eligible /send-transactions retries.
Body
Target operation chain ID. Use 8453 on Base mainnet or 84532 on Base Sepolia.
"8453"
"84532"
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.
brickken-relayed, client-signed Wallet that signs the prepared blockchain transaction. Required only in client-signed mode; omit in brickken-relayed mode.
^0x[a-fA-F0-9]{40}$Optional explicit gas limit.
Optional explicit nonce when managing nonces manually.
Optional private RPC URL override.
Optional owner attribution email.
Alias for ownerEmail where supported.
Stored tokenized agent UUID returned by agentRegister.
On-chain ERC-8004 agent ID.
Show child attributes
Show child attributes