$ cd projects/disaster-aid-tracker
$ cd projects/disaster-aid-tracker/postmortem
RFC-088: ENGINEERING POST-MORTEMPUBLISHED: OCTOBER 2025

Post-Mortem: Disaster Aid Tracker

SolanaRust/AnchorReactNode.js
// summary (tldr)

Deployed an on-chain ledger to track disaster relief funds. Used custom SPL tokens on Solana Devnet to guarantee public audits of NGO disbursements.

01.

the problem

During disasters, millions of dollars are donated to NGOs, but citizens and donors have zero visibility into where the money goes. Corruption and overhead intercept funds before they reach local shelters. We needed an audit log that was completely immutable and verifiable by the public, but it also had to protect the privacy of vulnerable disaster victims.
02.

what i built

I designed and implemented the Solana smart contracts using Rust and the Anchor framework. The contract records allocations from NGO accounts to regional hubs and finally to local shelter accounts. I set up SPL token channels to verify transactions on devnet.
03.

key decisions

#

04.

why Solana over Ethereum

Transaction speed and gas fees. During a crisis, funds must move instantly. Ethereum gas spikes during high usage make small payouts (e.g. $10 for food) completely inviable. Solana’s devnet sub-second confirmation times and near-zero fees made it the only choice for a high-frequency micro-distribution relief tracker.
05.

what broke

// System Failure & Lesson

Incident Log & Outage Analysis

We stored too much transaction metadata directly on-chain during the first design, which exploded our Solana rent costs (accounts require minimum SOL balances to stay on the ledger). We had to redesign the schema to store only cryptographically signed hash links on-chain, keeping the detailed logistics logs off-chain.
06.

what i'd do differently

If I rebuilt it, I would use zero-knowledge proofs (zk-SNARKs) to completely hide the payment amounts and regional locations, verifying only that the NGOs didn't overspend their allocation, providing 100% privacy with 100% verifiability.
07.

what i learned

- Solana account structures are fundamentally different from Ethereum. Understanding ownership, rent, and PDAs (Program Derived Addresses) requires a complete mental model shift. - Blockchain transparency is a double-edged sword. Public ledgers require extreme care to avoid leaking personal data. - Keeping core smart contract logic simple is the best security practice. The more complex the Rust code, the wider the attack surface.