Before two agents exchange information, both verify their wallets satisfy the same on-chain condition. Authentication infrastructure for autonomous agents.
Powered by The Insumer Model™ wallet verification engine.
Current agent protocols answer "who are you?" with API keys and OAuth tokens. But the real question is "what do you hold?" An agent negotiating a supply chain contract needs to prove it represents a wallet with $10M in USDC — not that it has a valid JWT.
AgentTalk replaces identity-based auth with condition-based attestation. Both agents verify the same on-chain conditions before a session begins. No credentials to share. No trust assumptions. Just cryptographic proof.
// Identity-based (current)
Agent A: "Here's my API key"
Agent B: "OK, I trust you"
// → Trust the credential, not the holder
// Condition-based (AgentTalk)
Agent A: "Prove you hold 10M USDC"
Agent B: "Prove you hold a DAO NFT"
// → Both pass attestation, session begins
// → Sell the token, lose the session
Sell the token → lose the session. Dynamic access, enforced on-chain.
Agent A declares conditions for a channel — token balances, NFT ownership, or trust profiles across any of 31 chains.
Agent B discovers the channel and submits its wallet address to join.
Both wallets are independently verified against the declared conditions via InsumerAPI. ECDSA-signed attestations.
If both pass, a signed session token (JWT) is issued. Both agents can verify the session at any time.
Sessions can be re-verified on demand. Dynamic access enforcement — the session reflects current on-chain state.
1. Declare conditions for a channel
POST /api/agenttalk/declare
x-api-key: insr_live_...
{
"wallet": "0xABc123...",
"conditions": [
{
"type": "token_balance",
"contractAddress": "native",
"chainId": 1,
"threshold": 10000
},
{
"type": "token_balance",
"contractAddress": "0xA0b86991...",
"chainId": 137,
"threshold": 50000,
"decimals": 6
}
],
"expiresIn": 3600
}
2. Join channel & get session
POST /api/agenttalk/join
{
"channelId": "ch_a1b2c3d4...",
"wallet": "0xd8dA6BF26964aF9D7eEd9e03E..."
}
Declaration response
{
"channelId": "ch_a1b2c3d4...",
"conditionsHash": "0x7f83b165...",
"expiresAt": "2026-03-16T13:00:00Z"
}
Session response
{
"sessionId": "ses_x9y8z7...",
"sessionToken": "eyJhbGciOiJIUzI1NiI...",
"expiresAt": "2026-03-16T13:00:00Z",
"agents": [
"0xABc123...",
"0xd8dA6BF2..."
]
}
Verify session
GET /api/agenttalk/session?id=ses_x9y8z7
// → { "valid": true, "agents": [...],
// "conditions": [...],
// "expiresAt": "2026-03-16T13:00:00Z" }
Two procurement agents verify they each represent wallets holding $1M+ in USDC before sharing pricing data. No trust assumptions — just on-chain proof of financial capacity.
A portfolio agent only shares allocation data with agents whose wallets hold specific governance tokens. Attestation replaces allow-lists.
Agents exchanging regulated data verify each other holds compliance attestation NFTs (e.g., EAS credentials). Dynamic access — revoke the NFT, close the session.
DAO-to-DAO agents verify governance token holdings before executing joint proposals. On-chain qualification replaces manual approval chains.
AgentTalk is a reference implementation of wallet attestation for agent-to-agent communication. It fits into existing and emerging protocols as the qualification layer:
// 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 qualified session
return fetch(url, {
...opts,
headers: {
...opts.headers,
'x-agenttalk-session': session.sessionToken
}
});
}
| Capability | AgentTalk | OAuth 2.0 | API Keys | mTLS |
|---|---|---|---|---|
| Proves what agent holds | ✓ | ✕ | ✕ | ✕ |
| Dynamic access (sell token = lose access) | ✓ | ✕ | ✕ | ✕ |
| Multi-chain verification (31 chains) | ✓ | ✕ | ✕ | ✕ |
| Mutual verification (both sides) | ✓ | ✕ | ✕ | ✓ |
| Composable conditions (up to 10 rules) | ✓ | ✕ | ✕ | ✕ |
| Cryptographic proof (ECDSA) | ✓ | ✕ | ✕ | ✓ |
| No shared secrets | ✓ | ✕ | ✕ | ✓ |
| Setup complexity | 3 API calls | Medium | Low | High |
Buy credits with USDC. Each attestation costs 1 credit. Only the channel creator needs a key. 10 free test calls to start.
$5 – $99 USDC
$100 – $499 USDC
$500+ USDC
Each session requires 2 attestations (one per agent). Caller pays for both sides. Joiner never needs an API key. Minimum purchase: $5 USDC. Keys expire after 30 days.
Your agent sends USDC to the wallet below, then calls /api/agenttalk/buy-key with the transaction hash. The key is returned immediately.
EVM (7 chains):
0xAd982CB19aCCa2923Df8F687C0614a7700255a23
Ethereum · Base · Polygon · Arbitrum · Optimism · Avalanche · BNB Chain
Solana:
6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr
Minimum: $5 USDC
POST /api/agenttalk/buy-key
{
"txHash": "0xabc123...",
"chainId": 1,
"amount": 10,
"appName": "MyAgent"
}
// For Solana:
// "chainId": "solana"
// Response:
{
"apiKey": "insr_live_...",
"credits": 250,
"usdcPaid": 10,
"chain": "ethereum",
"expiresAt": "2026-04-15T..."
}
Send USDC to the wallet above, then call POST /api/agenttalk/buy-key with the transaction hash. Your agent does this autonomously — no signup, no email.
Call POST /api/agenttalk/declare with your conditions and API key. You receive a channel ID.
The joining agent calls POST /api/agenttalk/join with the channel ID and wallet. Both wallets are attested.
Either agent can verify the session at any time via GET /api/agenttalk/session. Re-verify to enforce dynamic access.
AgentTalk is a condition-gated communication layer for AI agents. Before two agents can exchange information, both independently verify their wallets satisfy the same on-chain conditions (token balances, NFT ownership, trust profiles) via InsumerAPI attestation.
OAuth and API keys prove identity — "this agent has permission." AgentTalk proves qualification — "this agent's wallet holds X." Access is dynamic: sell the token, lose the session. No credentials to share or revoke.
Only the channel creator (caller) pays. Their API key covers both attestation calls. The joining agent only provides a wallet address — no API key required.
The agent sends USDC to the payment wallet (EVM or Solana), then calls POST /api/agenttalk/buy-key with the transaction hash. The key is returned immediately. No manual signup, no email, no credit cards. Minimum $5 USDC.
Sessions can be re-verified at any time. If either wallet no longer meets the conditions, the session is invalidated. This is dynamic access — the session reflects the current on-chain state, not the state at the time of issuance.
All 31 blockchains supported by InsumerAPI: Ethereum, Solana, Polygon, Base, Arbitrum, Optimism, Avalanche, BNB Chain, and 23 more. Both EVM and Solana wallets.
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.
Yes. Every agent gets 10 free attestation calls to test the API. After that, you need an InsumerAPI key purchased with USDC.