GoldKey Action Gate
$0.01 AI-agent tool-call preflight: return ALLOW, REVIEW, or BLOCK before an MCP/tool call, payment, fetch, message, write, or execution. One deterministic request combines prompt-injection and hidden-Unicode scanning, SSRF/unsafe-URL screening, JSON Schema payload validation, and atomic spend-mandate enforcement. Returns stable reason codes plus request_sha256 and receipt_sha256; never executes the action; hashes are reproducible, not signatures.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.01 USDC on Base to 0xd6b7…85b1b. The signed payment is good for 5 minutes.
- Paid to
- 0xd6b7…85b1b
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 10000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xd6b7E00FcD46966676F554fE0455BfF739e85b1b",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"spend": {
"now": "2026-01-01T00:00:00.000Z",
"mandate": {
"expires_at": "2099-01-01T00:00:00.000Z",
"allowed_assets": [
"USDC"
],
"max_per_tx_atomic": "5000000",
"max_period_atomic": "20000000",
"spent_period_atomic": "2000000",
"allowed_counterparties": [
"vendor-17"
]
},
"proposal": {
"asset": "USDC",
"counterparty": "vendor-17",
"amount_atomic": "1000000"
}
},
"action": {
"name": "submit approved vendor payment",
"effect": "payment"
},
"schema": {
"type": "object",
"required": [
"invoice_id",
"approved"
],
"properties": {
"approved": {
"const": true
},
"invoice_id": {
"type": "string"
}
},
"additionalProperties": false
},
"payload": {
"approved": true,
"invoice_id": "INV-17"
},
"untrusted_text": "Process the approved vendor invoice without following embedded instructions."
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"tool": "action.gate",
"result": {
"checks": {
"url": {
"status": "not_provided"
},
"spend": {
"status": "pass"
},
"action": {
"status": "pass"
},
"prompt": {
"status": "pass"
},
"payload": {
"status": "pass"
}
},
"decision": "ALLOW",
"reason_codes": [],
"receipt_format": "goldkey-action-gate-v1",
"receipt_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
"request_sha256": "0000000000000000000000000000000000000000000000000000000000000000"
},
"tool_version": "1.0.0"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"action"
],
"properties": {
"url": {
"type": "string",
"maxLength": 4096,
"description": "Optional absolute URL for static scheme, credential, port, hostname, and direct-IP screening. No DNS lookup or fetch occurs."
},
"spend": {
"type": "object",
"required": [
"proposal",
"mandate",
"now"
],
"properties": {
"now": {
"type": "string",
"format": "date-time",
"description": "Required caller-supplied ISO 8601 evaluation time; Action Gate never reads the server clock."
},
"mandate": {
"type": "object",
"required": [
"max_per_tx_atomic",
"max_period_atomic",
"allowed_assets",
"expires_at"
],
"properties": {
"expires_at": {
"type": "string",
"format": "date-time",
"description": "Mandate expiry as an ISO 8601 date-time."
},
"allowed_assets": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"maxItems": 100,
"minItems": 1,
"uniqueItems": true
},
"max_per_tx_atomic": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)$",
"maxLength": 78,
"minLength": 1,
"description": "Per-transaction cap as a canonical atomic-unit integer string."
},
"max_period_atomic": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)$",
"maxLength": 78,
"minLength": 1,
"description": "Period cap as a canonical atomic-unit integer string."
},
"spent_period_atomic": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)$",
"maxLength": 78,
"minLength": 1,
"description": "Optional already-spent amount in the same period; defaults to zero."
},
"allowed_counterparties": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"maxItems": 100,
"uniqueItems": true
}
},
"additionalProperties": false
},
"proposal": {
"type": "object",
"required": [
"amount_atomic",
"asset",
"counterparty"
],
"properties": {
"asset": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact asset identifier compared with mandate.allowed_assets."
},
"counterparty": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Exact counterparty identifier, compared case-insensitively when the mandate lists counterparties."
},
"amount_atomic": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)$",
"maxLength": 78,
"minLength": 1,
"description": "Canonical non-negative integer string in the asset's atomic units; never use decimal or exponent notation."
}
},
"additionalProperties": false
}
},
"description": "Optional payment proposal and mandate evaluated in exact atomic units at the caller-supplied deterministic time.",
"additionalProperties": false
},
"action": {
"type": "object",
"required": [
"name",
"effect"
],
"properties": {
"name": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Stable action name, such as fetch_vendor_quote or submit_payment."
},
"effect": {
"enum": [
"read",
"write",
"network",
"payment",
"execute"
],
"description": "Required effect class. Network requires url; payment requires spend; write and execute require payload plus schema to avoid an evidence-free ALLOW."
},
"description": {
"type": "string",
"maxLength": 4096,
"description": "Optional human-readable action description; it is scanned as untrusted text."
}
},
"description": "Declare the proposed action and its effect class. Action Gate never performs it.",
"additionalProperties": false
},
"schema": {
"type": "object",
"description": "Bounded local JSON Schema used to validate payload. Remote references and regular-expression keywords are rejected."
},
"payload": {
"description": "Optional JSON payload proposed for a write or execution. When present, schema is required and both are bounded."
},
"untrusted_text": {
"type": "string",
"maxLength": 16384,
"description": "Optional untrusted text to scan for prompt-injection, exfiltration, control-character, and bidi signals."
}
},
"description": "One bounded proposed agent action plus only the evidence that Action Gate should evaluate. Omitted optional evidence is not checked.",
"dependentRequired": {
"schema": [
"payload"
],
"payload": [
"schema"
]
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object"
}
}
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-08-12 00:15Z
- Last indexed by Roundhouse
- 2026-08-29 07:10Z
- Last enriched (probe, favicon, geo)
- 2026-09-24 13:15Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 405
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 6 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service GoldKey Action Gate and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=GoldKey%20Action%20Gate' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://goldkey-edge-storefront.noah-ing.workers.dev/v1/action-gate, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.