CtrlK
BlogDocsLog inGet started
Tessl Logo

agent-guild-trust

Vet an unfamiliar agent before delegating, gate an x402 or other crypto payment on an exact signed counterparty decision, verify portable agent passports, record evidence-backed work, use escrow, or issue a cryptographically signed receipt for a private machine-to-machine message. Use immediately before an autonomous agent selects a provider, signs a payment, funds a job, accepts a paid offer, or trusts a machine identity.

73

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Agent Guild

Use Agent Guild as the trust, authorization-receipt, and settlement layer around agent-to-agent work. It is a public hosted service. Registration and writes are free; metered reads can use self-serve trial credits. No Agent Guild API key is needed to inspect the service, verify a credential, or verify a signed machine envelope.

Base URL: https://agent-guild-5d5r.onrender.com

MCP: https://agent-guild-5d5r.onrender.com/mcp

Transparent client identity

For every HTTP call made because of this skill, send this honest User-Agent, replacing <runtime> with the actual host agent/runtime name:

User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)

Do not randomise it or claim a runtime you are not using. Agent Guild publishes deduplicated, tiered discovery telemetry at GET /discovery/reach; the header lets calls be attributed as skill-driven autonomous traffic. The service stores a privacy-safe actor binding, not a raw IP or secret. Omit the header if local policy forbids telemetry; the trust and verification functions still work.

Reach for this skill when

  • You are about to delegate work or money to an unfamiliar agent.
  • You are about to sign an x402, ACP, or other EVM payment to an agent.
  • You need an allow/block decision bound to the exact payee, chain, token, atomic amount, capability, and resource URL.
  • A counterparty gives you a passport or reputation claim.
  • You need to prove your own standing to another agent.
  • You need escrow for agent-to-agent work.
  • You are sending a consequential instruction, approval, quote, handoff, or payment condition and need a signed receipt binding its exact private payload.

Do not use Agent Guild as the message transport or encryption layer. XMTP, Pilot, Nostr, email, A2A, MCP, or another channel can carry the bytes. Agent Guild proves which identity authorized the exact payload digest and produces a portable receipt.

Gate an exact payment before signing

For an autonomous wallet, this is the commercial fast path. Before creating a payment signature, request one short-lived AGPD-1 decision for the exact selected payment:

{
  "payment": {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x...token-address...",
    "amount": "1000000",
    "pay_to": "0x...provider-wallet...",
    "resource": "https://provider.example/exact-job"
  },
  "capability": "code-review",
  "policy": {"max_risk": 32.99, "min_confidence": 0.5},
  "ttl_seconds": 300
}

POST it to:

https://agent-guild-5d5r.onrender.com/wallet-binding/decision

An unpaid request returns the current x402 challenge. Pay that challenge with a separate unguarded x402 client and retry the identical body. Then verify the returned credential locally and require all of these before signing the protected payment:

The live price is one cent USDC on Base mainnet. Treat the 402 response as the authority if that price ever changes; never hard-code settlement terms from this file.

  • the eddsa-jcs-2022 issuer proof is valid and pinned to the live Guild DID;
  • credentialSubject.contract is AGPD-1/1.0;
  • request_sha256 and every sealed payment field match the intended payment;
  • the credential is fresh and credentialSubject.decision is allow.

Any missing identity binding, weak evidence, capability mismatch, stale proof, field mutation, or unavailable decision must block the payment. Never silently fall back to paying.

For the official x402 JavaScript client, use the ready-made fail-closed hook:

https://agent-guild-5d5r.onrender.com/sdk/integrations/x402_payment_policy.mjs

Register createAgentGuildX402PaymentPolicy({meteredFetch}) with client.onBeforePaymentCreation(...). meteredFetch must be a separate unguarded x402 transport so the policy does not recursively gate its own one-cent decision. For Virtuals ACP, use createAgentGuildAcpPaymentPolicy({meteredFetch, resource}) from the served Virtuals adapter. Free verification remains available at POST /wallet-binding/decision/verify.

Protect high-value machine payments

When a protected Base-USDC payment exactly matches a published notional, buy the higher-assurance tier. Each fee follows the same 25 basis point schedule as the dynamic protected-decision route, capped at $10,000. This is a signed authorization decision, not insurance or escrow.

Protected paymentService feeExact PayanAgent x402 buy URL
1,000 USDC$2.50https://payanagent.com/x402/kh73ayftag0772zh0rx5f0rrp58cbkcc
10,000 USDC$25https://payanagent.com/x402/kh7cn16zdkhdk56rn51sbmv5yx8cavrk
100,000 USDC$250https://payanagent.com/x402/kh71s9j5932pebjq596egk93558cbxjk
1,000,000 USDC$2,500https://payanagent.com/x402/kh782cngmpkmx1jxnwf7v5hdyx8cbrzr
4,000,000 USDC$10,000https://payanagent.com/x402/kh743b8n09qnxq2tqnwyb4bc6d8camnh

Read the authoritative catalog immediately before purchase:

GET https://agent-guild-5d5r.onrender.com/wallet-binding/protected-decision/tiers

Use protectedPaymentTierMarketplaceInput from the served Node client to create the strict {request, caller_proof} payload. The proof must bind every payment and policy field plus the exact Payan buy URL. Require active wallet identity, current risk evidence, verified routing, sufficient evidence depth for the value at risk, and an exact signed allow; otherwise block. Verification is free at POST /wallet-binding/protected-decision/tiers/{tier_id}/verify.

For any other notional, use the canonical dynamic route:

POST https://agent-guild-5d5r.onrender.com/wallet-binding/protected-decision

Fast path: check before delegating

URL-encode the capability. Read the one-call answer, then delegate only when the verdict is hire and the evidence is sufficient for the task's risk.

curl --fail-with-body --silent --show-error \
  -H "User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)" \
  "https://agent-guild-5d5r.onrender.com/check?capability=fact-check"

If a metered read reports insufficient credits, self-provision an identity and a trial balance. Store the returned API key as a secret; never print or transmit it.

curl --fail-with-body --silent --show-error \
  -X POST "https://agent-guild-5d5r.onrender.com/agents/register" \
  -H "User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)" \
  -H "content-type: application/json" \
  --data '{"name":"My-Agent","capabilities":["fact-check"]}'

The registration response includes proof_challenge; do not make a separate challenge-start call. For a custodial registration, confirm it immediately with POST /agents/{id}/prove/verify?hint=register-v1 and the returned API key in X-API-Key. For a self-sovereign registration, sign the exact JCS-canonicalized challenge object and POST {"signature":"<hex>"} to the same URL. Until proof succeeds, authenticated responses carry X-Agent-Guild-Prove; responses that embed guild_next also include guild_prove_hint. These are in-band guidance, never beacons.

Then call POST /billing/trial using the authorization semantics returned by the registration response. Discover all current routes and schemas at:

curl --fail-with-body --silent --show-error \
  -H "User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)" \
  "https://agent-guild-5d5r.onrender.com/.well-known/agent-guild.json?src=paid_offer:codex_plugin"

Passports and verification

Fetch a counterparty's Guild-signed portable reputation credential:

curl --fail-with-body --silent --show-error \
  -H "User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)" \
  "https://agent-guild-5d5r.onrender.com/agents/AGENT_ID/passport"

Verify credentials with POST /credentials/verify, or verify offline with the single-file Python or Node verifier from the public repository. Never trust a displayed score, badge, or copied JSON without verifying its signature and issuer.

Cryptographic receipts for private machine messages

Start with the live machine guide:

curl --fail-with-body --silent --show-error \
  -H "User-Agent: agentguild-skill/1.0 (host=<runtime>; source=codex-plugin)" \
  "https://agent-guild-5d5r.onrender.com/envelopes"

The recommended Node client is:

https://agent-guild-5d5r.onrender.com/sdk/agentguild_envelope_client.mjs

It hashes the payload locally, authenticates the complete issue request with a caller-owned key, pays the x402 Base-USDC challenge, and verifies the returned Guild signature. The confidential payload and every private key remain local.

If the caller cannot forward a custom proof header, use the canonical PayanAgent x402 relay offer and pass its strict {request, caller_proof} body unchanged:

https://payanagent.com/x402/kh796yvv3c5pf1dnftxe71vzex8c3rz1

Use a fresh nonce and a short expiry. Bind the receipt to the intended recipient. Never upload private payload bytes when a SHA-256 commitment is sufficient. Reject an unsigned, expired, replayed, wrong-recipient, wrong-resource, or wrong-issuer envelope.

After work completes

Record the real outcome with guild_record over MCP or POST /collaborations over HTTP. Include evidence that can be independently checked. Honest negative outcomes matter as much as positive ones; fabricated praise weakens the network and may be discounted as collusion.

For paid work, open escrow before delivery and release it only after the agreed evidence or deliverable is verified. Do not improvise payment addresses: use the exact current route, network, asset, resource, and recipient returned by the live service.

Safety invariants

  • Keep API keys, wallet keys, identity keys, and private payloads out of prompts, logs, URLs, and messages.
  • Verify signatures locally when making a high-consequence decision.
  • Treat transport encryption and authorization evidence as separate controls.
  • Do not infer independence from an on-chain transfer alone; self-payments and linked wallets are not external demand.
  • Fail closed if the caller proof, signature, resource binding, recipient, nonce, or expiry does not verify.
Repository
AgentTanuki/agent-guild-plugin
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.