Skip to content

[Advanced] Generic Stellar Disbursement Platform (SDP) reconciliation adapter via Nirium's Audit Trail #71

Description

@Eras256

Difficulty: Advanced (senior · 7/10). ~14–20h. TypeScript, Stellar Horizon (operations/effects), IPFS.

Context

Stellar Disbursement Platform (SDP) is the SDF's own open-source, self-hostable bulk-payment platform, and it has no independent, cryptographically-anchored reconciliation trail of its own — a batch either succeeded or it didn't, with no third-party-verifiable proof pack. Providencia Onchain (VIIO + Climate Future) already built exactly this pattern by hand, for one case: linking every conservation-payout disbursement to its on-chain tx hash so sponsors and auditors can independently verify. That's real, working prior art — credit it, don't duplicate it. What doesn't exist is the generic, reusable version: a library any SDP self-hoster (or any Stellar disbursement product) could plug in, instead of building a bespoke dashboard per deployment.

Goal

An adapter under examples/sdp-audit-bridge/ that takes a completed disbursement batch (a list of tx hashes, or a source account + time window), independently re-verifies each payment on-chain via Horizon, builds one small aggregate record (recipient count, total amount, asset, tx hashes — never raw recipient PII), and anchors it via Nirium's anchorAuditRecord().

Scope / Deliverables

  1. A function/script that takes a batch descriptor (tx hashes, or { sourceAccount, from, to }) and reads the actual payment operations from Horizon — don't trust an "it succeeded" flag from any upstream system, confirm on-chain.
  2. Build the aggregate JSON record and anchor it with anchorAuditRecord({ record, agent }) — signed if an agent key is configured, per the domain-separated statement nirium-audit-v1:<content_sha256> (recomputed from the record, never trusted from a caller-supplied field — same forgery class already fixed on this repo in PR feat(cli): add standalone offline audit-CID and ed25519 agent-attestation verifier #60).
  3. A separate verification script that, given only the resulting CID, fetches it from IPFS, recomputes the hash, and independently re-checks every cited tx hash against Horizon — so a third party (auditor, donor, grant funder) can verify without trusting Nirium or the batch operator.
  4. README that explicitly credits Providencia Onchain's pattern and explains the generalization: a reusable library, not a competing bespoke dashboard.

Acceptance criteria

  • Runs end-to-end against a real disbursement batch on testnet (≥3 real payment operations) — the resulting CID and at least one independently-verified tx hash go in the PR.
  • The verification script re-derives the hash and re-checks Horizon itself — it does not just print what the anchored document claims.
  • README's prior-art section is accurate: it names Providencia Onchain and states the actual difference (generic/reusable vs. one bespoke deployment), no overclaiming originality.

Pointers

Out of scope

  • Building a full SDP fork or a hosted dashboard.
  • Any custody of disbursement funds — this only reads and anchors, never moves money.
  • Mainnet (testnet only, unless working against an already-public mainnet disbursement).

References

Reward

Eligibility is subject to GrantFox review under this campaign. Rewards are decided by GrantFox based on quality and available budget and are not guaranteed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions