
Graph Trail
A ledger of large stablecoin transfers where every number traces back to its onchain source.
Demo
About
Graph Trail is a compliance-officer's ledger for large USDC/USDT/PYUSD transfers. Ask a plain-English question and Claude resolves it into a filter, real transfer data comes from The Graph's Token API, and an AI-generated summary sits alongside a sortable table. Every row links straight to its transaction on a public block explorer, so nothing shown is asserted without a source you can independently check yourself. Note: this is my first project in blockchain. I hacked solo for a few hours, only to built something and having fun doing it. No rocket science here!
How it's made
Backend: FastAPI, with Pydantic models (Transfer, QueryFilter, FlagResult) as the single schema contract the whole app is built around. Data sources sit behind one interface (TransferDataSource) chosen by a DATA_SOURCE env flag (fixture or token_api). The real data source calls The Graph's Token API directly for USDC/USDT/PYUSD transfers on Ethereum. NL layer: a natural-language question ("USDC transfers over $1M last week") gets turned into a structured filter via a single forced tool (call to Claude Haiku 4.5). A second Claude call turns the resulting transfer list into a short plain-English summary. Frontend: Streamlit, using its native column_config.LinkColumn and row-selection (on_select). All fixture data is real, currently-existing on-chain transactions — pulled live via a public RPC (eth_getLogs). The NL layer is tested against the real Anthropic API, not just mocks. ruff and ty (types) stayed clean throughout.