Kaspa x402

Live Testnet Proof

Status: release-candidate proof definition for kaspa:testnet-10.

The live proof runner is scripts/proof-live-testnet.mjs. It validates a live adapter result and writes ignored operational artifacts under .kaspa-x402-live/. The committed reference adapter is scripts/live-adapter-reference.mjs. It contains the Kaspa RPC, funding, claim, top-up, replay, refund, and restart-recovery wiring needed to reproduce the prerelease proof, but it does not contain wallet secrets, node URLs, or local machine paths.

Use live-proof.env.example as the starting config. Real runs must provide:

The reference adapter writes generated channel keys, payout keys, recovery state, and reports under KASPA_X402_DATA_DIR. Keep that directory ignored.

Required Flows

The current proof requires:

Broadcast transaction evidence must include transaction ids, transaction versions, version evidence source, and accepted-or-confirmed finality. Both exact profiles must include transaction encoding, output index, transaction-artifact hash, server broadcast result, and settlement id. Additive evidence must identify the durable head and consumed outpoint and prove that the successor increase equals the advertised payment exactly. Every exact profile must reconcile merchant gain, payer cost, fee, and mass. Batch evidence must retain one covenant ID from singleton genesis through repeated claims and top-up, while advancing only the current outpoint. For every batch step, report A (lifetime committed fixed charges), S (lifetime gross claimed), T (latest buyer-signed lifetime ceiling), V (current covenant value), and R (advertised minimum successor reserve), and prove 0 <= S <= A <= T plus (T - S) + R <= V. Claim, top-up, and refund evidence must reconcile inputs, outputs, fees, successor state, and restart recovery without rerunning protected work or rebroadcasting an unresolved or already accepted transition. Refund evidence must also show that the builder transaction id, persisted transaction id, and broadcast transaction id are identical, and that accepted application atomically marks the channel refunded and the attempt applied.

Claim evidence must show that advancing S rotates the stateful script and its derived P2SH address. Top-up evidence must show that preserving S preserves both while the outpoint and V advance.

The sanitized committed report must identify the chain-evidence source class and number of independently operated sources used for acceptance, confirmation, UTXO, and selected-chain lineage decisions. Endpoint failover is not independent corroboration. The v1 RC1 funded run may use one configured Testnet-10 source, but the public report must state that boundary and must not present it as mainnet or Byzantine-resilient evidence.

Safety Gates

The runner must fail closed when:

Reporting

Successful or blocked live runs should write .kaspa-x402-live/report.json. The sanitized committed summary belongs in docs/live-testnet-report.md.

Source: /docs/live-testnet-proof.md