Give a gift

About

A paper protocol for bitcoin gifts

sendbitcoin.gift is a non-custodial way to give bitcoin that unlocks at a future block. The site generates keys in your browser and forgets them the moment you close the tab.

How it works

  1. You create the gift. Your browser rolls two keys — a claim key for the recipient and a refund key you keep. It derives a Taproot deposit address with a timelock baked into it.
  2. You fund it yourself. Send bitcoin to that address from your own wallet. sendbitcoin.gift never sees a coin.
  3. You hand over the code. Print the ticket or email it. The claim code is all the recipient needs.
  4. They redeem on-chain. On the Redeem page the code is decoded locally and they sweep the sats to any address they own.
  5. You can take it back. By default, gifts stay revocable — you can refund them with your refund key until the recipient claims.

What native Bitcoin gives us

The whole thing uses two Bitcoin primitives working together: BIP 341 (Taproot) and BIP 65 (OP_CHECKLOCKTIMEVERIFY). The Taproot output hides both spending paths behind a single public key — to the blockchain, it looks like an ordinary payment. The CLTV opcode enforces "not before block N" by consensus. There is no token, no service, no middleman. The lock lives inside the UTXO itself.

If this site disappears tomorrow

It can. The claim code is base64url JSON containing the network, deposit address, redeem script, and private keys. Any developer can decode it and construct the sweep transaction with standard libraries. sendbitcoin.gift is a convenience layer over open protocols, never a dependency.

Frequently asked

Is it real Bitcoin?

Yes. You can create on testnet4 (worthless, for practice) or mainnet (real funds). The gift is a real on-chain UTXO secured by a timelock.

Is it custodial?

No. Keys are generated in your browser and never sent anywhere. The server serves static files and holds no state, no keys, and no coins.

When is the sender charged?

Never by us. You fund the gift yourself, from your own wallet, whenever you like. The site has no payment flow and no way to charge you.

Does the recipient need a wallet to start?

No. The claim code is the gift. When they're ready, they sweep the sats to any wallet they own.

What if the recipient never claims it?

For revocable gifts (the default), you can take the sats back with your refund key at any time. For Final gifts, the transfer is irrevocable — choose it only if you're certain.

What happens if the site disappears?

Nothing to the gift. It lives on Bitcoin, not on this server. The claim code is self-contained and recoverable with standard tooling.

Is it safe?

Keys come from your browser's cryptographic RNG and never leave your device. Treat the claim code like cash — anyone with it controls the funds.

Found a bug, or have an idea?

Please tell us — submit feedback on GitHub. Reading issues needs no account; posting one needs a free GitHub login.

Ready to give?

Create a gift and send it to someone you care about.

Create a gift