How it works
Everything about deadman.switch on one page.
What is a dead man's switch?
Something that acts when you stop. Trains have one: the driver holds a pedal, and if they let go, the train stops itself. Here, you check in now and then. If you stop, because something happened to you, we send what you left to the people you chose.
The passphrase
You seal your bundle with a passphrase, in your browser or the CLI. It never reaches us. Give it to the people who should open it: in your will, on paper in the safe, or in person. Leave yourself a hint they will understand ("the name of our first dog, then the year we met"); the hint is the one thing we show them in the clear.
If they lose the passphrase, nobody can open the bundle, us included. That is the point.
Check-ins and reminders
- Pick how often: every day up to every year. Checking in from anywhere (the email link, the push notification, the web, the CLI) restarts the clock.
- Miss one and you get three reminders spread across your grace period (1 to 30 days), by email and push. On Keeper the last one is also a phone call: press 1 to check in.
- We send nothing until the grace period is over and a full day has passed since the last reminder, even if our server was down for a while.
- Going somewhere with no signal? Pause the switch. Resuming starts a fresh period.
What they get
Each person gets an email with their own link. The page shows your hint and asks for the passphrase; the bundle opens in their browser. Your note and any files you added (photos of a seed card, a PDF, a key file) are theirs to read and download. You get an email saying it was sent.
What to put in it
- Which wallets you have and where the hardware is.
- How your seed phrases are stored or split, and where each part is. Putting a full seed in is your call; many people put the location of the seed instead.
- Exchange accounts, and where the 2FA is.
- Who to call: a lawyer, an accountant, a friend who knows crypto.
- Anything else you want them to read.
API, CLI and MCP
Make an API key on your page. Then:
export DEADMAN_KEY=ds_… bunx @profullstack/deadman status # your switches and when each is due bunx @profullstack/deadman checkin # check in on all of them bunx @profullstack/deadman seal <switch> note.md # seal a file locally and upload it bunx @profullstack/deadman open <release link> # open what someone left you bunx @profullstack/deadman mcp # MCP server on stdio
curl -X POST https://deadman.switch.pit.world/api/v1/checkin -H "authorization: Bearer $DEADMAN_KEY" curl https://deadman.switch.pit.world/api/v1/switches -H "authorization: Bearer $DEADMAN_KEY"
Endpoints: GET /api/v1/me, GET|POST /api/v1/switches, GET|PATCH|DELETE /api/v1/switches/:id, PUT /api/v1/switches/:id/bundle, POST /api/v1/switches/:id/(pause|resume|recipients), DELETE /api/v1/switches/:id/recipients/:rid, POST /api/v1/checkin, GET /api/v1/releases/:token.
A warning: an agent or cron job that checks in for you means the switch never fires. Check in yourself, or make sure whatever checks in for you would stop if you did.
Who runs this
Profullstack, Inc. Source: github.com/moshcoder/deadman.switch. Questions: switch@pit.world.