IntentProof is a local-first policy evidence layer for AI-agent payments. It records what an agent intended, what policy decided, and what ultimately settled in a portable, independently verifiable receipt chain.
The hosted product is a working Solana Devnet demonstration. The domain layer also includes a protocol-neutral receipt schema, an x402 evidence adapter, and a chain-adapter registry for the broader AgentPay control plane.
Try the demo | Find an agent-ready task | Contributor awards | Read the agent guide | Contribute
- Evaluates an agent's proposed SOL transfer against a local recipient allowlist, per-action budget, daily budget, and required intent note.
- Binds each approval to the exact recipient, amount, and intent note that was assessed; editing any of them requires another policy decision.
- Builds and signs a real Solana Devnet transfer only after the local policy allows it and the operator confirms it in Phantom.
- Adds the declared intent as an on-chain Memo instruction.
- Serializes concurrent receipt creation so every event links to one committed predecessor.
- Produces versioned, canonical SHA-256 receipts for allowed, blocked, submitted, failed, or settled events.
- Verifies every receipt hash and link before exporting a portable
intentproof.receipt-ledger.v1bundle. - Creates x402 evidence from
PAYMENT-REQUIRED, payment payload, facilitator, and settlement artifacts without storing the raw authorization payload. - Resolves network validation and explorer links through pluggable namespace adapters instead of hard-coded chain branches.
IntentProof never receives a seed phrase or private key. Wallet signing remains inside the user's Phantom extension.
| Layer | IntentProof responsibility |
|---|---|
| Policy engine | Supplies the decision and reason recorded in a receipt |
| Wallet | Retains keys and signs the approved action |
| Facilitator | Verifies and settles an x402 payment |
| Chain Registry | Validates network, address, and transaction identifiers through adapters |
| IntentProof | Binds intent, policy, payment digests, settlement reference, and the previous receipt hash |
| Unified Console | Imports and presents verified ledger bundles |
IntentProof does not route payments, custody assets, or act as a facilitator.
| Support level | Networks |
|---|---|
| End-to-end wallet execution | Solana Devnet |
| Built-in evidence validation | X Layer Mainnet, Base Mainnet, Base Sepolia, Solana Mainnet, Solana Devnet |
| Fast expansion | Any EVM network through one network manifest |
| New chain family | One namespace adapter plus one network manifest |
Evidence validation means IntentProof can validate and link a normalized settlement receipt. It does not mean the IntentProof demo can initiate a payment on that network.
IntentProof records what happened after a sensitive action. It complements Audit Skill Supply Chain, which reviews a skill before installation, and AgentSpend Guard, which enforces a spending policy before payment.
npm install
npm run devOpen the URL printed by Vite. To submit a transfer, install Phantom, select Devnet in Phantom settings, obtain Devnet SOL from a faucet, and add a valid Devnet recipient to the local allowlist.
After GitHub Pages is enabled, the demo is published at https://feeeeelixwong.github.io/intent-proof/.
The delivery walkthrough video is published at https://feeeeelixwong.github.io/intent-proof/delivery/intentproof-devnet-policy-demo.mp4.
The grant delivery evidence, release, CI run, and reproduction steps are collected in
docs/FINAL_TRANCHE.md.
Humans and coding agents are both welcome. Start with an open
agent-task,
comment to claim it, and submit a focused pull request.
AGENTS.mdgives coding agents the project map, commands, and security invariants.CONTRIBUTING.mdexplains the fork, test, and pull request workflow.REWARDS.mdexplains the post-submission review for discretionary contributor awards of up to 100 USDC.- Accepted contributors are credited in release notes, and outstanding agent contributions may also receive a contributor award after review.
npm test
npm run buildAgent intent
|
v
Policy decision ---------> blocked receipt
|
v
Wallet authorization
|
v
Chain or x402 facilitator
|
v
Settlement evidence
|
v
Serialized receipt appender
|
v
Chain adapter validation
|
v
Verified ledger bundle ---------> Unified Console
The current browser demo follows the Solana path: Phantom signs a SystemProgram.transfer plus a Memo instruction on Devnet. The reusable domain layer follows the same receipt flow for x402 payments.
createX402PaymentEvidence hashes payment artifacts using canonical JSON. Raw payment authorizations are not copied into the receipt:
import {
createReceipt,
createX402PaymentEvidence,
verifyReceiptChain,
} from './src/domain'
const evidence = await createX402PaymentEvidence({
amount: '10000',
asset: '0xUSDC',
network: 'eip155:8453',
payTo: '0xMerchant',
paymentPayload,
paymentRequired,
protocolVersion: 2,
resource: 'https://api.example.com/report',
scheme: 'exact',
settlement: {
response: settlementResponse,
success: true,
transactionHash: '0x...',
},
})See docs/RECEIPT_SCHEMA.md for the complete schema, verification rules, and Router/Console integration contract.
An additional EVM chain reuses the built-in eip155 adapter:
import { ChainRegistry, evmChainAdapter } from './src/domain'
const registry = new ChainRegistry()
.registerAdapter(evmChainAdapter)
.registerNetwork({
displayName: 'Example EVM',
environment: 'testnet',
explorerTransactionUrl: 'https://explorer.example/tx/{tx}',
id: 'eip155:999999',
})A new chain family uses createPatternChainAdapter; receipt hashing, ledger export, and UI code remain unchanged. See docs/CHAIN_ADAPTERS.md for the complete extension contract.
This project began as a working Solana product for the Superteam Agentic Engineering Grant. It now preserves that delivery while evolving the receipt core into reusable infrastructure for agent-payment policy, x402 settlement, and audit products.
MIT. See LICENSE.