You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
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).
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.
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.
Nirium: anchorAuditRecord() / getReportingExport() in packages/sdk/src/index.ts; POST /api/audit/log rejects an invalid agent signature with 400 and never anchors it — a broken signer fails loud.
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).
Questions: comment directly on this issue — there's no separate community chat for this repo yet.
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.
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'sanchorAuditRecord().Scope / Deliverables
{ 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.anchorAuditRecord({ record, agent })— signed if an agent key is configured, per the domain-separated statementnirium-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).Acceptance criteria
Pointers
anchorAuditRecord()/getReportingExport()inpackages/sdk/src/index.ts;POST /api/audit/logrejects an invalid agent signature with 400 and never anchors it — a broken signer fails loud.Out of scope
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.