Skip to main content

Work / Payment indexer

Payment indexer

Rebuilds stablecoin card-payment volume from self-indexed chain data, issuer by issuer, with an evidence trail behind each figure.

card programs traced
22 of 24
registered addresses
413
on EVM mainnets
±0.6%
Role
Sole engineer
When
2026
  • TypeScript
  • ClickHouse
  • Postgres
  • EVM adapters
  • Solana adapters
Private repository. Shown as an outline only; no issuer data is reproduced here.

The problem

Crypto debit cards settle in stablecoins across many chains, and the public dashboards that report their volume do not publish how they count it. I wanted the same numbers rebuilt from my own index of chain data, broken down by issuer, card program, chain and asset, with a trail behind every figure that anyone could check.

How it is built

TypeScript, with chain adapters for EVM networks and Solana. Raw data lands in ClickHouse in its native shape; a Postgres control plane holds the registry. Only flows that have been attributed by decoding a call or an event enter the unified table, and the public benchmark is a reconciliation target, never an input.

EthereumBaseOptimismArbitrumPolygonSolanamore chainsRaw, chain-nativenever forced intoone shapeDecode and attributeselector and topic firstheuristics only as alabelled fallbackkey: network + addressAddress registryevery entry has evidenceFlowsattributed onlyReconcileagainst a publicbenchmark, neveran input

Where it stands

  1. 22 of 24card programs

    Issuance paths traced

    Twenty-two card programs have their on-chain path registered. The other two were checked and confirmed to settle off chain.

  2. ±0.6%on five EVM mainnets

    Reconciled, not estimated

    Volumes on Ethereum, Base, Optimism, Arbitrum and Polygon land within 0.6% of the public benchmark.

  3. 413addresses, 164 evidence rows

    A registry that shows its work

    Every attributed address keeps the evidence that put it there, across 778 deployments.

  4. 262tests passing

    Commits that argue with themselves

    Investigations are written up one document each, and more than one commit message records a measurement that refuted my own earlier claim.

What's next

A second ledger on a top-up basis, reconciled issuer by issuer.