Overview
The /inspector page in the web app is a shell. This tool should let developers paste a transaction hash, Stellar address, or ledger sequence and get a fully decoded, human-readable breakdown — essential for debugging CrowdPay and Fluxa integrations.
What needs to be built
NestJS API — apps/api/src/modules/transaction/transaction.service.ts
lookupTransaction(hash: string, network: 'testnet' | 'mainnet') — fetch from Horizon, return decoded operation list, memo (text/hash/id), fee, ledger, timestamp
lookupAccount(address: string, network) — balances per asset, sequence number, signers, recent transactions (last 20)
- XDR decode: if raw XDR is pasted, decode to human-readable using
@stellar/stellar-sdk
- Controller route:
GET /transaction/:hash, GET /account/:address, POST /xdr/decode
Next.js web — apps/web/src/app/inspector/page.tsx
- Input accepts: transaction hash, Stellar address (G...), or raw XDR
- Auto-detect input type and route to correct lookup
- Display: operation type, source/destination, asset, amount, memo, fee paid, ledger close time
- Testnet / Mainnet toggle
- Link to Stellar Expert for each transaction
- Copy button on each field
Acceptance criteria
Overview
The
/inspectorpage in the web app is a shell. This tool should let developers paste a transaction hash, Stellar address, or ledger sequence and get a fully decoded, human-readable breakdown — essential for debugging CrowdPay and Fluxa integrations.What needs to be built
NestJS API —
apps/api/src/modules/transaction/transaction.service.tslookupTransaction(hash: string, network: 'testnet' | 'mainnet')— fetch from Horizon, return decoded operation list, memo (text/hash/id), fee, ledger, timestamplookupAccount(address: string, network)— balances per asset, sequence number, signers, recent transactions (last 20)@stellar/stellar-sdkGET /transaction/:hash,GET /account/:address,POST /xdr/decodeNext.js web —
apps/web/src/app/inspector/page.tsxAcceptance criteria