"method" : "POST" , "content_type" : "application/json" ,
"price_usd" : 0.003 , // 3000 atomic USDC (6 decimals)
"network" : "eip155:8453" , // Base mainnet
"asset" : "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" , // USDC
"payTo" : "0xc22f9CAEBAc37fE72D5142f35f21f6696Ea9Ef69" ,
"you_provide" : { // JSON body fields
"query" :
required
string
★
Value for `query`.
Required · string
min length 1 · max length 200
Example: "vitalik.eth"
"direction" :
optional
string
★
Value for `direction`.
Optional · string
one of "auto", "forward", "reverse" · default "auto"
<DIRECTION>
auto forward reverse
use example values clear
},
"request_body" : // live, from your inputs
{
"query": "vitalik.eth"
}
"you_get" : { // HTTP 200 application/json after payment
"output_schema" :
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"skill": {
"type": "string"
},
"service": {
"type": "string"
},
"version": {
"type": "string"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"address": {
"type": "string"
},
"name": {
"type": "string"
},
"source": {
"type": "string"
},
"forward_verified": {
"type": "boolean"
},
"avatar": {
"type": "null"
},
"block": {
"type": "integer"
}
}
},
"confidence": {
"type": "number"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"fetched_at": {
"type": "string"
}
}
}
},
"generated_at": {
"type": "string"
},
"data_as_of": {
"type": "string"
},
"charged": {
"type": "boolean"
},
"warnings": {
"type": "array"
},
"next": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"ok",
"skill"
]
}
"example" :
{
"ok": true,
"skill": "name_resolve",
"service": "name_resolve",
"version": "1.0.0",
"summary": "vitalik.eth → vitalik.eth = 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (ens)",
"data": {
"query": "vitalik.eth",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"name": "vitalik.eth",
"source": "ens",
"forward_verified": true,
"avatar": null,
"block": 22000000
},
"confidence": 0.95,
"sources": [
{
"name": "ENS Registry",
"url": "https://etherscan.io/address/0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
"fetched_at": "2026-10-24T14:00:00Z"
},
{
"name": "Basename L2 Resolver",
"url": "https://basescan.org/address/0xc6d566a56a1aff6508b41f6c90ff131615583bcd",
"fetched_at": "2026-10-24T14:00:00Z"
}
],
"generated_at": "2026-10-24T14:00:00Z",
"data_as_of": "2026-10-24T14:00:00Z",
"charged": true,
"warnings": [],
"next": [
"address_validate",
"erc20_meta"
]
}
},
"flow" : [
POST https://grokzilla.shop/api/skills/name-resolve with the JSON body, no payment header
← 402 Payment Required + PAYMENT-REQUIRED header: base64 JSON {x402Version: 2, accepts: [{scheme: "exact", network: "eip155:8453", asset: USDC, amount: "3000", payTo}]} (same JSON in the body)
your x402 client checks amount ≤ $0.003 and signs a USDC transfer authorization to payTo with your wallet
retry the same POST with PAYMENT-SIGNATURE: <base64> (x402 v2) or X-PAYMENT (v1 clients)
← 200 OK with the result JSON + PAYMENT-RESPONSE header (base64 settlement receipt, tx hash on Base)
],
"copy" : { // fills in from your inputs as you type
"curl" // unpaid: shows the 402 copy
"agentcash" // pays from your AgentCash wallet copy
},
"try" : // POSTs unpaid to /api/skills/name-resolve on this host and decodes the 402. Never pays.
Send unpaid request
}