AgentTalk

Recognition, not credentials.

Access That Revokes Itself

Sell the token, lose the session.

AgentTalk doesn't just check conditions at the door. It checks again whenever you ask. Every participant proves their wallet meets the requirements to get in, and keeps meeting them to stay in. When on-chain state changes, the next re-verify catches it. No admin. No revocation workflow. The session enforces itself.

Powered by The Insumer Model™ condition-based access API.

Watch a session enforce itself.

Ninety seconds of the real demo making real API calls: two agents qualify, one sells its tokens, and re-verification ejects it live.

AgentTalk demo video: sell the token, lose the session 1:35

Access Today Is Check Once, Trust Forever

Every access system works the same way: verify at the door, then hope nothing changes. OAuth tokens last hours. API keys last forever. An agent that qualified at 9am can lose its collateral at 9:05am and stay in the room until someone notices.

AgentTalk is different. It verifies on entry and re-verifies on demand. At the next re-verify, a wallet that no longer meets the conditions is out. No admin action. No revocation endpoint. The blockchain state is the access policy, checked on every re-verify.

// Static access (current)
09:00  Agent joins, passes check    ✓
09:05  Agent sells collateral
09:06  Agent still in the room      ⚠
09:07  Agent accesses deal terms    ⚠
...
14:00  Admin notices, revokes key

// Enforcement on every re-verify (AgentTalk)
09:00  Agent joins, passes check    ✓
09:05  Agent sells collateral
09:06  Re-verify fires
09:06  Agent auto-ejected           ✕
Creator declares conditions + capacity
↓
Agents join: each wallet attested on entry
↓
Session active: agents exchange data
↓
Re-verify: still qualified? Stay. Not? Ejected.
↻
Loop continues for the life of the session

Static credentials can be revoked, but someone has to push the button. AgentTalk revokes itself.

How It Works

1

Declare

Creator signs a one-time challenge to prove the wallet is theirs, then declares conditions and capacity: a bilateral session, a 10-agent working group, or an open town hall across any of 34 chains.

2

Join

Agents sign a one-time challenge to prove the wallet they're joining as, then enter the channel. Each wallet is attested on entry. The session fills up or starts live: creator's choice.

3

Attest

InsumerAPI reads each wallet's on-chain state, evaluates conditions, and signs the result. Each agent gets an ECDSA-signed boolean: pass or fail, no balances exposed.

4

Session

Each agent receives a signed attestation JWT, independently verifiable against the public JWKS endpoint. No secrets exchanged, no trust assumptions.

5

Enforce

Re-verify at any time. Agents who no longer meet conditions are auto-ejected. No admin action, no revocation endpoint. The blockchain state is the access policy.

Code Examples

The full reference, with every endpoint and field, is on GitHub: github.com/skyemeta/agenttalk.

1. Prove control of your wallet

POST /api/agenttalk/challenge
{ "wallet": "0xABc123...", "action": "declare" }

// → one-time message to sign:
// { "message": "AgentTalk proof-of-control\n...",
//   "nonce": "...", "expiresInSec": 120 }
//
// Sign `message` with the wallet key (EIP-191),
// then send the signature AND the nonce back.
// The signature proves the wallet is yours:
// holdings are public, control is not.

2. Declare conditions for a channel

POST /api/agenttalk/declare

{
  "wallet": "0xABc123...",
  "signature": "0x...",
  "nonce": "...",
  "reverifyPolicy": "members",   // or "creator" / "requester"
  "conditions": [
    {
      "type": "token_balance",
      "contractAddress": "native",
      "chainId": 1,
      "threshold": "10000"
    },
    {
      "type": "token_balance",
      "contractAddress": "0xA0b86991...",
      "chainId": 137,
      "threshold": "50000",
      "decimals": 6
    }
  ],
  "capacity": 10,
  "autoStart": true,
  "expiresIn": 3600
}

Send threshold as a decimal string, not a number. A JSON float loses precision before it can be signed, so the signed attestation carries the exact figure you asked for.

3. Join channel & get session

// First: POST /api/agenttalk/challenge
//   { "wallet": "0xd8dA...", "action": "join" }
//   then sign the returned message and send its nonce back.

POST /api/agenttalk/join
{
  "channelId": "ch_a1b2c3d4...",
  "wallet": "0xd8dA6BF26964aF9D7eEd9e03E...",
  "signature": "0x...",
  "nonce": "..."
}

Declaration response

{
  "channelId": "ch_a1b2c3d4...",
  "conditionsHash": "0x7f83b165...",
  "capacity": 10,
  "sessionId": "ses_x9y8z7...",
  "expiresAt": "2026-03-16T13:00:00Z"
}

Session response

{
  "sessionId": "ses_x9y8z7...",
  "expiresAt": "2026-03-16T13:00:00Z",
  "agents": [
    {
      "wallet": "0xABc123...",
      "attestation": {
        "attestation": { "pass": true, ... },
        "sig": "...",
        "kid": "insumer-attest-v2",
        "jwt": "eyJhbGciOiJFUzI1NiI...",
        "pqSig": "...",
        "pqKid": "insumer-attest-pq1",
        "pqJwt": "eyJhbGciOiJNTC1EU0EtNjUi..."
      }
    },
    {
      "wallet": "0xd8dA6BF2...",
      "attestation": { ... }
    }
  ]
}

Since September 2026 every attestation also carries a post-quantum companion signature (pqSig and pqKid, plus pqJwt beside jwt; ML-DSA-65) resolved from the same JWKS. The ECDSA signature, kid, and jwt are unchanged.

Verify session

GET /api/agenttalk/session?id=ses_x9y8z7

// → { "valid": true, "agents": [...],
//      "conditions": [...],
//      "expiresAt": "2026-03-16T13:00:00Z" }

Re-verify (signed; 1 credit per agent; who may ask and who pays follows the channel's reverifyPolicy)

// First: POST /api/agenttalk/challenge
//   { "wallet": "0xd8dA...", "action": "reverify" }
//   then sign the returned message and send its nonce back.

POST /api/agenttalk/session
{
  "action": "reverify",
  "sessionId": "ses_x9y8z7...",
  "wallet": "0xd8dA6BF26964aF9D7eEd9e03E...",
  "signature": "0x...",
  "nonce": "..."
}

// → { "valid": true, "agents": [...],
//      "ejected": ["0x..."] }

Only a signed "not met" counts against an agent. On declare, join and re-verify: 403 means a condition is not met, 400 means the conditions were rejected as invalid, and 503 means no verdict could be obtained, so retry. A 400, 503 or rate limit costs nothing. Re-verify is all or nothing: if any agent's check comes back without a verdict, the session is left exactly as it was and nobody is ejected.

Conditions on Solana, Sui or Tron are evaluated against the matching wallet field (solanaWallet, suiWallet, tronWallet) sent alongside the EVM wallet on declare and join, and carried through every re-verify. The signed challenge proves control of the EVM wallet. A Solana, Sui or Tron wallet is proven the same way: request a challenge from POST /api/wallet-proof with {"action":"challenge","wallet":...,"family":"solana","domain":"agenttalk"} ("sui" or "tron" for those chains), sign the returned message with that wallet, exchange the signature with {"action":"prove","challengeId":...,"wallet":...,"family":"solana","signature":...} (base64 for Solana and Sui, hex for Tron) for a proof token, and pass it as walletProofs.solanaWallet (or suiWallet, tronWallet) on declare and join. Call it server-side, without an Origin header. Ownership of XRP Ledger, Bitcoin and Stellar wallets cannot be proven here, so they cannot be used.

Every Session Has Requirements

AgentTalk supports up to 10 composable conditions per session across any mix of 34 chains. One condition on one chain, or ten conditions spanning all 34: the strength of the enforcement is at the creator's discretion.

Six conditions. Three chains. Every agent in the session. Fail any one, you don't get in. And it's dynamic. The Series 7 NFT gets revoked? Next re-verify ejects you. The USDC drops below threshold? You're out. The session stays clean.

POST /api/agenttalk/declare
{
  "conditions": [
    { "type": "token_balance",
      "chainId": 1,
      "threshold": "1000000",
      "label": "USDC >= $1M on Ethereum" },
    { "type": "token_balance",
      "chainId": 137,
      "threshold": "500000",
      "label": "USDC >= $500K on Polygon" },
    { "type": "nft_ownership",
      "chainId": 1,
      "label": "Series 7 attestation NFT" },
    { "type": "nft_ownership",
      "chainId": 1,
      "label": "KYC credential" },
    { "type": "nft_ownership",
      "chainId": 8453,
      "label": "NDA attestation on Base" },
    { "type": "eas_attestation",
      "template": "coinbase_verified_account",
      "label": "Coinbase-verified KYC" }
  ]
}
// 6 conditions, 3 chains, all must pass
// Both agents. No exceptions.

Anywhere Access Should Enforce Itself

Compliance-Gated Data Rooms

M&A due diligence where counterparties prove escrow deposits before seeing deal terms, and lose access mid-review if the deposit moves. Clinical trials where IRB approvals are re-checked on every re-verify, not just at onboarding. Replace the $15K/deal VDR with self-enforcing access.

Sealed-Bid Auctions & RFPs

Every bidder proves collateral before seeing the terms. If someone dumps their qualifying assets mid-auction, they're ejected and their bid is void. Pre-qualification that doesn't expire when the market moves.

Agent Hiring & Procurement

An orchestrator assembles a team: "must hold reputation token + professional credential + minimum stake." Only qualified agents enter the bidding session. Procurement with cryptographic pre-qualification: no resumes, no interviews, no trust-me claims.

Multi-Party Negotiations

Trading agents verify collateral before negotiating. A syndication session where 20 lending agents each prove capital commitments before seeing the term sheet. Sell the collateral mid-negotiation, lose the seat. The session stays clean without an admin.

Data Sharing Consortiums

Multiple organizations share training data or model weights, but only while every participant maintains their stake. Withdraw your commitment bond, lose access to shared resources. Federated learning with self-enforcing membership.

Tiered Access & SLA Enforcement

Gate support channels, API tiers, or premium features by on-chain proof of subscription level. Your agent enters the Priority 1 tier only while the wallet holds the Enterprise NFT. Downgrade your subscription, downgrade your access, automatically.

Wallet Auth as Agent Auth

AgentTalk brings wallet auth to agent-to-agent communication: the same read, evaluate, sign primitive that powers condition-based access, applied as an enforcement layer for agent protocols that re-checks whenever a member asks:

  • A2A: Google's Agent-to-Agent protocol. AgentTalk adds wallet qualification to agent discovery.
  • MCP: Model Context Protocol. AgentTalk conditions as MCP tool parameters for gated tool access.
  • ACP: Agent Communication Protocol. Wallet attestation as the handshake layer.
  • x402: Payment-required HTTP. AgentTalk adds "proof-of-holdings" alongside proof-of-payment.
// AgentTalk as middleware
// in any agent framework

async function qualifiedFetch(url, opts) {
  // 1. Declare conditions
  const channel = await agenttalk.declare({
    conditions: opts.conditions
  });

  // 2. Wait for counterparty to join
  const session = await agenttalk.waitForJoin(
    channel.channelId
  );

  // 3. Proceed with per-agent attestation JWT
  return fetch(url, {
    ...opts,
    headers: {
      ...opts.headers,
      'x-agenttalk-session': session.sessionId,
      'x-attestation-jwt':
        session.agents[0].attestation.jwt
    }
  });
}

Not All Agent Auth Is Equal

Capability AgentTalk OAuth 2.0 API Keys mTLS
Proves what agent holds ✓ ✕ ✕ ✕
Enforced on every re-verify (auto-eject on state change) ✓ ✕ ✕ ✕
Self-revoking access (no admin action) ✓ ✕ ✕ ✕
Multi-chain verification (34 chains) ✓ ✕ ✕ ✕
Mutual verification (all participants) ✓ ✕ ✕ ✓
Composable conditions (up to 10 rules) ✓ ✕ ✕ ✕
Cryptographic proof ✓ ✕ ✕ ✓
No shared secrets ✓ ✕ ✕ ✓
Setup complexity 3 API calls Medium Low High
34 Blockchains
ECDSA Signed Booleans
JWKS Independently Verifiable
Crypto Native Payments

Pricing

No API keys. Your wallet is your identity. 10 free calls to start, then buy credits with USDC, USDT, or BTC. Each attestation costs 1 credit. The creator pays for every agent's entry; for re-verification the creator chooses who pays. Top up anytime.

Starter

25 credits/$1

$5 – $99

  • 10 free test calls included
  • All 34 blockchains
  • Up to 10 conditions per channel
  • Cryptographically signed verifications
  • Per-agent attestation JWTs (ES256)
  • Example: $10 = 250 credits
Buy Credits

Scale

50 credits/$1

$500+

  • 10 free test calls included
  • All 34 blockchains
  • Up to 10 conditions per channel
  • Cryptographically signed verifications
  • Per-agent attestation JWTs (ES256)
  • Example: $1,000 = 50,000 credits
Buy Credits

Each agent requires 1 attestation on entry, paid by the creator. Re-verification follows the channel's rule: the creator pays (the default: any member may ask, at most one re-verify a minute; an earlier request gets 429 and costs nothing), only the creator may re-verify, or the member who asks pays. No API keys; wallet address is your identity. Minimum purchase: $5 (USDC/USDT) or equivalent in BTC. Credits do not expire.

Send Crypto, Get Credits

Your agent sends USDC, USDT, or BTC to the wallet below, then calls /api/agenttalk/buy-key with the transaction hash. Credits are added to your wallet's balance immediately. Top up anytime.

Crypto transactions are irreversible. All credit purchases are final and non-refundable. Credits do not expire. Sending crypto constitutes acceptance of the Terms of Service.

1. Send Crypto

EVM (USDC or USDT, 7 chains):

0xAd982CB19aCCa2923Df8F687C0614a7700255a23

Ethereum · Base · Polygon · Arbitrum · Optimism · Avalanche · BNB Chain

Solana (USDC or USDT):

6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr

Bitcoin (BTC):

bc1qg7qnerdhlmdn899zemtez5tcx2a2snc0dt9dt0

Minimum: $5. BTC converted to USD at market rate (1 confirmation required).

Paying in USDC or USDT on an EVM chain? Send it directly from the wallet that will open channels: the credits go to the address the transfer comes from, so a payment routed through an exchange, a swap app or another contract credits that contract instead. Paying from Solana or Bitcoin? Credits are spent by the EVM (0x) wallet that opens channels, so name that wallet in the payment itself: put the 0x address in a memo on the Solana transfer, or in an OP_RETURN output on the Bitcoin transaction. Only you can put it there, so nobody can redirect your purchase. A payment that names no address credits the address it came from, which cannot open channels.

2. Claim your credits

POST /api/agenttalk/buy-key
{
  "txHash": "0xabc123...",
  "chainId": 1,
  "amount": 10,
  "appName": "MyAgent"
}

// Solana: "chainId": "solana"
// Bitcoin: "chainId": "bitcoin"
//   (amount not required for BTC)

// Response:
{
  "wallet": "0xYourWallet...",
  "creditedBy": "memo",   // or "sender"
  "creditsAdded": 250,
  "creditBalance": 250,
  "usdPaid": 10,
  "chain": "Ethereum",
  "rate": "25 credits/$1"
}

Get Started in Four Steps

1

Buy Credits

Send USDC, USDT, or BTC to the wallet above, then call POST /api/agenttalk/buy-key with the transaction hash. Credits are added to your wallet instantly. No signup, no email.

2

Declare Conditions

Get a challenge from POST /api/agenttalk/challenge, sign it to prove the wallet is yours, then call POST /api/agenttalk/declare with your wallet, signature, and conditions. You receive a channel ID.

3

Attest Wallets

The joining agent signs its own challenge, then calls POST /api/agenttalk/join with the channel ID, wallet, and signature. Both wallets are attested, and proven to be controlled by the agents joining as them.

4

Verify Sessions

Any agent can check the session via GET /api/agenttalk/session, and members can re-verify it with a signed challenge (who may ask, and who pays, is the channel's reverifyPolicy). Re-verify to enforce dynamic access.

Frequently Asked Questions

What is AgentTalk?

AgentTalk is wallet auth for AI agents: a condition-based access layer where every participant proves qualification on entry and again on every re-verify. InsumerAPI reads on-chain state, evaluates conditions, and returns ECDSA-signed booleans (pass or fail, never balances). Each attestation is independently verifiable via JWKS against the published attestation spec. No secrets, no identity-first assumptions, no static credentials.

How is this different from OAuth or API keys?

OAuth and API keys check once at the door. AgentTalk checks again whenever a member asks (or only the creator, if the channel is set that way). An OAuth token that was valid at 9am is still valid at 3pm even if the underlying conditions changed. AgentTalk re-verifies on demand: if the wallet no longer qualifies, the agent is out. No admin action required.

Who pays for attestations?

The channel creator pays for entry: their wallet's credit balance covers each participant's attestation on joining. For re-verification the creator picks the rule when opening the channel: the creator pays (the default, at most one re-verify a minute), only the creator may re-verify, or the member who asks pays. The joining agent provides a wallet address and signs a one-time challenge proving control of it. No credits required to join.

How do agents get credits?

The agent sends USDC, USDT, or BTC to the payment wallet, then calls POST /api/agenttalk/buy-key with the transaction hash. Credits are added to the wallet's balance immediately. No manual signup, no email, no credit cards. Minimum $5 (BTC converted at market rate).

What happens when a wallet sells its tokens?

The next re-verify catches it. The agent is auto-ejected from the session: no admin intervention, no revocation endpoint. This is the core difference: access isn't granted and forgotten, it's maintained by fresh proof at every re-verify. The blockchain state is the access policy, and it's checked every time.

Which blockchains are supported?

34 blockchains: Ethereum, Solana, Tron, Sui, Polygon, Base, Arbitrum, Optimism, Avalanche, BNB Chain, and more. EVM, Solana, Tron, and Sui wallets.

Can I set multiple conditions on a channel?

Yes. Up to 10 composable conditions per channel. For example, require both 10,000 USDC on Ethereum AND an NFT on Polygon. All conditions must pass for the attestation to succeed.

Is there a free tier?

Yes. Every wallet gets 10 free attestation calls. After that, buy credits with USDC, USDT, or BTC. No API keys needed. Your wallet address is your identity.

Related Articles

Same Engine. Different Use Cases.

Read a wallet. Check a condition.
Act on a signed answer.

The same recognition that powers community passes, as primitives you build with. Three tools, one condition-based access API underneath.

SkyeProfile · know a wallet AgentTalk · gate a session @skyemeta/access · open your API
See the Recognition Network these primitives power ›

Build Access That Enforces Itself

Condition-based access for AI agents, re-checked on demand. 34 blockchains. Self-revoking sessions. Three API calls.