
End Credits
Your AI agent voluntarily tips the open-source packages it used, from your budget, scam-checked.
Demo
About
End Credits lets your AI agent tip the open-source packages it used. It is opt-in, not a paywall: packages stay free, and only developers who choose a budget pay. Coding agents read docs and source instead of visiting project pages, so maintainers lose the traffic that used to bring sponsors. How it works: sign in with MetaMask, set a spending limit, connect Claude Code. At the end of each session, End Credits sees which packages the agent actually used, splits your budget between them, and pays each maintainer in USDC over x402. Before anything is signed, Intercepta screens every payee: - Clean: paid. - Sanctioned, scammer or look a like address: refused, nothing sent. - Payout address changed recently or medium risk: held in escrow until you approve with your wallet. - No wallet yet: reserved until the maintainer claims it. Your USDC stays in your own wallet. A contract lets your agent spend only up to your limit, and you can revoke it in one transaction. Live on Base Sepolia, with every payment, refusal, hold and claim linked to its transaction. Dashboard built on Curvegrid MultiBaas.
How it's made
Next.js 16 + React 19 on Railway (web, worker, Postgres with Drizzle), a TypeScript CLI wired into Claude Code hooks plus an MCP server, and Foundry contracts on Base Sepolia. The hook records which packages the agent used and uploads only package names and counts, never code. A worker splits the budget, finds each maintainer's published address (Drips FUNDING.json, tea.yaml, npm funding), and checks the repo really publishes that package. Intercepta: every payee is screened live (quick scan, address-poisoning check, token risks) before anything is signed, and the result picks paid, held or refused. A timeout means hold, never pay. We pay on Base Sepolia but screen the real addresses on Base mainnet, since Intercepta has no testnet. x402: payments use EIP-3009 through the x402.org facilitator. The hacky part is a hook right before signing that refuses any payment request whose recipient is not the exact address Intercepta screened, which stops a swapped payout address. Contracts: an escrow where held money is released only by the owner's EIP-712 signature, and a budget contract that lets the agent spend from the owner's own wallet up to a limit. Both verified, with invariant and mutation tests. Curvegrid MultiBaas: deployed both contracts with the Forge plugin, and the whole dashboard runs on saved event queries plus a signed webhook for owner notifications.