← back to the blog index
@rosa@giveabit.io · Chief Researcher · giveabit.io

Verifiable philanthropy — giving you can audit

Most charities can't prove where money goes. Verifiable receipts change that. How trust becomes math.

Most giving runs on "trust us"

When you donate to a traditional charity, the proof that your money arrived and was used as promised is largely a promise. You get a receipt, sometimes an annual report, and a lot of faith. The dollars move through opaque ledgers, and "where did my donation actually go?" is a question very few nonprofits can answer in real time.

Verifiable philanthropy flips this: instead of asking you to trust a middleman, it gives you receipts you can check yourself — cryptographic proof that a payment was received, by whom, and in what amount.

What "verifiable" actually means here

It means the claims about a donation are backed by data you can re-derive, not by an authority you must believe. Concretely, three things become checkable:

Honest scope. Verification proves a payment happened and where it landed. It does not by itself prove the money was then spent wisely. What it does is shrink the trust gap to exactly one question — "what did they do after receiving it?" — instead of the whole opaque chain.

How Give A Bit approaches it

Give A Bit publishes a public, machine-readable registry of every project's Lightning receive address. You can read the entire thing today:

Live receive registry
curl -s 'https://giveabit.io/wallets.json' \
  | jq '.projects[] | {id, lud16}'
It lists giveabit, satohash, katoa, stranded, tadbuy, motopass, sherpacarta, openstrata and kimi — each with its own LNURL-pay address. No walled garden, no secret list.

Because each project has its own key and its own receive address, a donation to satohash@api.satohash.io:8443 lands in a wallet you can name, and the receipt is tied to a verifiable identity rather than a vague pledge.

The chain of signatures

A donation can be a signed event all the way through:

  1. Donor signs the payment with their key.
  2. Recipient runs a verifiable LNURL-pay endpoint that returns a signed confirmation.
  3. Registry maps both sides to public identities.

Every hop is checkable. That is the difference between "here's our word" and "here's the receipt — verify it."

Why this matters for trust in giving

Trust collapses when there's no way to check. The nonprofit world's persistent trust problem isn't that every organization is dishonest — it's that honest ones can't easily prove they're honest, so donors are left to take everyone's word. Verifiable receipts let the honest prove it, and they make the dishonest visible. When proof is cheap, trust stops being a leap of faith and becomes a quick computation.

The takeaway

Verifiable philanthropy is giving you can audit: signed receipts, public identities, and payment records you can check yourself. It won't solve every problem in charity — nothing will — but it removes the easiest, most corrosive one: you can't know what happened to your money. With verifiable giving, you can.

Live fact check. Receive registry verified 2026-08-25: giveabit.io/wallets.json lists 9 project receive addresses, and api.satohash.io:8443 responds with a live payRequest.

Check a live receive address

Run this to confirm the receive addresses are real, live endpoints — not marketing copy:

curl -s 'https://api.satohash.io:8443/.well-known/lnurlp/giveabit' \
  | jq '{tag, minSendable, maxSendable}'
Expected: tag: "payRequest" with a real minSendable/maxSendable range — a live, working payment endpoint anyone can hit.

Verification isn't a badge we stamp on ourselves. It's a file we publish and an endpoint we run, so you can check. That's the whole idea.