Inspiration

I was an employee at Ginza Sushi Hibachi, a family-owned restaurant that eventually had to merge with another restaurant to keep operating.

From what I saw, the owners had thousands of dollars in unpaid customer balances that they weren’t prepared for. Debt collection was expensive, an accounting team was difficult to afford, and the problem wasn’t caught early enough.

I watched people I considered my friends need expertise they didn’t have. I watched them pay for resources that weren’t solving the problems in front of them.

That’s the inspiration behind LedgerProof. Large companies can hire people to investigate financial problems and handle their accounting. I wanted to make some of that expertise available to small businesses that can’t afford an entire team.

What it does

LedgerProof gives small businesses an AI accounting team that can reconcile transactions, investigate discrepancies, and prepare balanced journal entries. Human approval and direct evidence are built into the process.

It can explain where a bank deposit came from, identify unapplied credits or duplicate postings, and flag situations where the records don’t provide enough information.

For example, a $9,670 deposit might come from $10,000 in charges, minus $300 in refunds and $30 in fees. LedgerProof connects those records and shows the accounting behind the difference. When information is missing, its evidence buyer can purchase official vendor billing documentation through x402. It keeps the sources, checks the payment, and records what the investigation itself cost.

How we built it

LedgerProof uses Next.js, React, TypeScript, and Convex. The accounting code handles the calculations, balanced entries, version checks, and duplicate prevention.

CREAO investigates receivables and challenges assumptions in the data. Claude reviews selected accounting evidence using source references that the application checks. Convex stores the cases, decisions, provider jobs, and spending records.

For evidence purchases, we combined Coinbase’s CDP MCP and managed-wallet SDK with x402 payments to Exa. The agent checks whether information is already available locally before purchasing anything. Purchases have spending limits and require authorization.

The flow is built to check the delivered sources, verify the USDC transfer on Base, and create a balanced expense journal for the purchase. We also prepared the CRS sandbox integration using its official documentation and test personas.

Challenges we ran into

Financial interpretation is difficult for agents because a reasonable explanation can still be wrong. We needed to let the agent investigate while keeping the actual accounting changes controlled.

That meant checking for stale evidence, unsupported citations, and ambiguous allocations. We also had to handle different output formats without changing what the agent actually reported.

Giving an agent access to a wallet added another challenge. We needed to control where it could spend, how much it could spend, and what would happen if a request stopped responding after a payment might have occurred.

Even rounding became an issue. A 0.007 USDC purchase is less than one cent. Rounding every purchase would distort the records, so we keep the exact amount in atomic units.

Accomplishments that we’re proud of

We built a working flow that connects financial records, investigation, human review, and journal entries.

We verified live CREAO investigations, Claude accounting reviews, Convex persistence, Coinbase authentication, and Coinbase MCP access. We also created and verified the buyer wallet and received a real Exa x402 quote.

Our 45 unit/provider tests, four Convex tests, eight browser tests, and production build pass. These give us a foundation for continuing the project and checking that new features preserve the accounting rules. The paid Exa flow is implemented, with live settlement verification still pending. We’ve kept that distinction clear throughout the project.

What we learned

Accounting automation needs a trail that people can actually follow. Someone reviewing an entry should be able to understand where the numbers came from, why the entry was proposed, and what information is still missing.

We also learned that finding information doesn’t automatically resolve a financial question. A vendor’s billing documentation might help explain a charge, but the business may still need the actual receipt. The same applies to payments. Authorizing a purchase, settling it, receiving useful information, and recording the expense all need to be handled separately.

Building something useful for a small business means thinking through those details, including what happens when a service fails halfway through.

What’s next for LedgerProof

We want to connect accounting platforms and bank feeds so owners can work with their existing records. Reconciliation will expand to payments covering multiple invoices, partial allocations, and more complicated settlement activity.

We also plan to add accruals, cutoff checks, and reversal workflows. Production use will require longer-term record retention and proper permissions for owners, bookkeepers, and reviewers.

For evidence procurement, the next step is completing the funded x402 demonstration and adding services that address specific missing information.

Long-term, I want a small-business owner to be able to delegate routine accounting work and understand the result. We’ll measure whether we’re helping through time saved, exceptions resolved, reconciliation accuracy, and the cost of getting an answer.

Built With

  • anthropic-claude
  • base
  • coinbase-cdp
  • coinbase-cdp-mcp
  • convex
  • creao
  • crs-credit-api
  • exa
  • next.js
  • node.js
  • playwright
  • react
  • typescript
  • viem
  • x402
  • zod
Share this project:

Updates

Submission history