Loading...
Loading...
PayProof is a client-side web app for verifying Stellar transactions and generating receipts. It queries the Stellar Horizon API directly from the browser — there is no backend, no database, and no data collection.
You provide a 64-character hex transaction hash and select mainnet or testnet.
The browser calls horizon[-testnet].stellar.org/transactions/{hash} and /operations. No data passes through PayProof servers.
Payment operations are extracted and rendered as a receipt at /receipt/{hash}-{index}.
Stellar transaction hashes are 64-character hex strings. Example testnet hash:
980a03a11a6e212ac2d6a739188c89437f9cfb1b0302b8aeb58c573a06ef71d4PayProof extracts operations of these types from a transaction:
Other operation types (account creation, trust lines, etc.) are present in the transaction but not shown in the results.
Queries horizon-testnet.stellar.org. Use this for development — testnet funds have no real value.
Queries horizon.stellar.org. Real transactions with real funds.
Receipt URLs use the format /receipt/{hash}-{operationIndex}. If a transaction has one payment operation the URL ends in -0. The receipt page tries testnet first, then mainnet — this works in practice but can fail if the wrong network responds first.
@stellar/stellar-sdk — used for the Horizon server client and hash validationlib/stellar.ts — Horizon queries, operation filtering, fee conversiontypes/stellar.ts — shared TypeScript interfacescomponents/transaction-results.tsx — result displaycomponents/receipt-card.tsx — receipt layout and actionsapp/receipt/[id]/page.tsx — receipt page, parses the hash-index URLlib/stellar.ts and lib/utils.tsSee CONTRIBUTING.md for setup instructions and what's most useful right now. The short version: clone the repo, run npm install && npm run dev, and open a PR against main.
The most impactful open items are a test suite and PDF export. Check the issues list for anything tagged good first issue.
MIT. Use it, fork it, self-host it. See the LICENSE file.