# Istravex > Open-source XDR conformance and replay kit for Stellar. Checks that SDKs decode and re-encode XDR faithfully, and that indexers store the right records for the right accounts, using a shared, versioned corpus of rare but valid Stellar XDR. Proposed for Stellar Community Fund (SCF) #46, RFP 2. Status: proposed for funding; a working kit (corpus, provenance verifier, SDK runners, mock RPC, replay, Go linter, upstream pilot) is in the repository. ## Docs - [Repository](https://github.com/hackcat29/istravex): site, corpus, capture scripts, runners, replay harness - [Corpus format](https://github.com/hackcat29/istravex/tree/main/corpus): manifest schema and fixtures - [Full proposal (Markdown)](/proposal.md): scope, problem, deliverables, draft manifest, milestones, maintenance - [SCF RFP Track](https://stellar.gitbook.io/scf-handbook/scf-awards/build-award/rfp-track): official RFP scope ## Corpus and results (real data) - 6 fixtures, none hand-authored: - cap27-muxed-payment-pubnet-0001: mainnet ledger 65474279; USDC payment to muxed ID 1764988090084626463 (above 2^53; JavaScript Number() reads 1764988090084626400) - cap15-fee-bump-pubnet-0001: mainnet ledger 65474309; fee source differs from inner source; fee charged 40354 stroops vs 46340 debited in fee changes before the Soroban refund - cap40-signed-payload-signer-{testnet,local}-0001: ed25519 signed-payload signer (account LedgerEntryData) - cap73-sac-trust-{testnet,local}-0001: trustline created by SAC trust(), with no changeTrust op - local fixtures are generated on standalone stellar-core 30.0.0, pinned by binary sha256 - Provenance: 62/62 checks; every fixture is byte-identical to the canonical LedgerCloseMeta of its ledger - SDK conformance: @stellar/stellar-sdk 17.4.0, go-stellar-sdk 0.9.0, stellar-xdr 30.0.0 pass 54/54 checks - Replay: the naive indexer is wrong on 4/4 cases; the reference indexer is right on 4/4 - Upstream pilot: stellar/wallet-backend @ 3e22515 indexes 6/6 fixtures correctly; istravex-lint finds 1 latent IX001 (unused memo helper) - CAP audit: 70 live CAPs, 40 change XDR, 3 covered - Hardening guide: https://docs.istravex.com/guide/overview (reviewed and confirmed by a Stellar Core engineer) - stellar-core goldens: all three SDKs round-trip 15,306/15,306 LedgerCloseMeta frames from core's --check-lcm data (v30.0.0) - Docs: https://docs.istravex.com - API: https://api.istravex.com (OpenAPI: https://api.istravex.com/openapi.json) - Mock Stellar RPC: https://rpc.istravex.com/{pubnet,testnet,local} ## Deliverables 1. Versioned XDR corpus + CAP coverage audit (captured ledgers and pinned stellar-core recipes; synthetic entries labelled; checked against `--check-lcm` goldens where available) 2. Offline indexer replay harness (mock Stellar RPC `getLedgers`, reference adapter for `wallet-backend`; verdicts: correct, incorrect, dropped) 3. Cross-SDK conformance runner (pinned JavaScript, Go, Rust adapters; decode, byte-for-byte re-encode, native conversion checks; wide integers kept at full precision) 4. Go linter (3 rules: trusting Core pass-through fields; unbounded recursive XDR; participants derived from the envelope instead of ledger meta) + indexer-hardening guide 5. Upstream pilot against `wallet-backend` with a triaged findings report ## Manifest fields id, cap_ids, protocol_version, network, xdr_type, xdr_path, sha256, source, synthetic, expected_decoded, expected_indexed. Wide integers are decimal strings. ## Milestones 1. Corpus and reference replay 2. Conformance and linting 3. Upstream pilot and public release ## Commitments (proposed) Apache 2.0; named maintainer for 6 months after launch, through the first protocol upgrade after delivery; no usage telemetry.