Question: where would a dated pre-payment fact fit, a caveat enforcer or the client?

Open
#215 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, solidity
Domain
blockchain

Research direction

This is a design question, not a patch. Read the delegation framework docs on caveat enforcers and redemption, then compare the client hook at bin/x402-gate-hook.mjs in AgenticFinanceGraph/agentic-finance-graph-mcp with the enforcer's amount and target bounds. Check the payee-facts definitions at /def/payee.facts.v2 and the dated EIP7702StatelessDeleGator finding; done is a maintainer answer on where dated external facts belong, not code changes.

Written by the indexing model from the issue text.

Description

A measured fact first, then one question.

We run Agentic Finance Graph, a read-only ledger of what ERC-8004 agents on Base do with money, read from the chain. Of the 2,029 EIP-7702-delegated wallets bound to ranked agents in our ledger (ranked = a payment seen from the bound wallet), 556 point at EIP7702StatelessDeleGator at 0x63c0c19a282a1b52b07dd5a65b58948a07dae32b (Sourcify match), the second-largest family after Coinbase's EIP7702Proxy (683). Measured 30 October 2026, 14:17 UTC, from eth_getCode on each wallet; a salted random sample of 200 re-read through a public Base node at block 53288713 agreed with our table on 181 of 185 readable wallets, and a coverage correction the same day (our table had held an implementation for only 930 of those wallets until the rest were re-read through a public node) is dated in our register as cp-2026-10-30-7702-impl-backfill. The dated finding with the full list is in our findings feed (kind delegation_families, agenticfinancegraph.com/api/findings), and the implementation set with names is published as a wallet set (agenticfinancegraph.com/api/wallet-sets). Names identify contracts, not the agents on them; nothing here is a trust decision.

The question. Before one of these agents pays, our server can return dated facts about the payee in one call (is it a paying agent, who else pays it, drain or address-poisoning history, the usual size of payments into it; definitions at agenticfinancegraph.com/def/payee.facts.v2). In the delegation model, where does an external, dated fact belong: inside a caveat enforcer that fetches it (with the staleness and availability problems that brings on chain), or in the delegate's client before it redeems the delegation, with the enforcer only bounding amounts and targets? We built the client-side version as an onBeforePaymentCreation hook for x402 clients (bin/x402-gate-hook.mjs in AgenticFinanceGraph/agentic-finance-graph-mcp) and would rather follow the framework's intent than guess it.

If a different venue is better for this kind of question, point us to it and we will close this.

Dominant language
Solidity
Stars
230
Forks
122
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from MetaMask/delegation-framework

All issues in MetaMask/delegation-framework

Similar issues

More Blockchain issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.