<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AFG</title>
    <description>The latest articles on DEV Community by AFG (@agenticfinancegraph).</description>
    <link>https://dev.to/agenticfinancegraph</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4145374%2Fd6166769-7f93-4e40-9bdc-53d0afff8181.jpg</url>
      <title>DEV Community: AFG</title>
      <link>https://dev.to/agenticfinancegraph</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agenticfinancegraph"/>
    <language>en</language>
    <item>
      <title>The Binding Record: how we join an AI agent's identity to the money it moves (Research Note 01)</title>
      <dc:creator>AFG</dc:creator>
      <pubDate>Sun, 27 Sep 2026 12:02:20 +0000</pubDate>
      <link>https://dev.to/agenticfinancegraph/the-binding-record-how-we-join-an-ai-agents-identity-to-the-money-it-moves-research-note-01-8c9</link>
      <guid>https://dev.to/agenticfinancegraph/the-binding-record-how-we-join-an-ai-agents-identity-to-the-money-it-moves-research-note-01-8c9</guid>
      <description>&lt;p&gt;Yesterday's post (&lt;a href="https://dev.to/agenticfinancegraph/we-read-every-erc-8004-ai-agent-on-base-and-joined-it-to-its-money-12-have-ever-paid-anyone-3bjf"&gt;we read every ERC-8004 "AI agent" on Base and joined it to its money&lt;/a&gt;) got the right question back several times: &lt;em&gt;how do you know a wallet belongs to an agent?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Research Note 01 is the written answer, with the definitions, the equations and the failure cases. &lt;strong&gt;PDF, CC BY 4.0: &lt;a href="https://agenticfinancegraph.com/research/afg-research-note-01-v2-1-the-binding-record-2026-09-27.pdf" rel="noopener noreferrer"&gt;The Binding Record&lt;/a&gt;&lt;/strong&gt; (21 pages). This post is the short version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the join matters
&lt;/h2&gt;

&lt;p&gt;There are four public facts about any AI agent that has money: an identity (a token in a registry), a wallet, a payment, and the pattern payments make over time. Registries publish how many identities were minted. Payment scanners publish how many dollars moved over a rail. Nobody publishes the join between them, and every interesting claim lives in that join.&lt;/p&gt;

&lt;p&gt;"This agent has paid for something" is not a claim about a token. It is a claim about a wallet, made on behalf of a token, and it is only as good as the evidence that the wallet spends for that token. A registration count is a count of names.&lt;/p&gt;

&lt;h2&gt;
  
  
  The binding record
&lt;/h2&gt;

&lt;p&gt;A binding record is a versioned, evidence-ranked join from an identity &lt;code&gt;a&lt;/code&gt; to the wallet &lt;code&gt;w&lt;/code&gt; that spends for it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;β = (a, w, m, c, [h_from, h_to), E, σ)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;m&lt;/code&gt; is the method that proved the join; &lt;code&gt;c = κ(m)&lt;/code&gt; a confidence that is a function of the method, never a blend; &lt;code&gt;[h_from, h_to)&lt;/code&gt; the block interval in which the binding is valid; &lt;code&gt;E&lt;/code&gt; the evidence (a transaction hash, a signed message, a registration file with its content hash, each with the time it was observed); &lt;code&gt;σ&lt;/code&gt; a pointer to the binding that superseded this one.&lt;/p&gt;

&lt;p&gt;Two rules turn it from a snapshot into a ledger. A binding is born, closed or superseded, never edited in place. And every row that records money references a binding. So for any block height &lt;code&gt;h&lt;/code&gt;, the wallet attributed to an identity is the binding valid at &lt;code&gt;h&lt;/code&gt;, and attribution can be replayed at any past height. The answer does not change because a token was later sold.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methods are ranked, never averaged
&lt;/h3&gt;

&lt;p&gt;A confidence that blends a cryptographic signature with a guess is worse than no score, because it hides which of the two you are holding.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;m&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;κ(m)&lt;/th&gt;
&lt;th&gt;Forgeability&lt;/th&gt;
&lt;th&gt;On Base, 27 Sep 2026&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;The wallet signs a challenge over the agent's global id and a nonce&lt;/td&gt;
&lt;td&gt;0.95&lt;/td&gt;
&lt;td&gt;Hard: requires the key&lt;/td&gt;
&lt;td&gt;Offered through the Desk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;An EIP-7702 authorization or session policy whose signed payload embeds the agent id&lt;/td&gt;
&lt;td&gt;0.90&lt;/td&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;Specified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;The registration declares its wallet and that wallet is the observed spender&lt;/td&gt;
&lt;td&gt;0.70&lt;/td&gt;
&lt;td&gt;Medium: a declaration can be copied, but the spender must match&lt;/td&gt;
&lt;td&gt;307 open bindings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;A wallet declared only in a URI-hosted file that can change after the fact&lt;/td&gt;
&lt;td&gt;0.45&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;Reserved; never ranks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;The registration's holder (&lt;code&gt;ownerOf&lt;/code&gt;) is the observed spender&lt;/td&gt;
&lt;td&gt;0.55&lt;/td&gt;
&lt;td&gt;Medium: a holder can hold many things&lt;/td&gt;
&lt;td&gt;95,527 open bindings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Name similarity, shared funders, shared implementations&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Trivial&lt;/td&gt;
&lt;td&gt;Never a binding; a cluster hint&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Method 3 sits above method 1 on purpose. A declared wallet that is also the observed spender has passed two tests, the declaration and the behaviour; holding is one test that a factory address passes for thousands of identities at once. Method 1 is still a binding, because on this registry the holder is, overwhelmingly, the only wallet the identity has. The record says which method bound it, and so does the public rank, so a reader can discount as they see fit.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the record refuses to say
&lt;/h3&gt;

&lt;p&gt;A binding is evidence of control, not of operation. It does not say that a program rather than a person signs the transactions. It does not say who deployed or runs a wallet's controller contract. It does not say a payment was for a good or a service. Those are separate claims needing separate evidence, and a &lt;code&gt;does_not_assert&lt;/code&gt; list travels with every figure derived from the record.&lt;/p&gt;

&lt;h2&gt;
  
  
  From a binding to a counted payment
&lt;/h2&gt;

&lt;p&gt;Take the ERC-20 &lt;code&gt;Transfer&lt;/code&gt; events of four stablecoins on Base (USDC, USDT, EURC, DAI). A transfer is &lt;strong&gt;counted&lt;/strong&gt; when all four hold:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;it comes from a wallet with a binding valid at that block;&lt;/li&gt;
&lt;li&gt;it is dated at or after the identity's mint. A wallet may have had a long life before someone minted an identity into it, and that life is not the agent's;&lt;/li&gt;
&lt;li&gt;the recipient is not the sender;&lt;/li&gt;
&lt;li&gt;it is not a hop. From the transaction receipt: if stablecoin value both entered and left the sending wallet inside the same transaction, and the two amounts are within 2% of each other, that is a router doing its job, not an agent buying anything.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The two exclusions are published beside the total, so that everything that left bound wallets equals counted + pre-registration + hops, to the dollar.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the census shows
&lt;/h2&gt;

&lt;p&gt;Figures as of 27 September 2026, 11:52 UTC; every one of them is live on the site with its definition.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;95,882&lt;/strong&gt; identities held by &lt;strong&gt;48,822&lt;/strong&gt; wallets; &lt;strong&gt;1,198&lt;/strong&gt; have been observed paying a different address after the identity existed (1 in 80).&lt;/li&gt;
&lt;li&gt;Excluded: &lt;strong&gt;$72.22M&lt;/strong&gt; moved before the identity was minted; &lt;strong&gt;$18.08M&lt;/strong&gt; of routing hops.&lt;/li&gt;
&lt;li&gt;Counted: &lt;strong&gt;$9.07M&lt;/strong&gt; to 955 recipients. Identifying those recipients from verified contract source: &lt;strong&gt;59%&lt;/strong&gt; is agents' own cash entering lending protocols and vaults through policy adapters, &lt;strong&gt;18%&lt;/strong&gt; leaves the chain through bridges, &lt;strong&gt;4.4%&lt;/strong&gt; buys work through an escrow.&lt;/li&gt;
&lt;li&gt;The largest wallet alone is &lt;strong&gt;27%&lt;/strong&gt; of the counted total and the median payment is &lt;strong&gt;$54.41&lt;/strong&gt;. That is why the total is never published alone.&lt;/li&gt;
&lt;li&gt;One of the six worked examples in the note: a wallet with &lt;strong&gt;$34.57M&lt;/strong&gt; of pre-registration history that would otherwise have been reported as agent spending.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What attacks the join
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shared wallets.&lt;/strong&gt; 11,877 wallets hold more than one identity; one holds 8,313. Each transfer is counted once, identities are clustered by holder, and only a signed challenge (method 5) can separate them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resold identities.&lt;/strong&gt; 20.6% have changed hands. The binding is closed at the transfer block; a bought identity inherits no payment history and a stolen one does not carry its victim's rank. The closure rule applies to transfers observed after a binding exists (the census bound current holders, so earlier resales are visible only in the resale count).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-registration history.&lt;/strong&gt; 926 identities sit in wallets that moved $72.22M before the mint. The date rule handles the past; it cannot handle a wallet that keeps a non-agent life after the mint, which is why the top-wallet share and the median always travel with the total.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hops and wash loops.&lt;/strong&gt; The receipt test catches money that passes through in one transaction. It does not catch a loop over two transactions; a multi-transaction loop detector is the next check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declared wallets.&lt;/strong&gt; A registration file can declare anyone's wallet. It binds only when the declared wallet is also the observed spender.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reproduce it
&lt;/h2&gt;

&lt;p&gt;Every figure resolves to a public metric identifier and a value at the stated time: the &lt;a href="https://agenticfinancegraph.com/binding-record-spec-agent-wallet-join-schema" rel="noopener noreferrer"&gt;binding record specification&lt;/a&gt;, the &lt;a href="https://agenticfinancegraph.com/def/pay.usd.total.v1" rel="noopener noreferrer"&gt;definitions&lt;/a&gt;, the &lt;a href="https://agenticfinancegraph.com/api/state" rel="noopener noreferrer"&gt;live tape&lt;/a&gt; and the &lt;a href="https://agenticfinancegraph.com/api/agents" rel="noopener noreferrer"&gt;ranked agents&lt;/a&gt;. Corrections go out as new versions; the earlier PDFs stay online.&lt;/p&gt;

&lt;p&gt;Cite as: Agentic Finance Graph (2026). &lt;em&gt;The Binding Record: how we join an AI agent's identity to the money it moves.&lt;/em&gt; Research Note 01, v2.1, 27 September 2026.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: the measurements are the ledger's own, read from the chain. The pipeline, the analysis code and the drafting were done with AI assistance under the author's direction, and the author verified every figure.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>datascience</category>
    </item>
    <item>
      <title>We read every ERC-8004 "AI agent" on Base and joined it to its money. 1.2% have ever paid anyone.</title>
      <dc:creator>AFG</dc:creator>
      <pubDate>Sun, 27 Sep 2026 10:57:37 +0000</pubDate>
      <link>https://dev.to/agenticfinancegraph/we-read-every-erc-8004-ai-agent-on-base-and-joined-it-to-its-money-12-have-ever-paid-anyone-3bjf</link>
      <guid>https://dev.to/agenticfinancegraph/we-read-every-erc-8004-ai-agent-on-base-and-joined-it-to-its-money-12-have-ever-paid-anyone-3bjf</guid>
      <description>&lt;p&gt;There are 95,882 AI-agent identities registered on Base under ERC-8004. Ask how many of them have ever paid anyone, from a wallet you can prove is theirs, after the identity existed, for something that was not a routing hop, and the answer is &lt;strong&gt;1,198&lt;/strong&gt;. One in eighty.&lt;/p&gt;

&lt;p&gt;We run &lt;a href="https://agenticfinancegraph.com" rel="noopener noreferrer"&gt;Agentic Finance Graph&lt;/a&gt;, an independent public ledger of agent money. This post is the developer version of what we found when we moved from sampling the registry to reading all of it, and how you can check any agent yourself with one request.&lt;/p&gt;

&lt;h2&gt;
  
  
  The join nobody publishes
&lt;/h2&gt;

&lt;p&gt;Every "agent economy" dashboard draws the same arrow: identity → wallet → payment. Registries count identities (mints). Payment rails count transfers. Nobody publishes the join between them, and the join is where every interesting claim lives. "This agent has paid for something" is a claim about a &lt;em&gt;wallet&lt;/em&gt;, made on behalf of a &lt;em&gt;token&lt;/em&gt;, and it is only as good as the evidence that the wallet spends for that token.&lt;/p&gt;

&lt;p&gt;So we specified the join. A &lt;strong&gt;binding record&lt;/strong&gt; is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(agent_gid, wallet, bind_method, confidence, valid_from_block, valid_to_block, evidence[], superseded_by)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Methods are ranked, never averaged:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;m&lt;/th&gt;
&lt;th&gt;how the wallet is tied to the identity&lt;/th&gt;
&lt;th&gt;confidence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;wallet signs a challenge over the agent id + nonce&lt;/td&gt;
&lt;td&gt;0.95&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;EIP-7702 / session policy that embeds the agent id&lt;/td&gt;
&lt;td&gt;0.90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;the registration declares a wallet &lt;strong&gt;and&lt;/strong&gt; that wallet is the observed spender&lt;/td&gt;
&lt;td&gt;0.70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;ownerOf(tokenId)&lt;/code&gt; is the observed spender&lt;/td&gt;
&lt;td&gt;0.55&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;name similarity, clustering&lt;/td&gt;
&lt;td&gt;never a binding&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two rules make it a ledger instead of a snapshot: a binding is born, dies and can be superseded, never edited in place (when the NFT is resold, the binding is closed at that block and the new holder has to earn a new one); and every payment row references a &lt;code&gt;binding_id&lt;/code&gt;, so attribution can be replayed at any block height.&lt;/p&gt;

&lt;h2&gt;
  
  
  What counts as a payment
&lt;/h2&gt;

&lt;p&gt;A stablecoin transfer (USDC, USDT, EURC, DAI on Base) counts if:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the sender has a binding valid at that block,&lt;/li&gt;
&lt;li&gt;the block is at or after the identity's mint block, and&lt;/li&gt;
&lt;li&gt;the receipt does not show the money arriving &lt;em&gt;and&lt;/em&gt; leaving the wallet in the same transaction (within 2%): that's a router hop, not a purchase.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Rule 2 sounds pedantic until you meet wallet &lt;code&gt;#63877&lt;/code&gt;: it registered an identity on 18 August 2026 and had moved &lt;strong&gt;$34.6M&lt;/strong&gt; in stablecoins before that date. Without the date rule, one identity would have added four times our entire counted total as "agent spending".&lt;/p&gt;

&lt;p&gt;The partition of every dollar that left a bound wallet, as of 27 Sep 2026 10:00 UTC:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;component&lt;/th&gt;
&lt;th&gt;USD&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;counted payments&lt;/td&gt;
&lt;td&gt;$8.8M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;excluded: before the identity existed&lt;/td&gt;
&lt;td&gt;$72.2M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;excluded: routing hops&lt;/td&gt;
&lt;td&gt;$17.8M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$98.8M&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A naive total is 11× the honest one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the counted money actually goes
&lt;/h2&gt;

&lt;p&gt;We identified the recipients from verified contract source and from the transaction receipts of the largest transfers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;60% lending and vault adapters.&lt;/strong&gt; The single largest recipient is a verified contract literally named &lt;code&gt;Adapter&lt;/code&gt; whose NatSpec says it wraps Aave v3 and ERC-4626 deposits "so receivers are always bound to &lt;code&gt;msg.sender&lt;/code&gt;", called by session keys. Agents parking their own cash at yield.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;18% bridges.&lt;/strong&gt; Across, Relay, LI.FI, a CCTP wrapper, and three unverified routers whose every sampled receipt forwards the full amount to the Across SpokePool in the same tx.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4.5% escrowed work&lt;/strong&gt; (&lt;code&gt;TermixEscrow&lt;/code&gt;: an order lifecycle with a dispute layer, in its own events).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1.5% swaps&lt;/strong&gt; (Uniswap v3 / Aerodrome pools: USDC in, another token back).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The largest wallet is 28% of the total; the median payment is $48. So: the money registered agents control is mostly treasury management, not purchases. And only 5% of counted transfers are x402 micropayments; the wallets that buy APIs over HTTP and the identities registered under ERC-8004 are, so far, mostly different populations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check any agent yourself
&lt;/h2&gt;

&lt;p&gt;Is this identity an economic actor?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://agenticfinancegraph.com/api/agents?q=53008"&lt;/span&gt; | jq &lt;span class="s1"&gt;'.ranked, .agent.liveness'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Its public record (bindings with their method, counterparties, 25 newest payments, float, incidents):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://agenticfinancegraph.com/api/agent?id=53008&amp;amp;format=json"&lt;/span&gt; | jq &lt;span class="s1"&gt;'.agent | {liveness, wallet, bindings, pay}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The whole tape, every metric with a definition id and an &lt;code&gt;as_of&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agenticfinancegraph.com/api/state | jq &lt;span class="s1"&gt;'.measured | {actors_l7_plus, observed_pay_usd_total, observed_pay_top_actor_share, observed_pay_usd_median}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every number resolves to a frozen definition that states what it does &lt;strong&gt;not&lt;/strong&gt; assert:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agenticfinancegraph.com/api/def?id&lt;span class="o"&gt;=&lt;/span&gt;rank.l7plus.v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agents can buy a dated evidence pack about a counterparty over x402, no account, $1 in USDC:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"https://agenticfinancegraph.com/check/liveness?id=53008"&lt;/span&gt;
&lt;span class="c"&gt;# HTTP/1.1 402 Payment Required&lt;/span&gt;
&lt;span class="c"&gt;# PAYMENT-REQUIRED: &amp;lt;base64 requirements: amount 1000000, USDC on eip155:8453, payTo ...&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;# retry with PAYMENT-SIGNATURE (EIP-3009 authorization); the pack comes back with the receipt inside&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a badge you can embed that says exactly what the record says and nothing more:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://agenticfinancegraph.com/badge/8004-base-53008.svg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"L9 · observed paying · Agentic Finance Graph"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What this does not assert
&lt;/h2&gt;

&lt;p&gt;A binding is evidence of control, not of operation: the chain does not say whether a program or a person signs. A label describes what a contract does, never who runs it. A counted payment is a transfer, not proof it bought a good or a service. We publish those refusals next to every figure, and 37 assertion checks run against our own tables every three hours with their failing counts public. Every finding on the site is re-derived from the raw rows and matched in the transaction receipt before it is shown.&lt;/p&gt;

&lt;p&gt;The full method, with the equations and six agents walked through by transaction, is in &lt;a href="https://agenticfinancegraph.com/research" rel="noopener noreferrer"&gt;Research Note 01: The Binding Record&lt;/a&gt; (PDF, CC BY 4.0). The &lt;a href="https://agenticfinancegraph.com/binding-record-spec-agent-wallet-join-schema" rel="noopener noreferrer"&gt;binding record spec&lt;/a&gt; is published to be copied; if you run an indexer and implement it, tell us what breaks.&lt;/p&gt;

&lt;p&gt;We don't hold keys, move funds, or run a rail. We watch, and we count.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>ethereum</category>
    </item>
  </channel>
</rss>
