Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
A dead man's switch for your crypto. Sealed in your browser; check in, or your people get it. Web, API, CLI, TUI, MCP.
翻訳待ち
Loading the full README.
Read the full README ↗A dead man's switch for your crypto. Write down where the wallets, seeds and logins are, seal it with a passphrase only your family knows, and check in now and then. If you stop checking in, the people you chose get the sealed bundle.
bunx @profullstack/deadmanclaude mcp add deadman -- bunx @profullstack/deadman mcphttps://deadman.switch.pit.world/api/v1 (Authorization: Bearer ds_…)The server cannot read a bundle, and nobody can open one before it fires.
| Free | Keeper ($49/year or $149 for life) | |
|---|---|---|
| Switches | 1 | 10 |
| People per switch | 2 | 10 |
| Sealed bundle | 64 KB | 5 MB |
| Reminders | email, push | email, push, phone call |
Paid in crypto through CoinPay. A lapsed plan never switches protection off: existing switches keep running on the free channels.
Credit codes (@profullstack/redeem-credits):
a code grants the unit keeper_days, days of the Keeper plan. Redeem it under
"Have a code?" on /me, with deadman redeem <code>, MCP redeem_code, or
POST /api/v1/redeem {"code"}. The days go through the same columns a payment
writes (users.plan / plan_until): on the end of a running plan, from now on
a lapsed one. Keeper for life is refused before the code is spent, so it can be
passed on. Days granted out of band are applied when that person next opens /me.
The redeem-credits CLI only speaks SQLite, so mint on the box with bin/codes.ts:
cd /opt/deadman.switch && set -a && . /root/.local/share/deadman-switch/app.env && set +a
bun bin/codes.ts mint --days 30 --label "for Dan" [--max 1] [--expires 30d]
bun bin/codes.ts list
bun bin/codes.ts revoke <codeId>
bun bin/codes.ts grant [email protected] --days 7
Invites (@profullstack/affiliates):
three single-use links per account at /invites (deadman invites [new],
GET/POST /api/v1/invites). A link lands on /i/<code>, rides in a 7-day
cookie and on the sign-in email link (so it survives opening the email in
another browser), and is spent when a new account is made through it. Then
both people get 7 days of Keeper. Every account also has an open affiliate
link (/?ref=<code>), remembered first-touch for 30 days and credited to new
accounts. bin/codes.ts invites <email> --total N changes someone's allowance.
deadman login ds_… # key from /me#account
deadman status
deadman checkin
deadman new "My crypto" --every=30 --grace=7 [email protected]
deadman seal "My crypto" note.md seed-card.png --hint="first dog, then the year"
deadman read "My crypto"
deadman open https://deadman.switch.pit.world/r/r_…
deadman redeem CR-XXXX-XXXX-XXXX-XXXX
deadman invites new --note="for Sam"
Bun + Hono + Postgres (DATABASE_URL). Tables are made on boot.
bun install
DATABASE_URL=postgres://… DEADMAN_SECRET=$(openssl rand -hex 32) bun src/server.ts
| Variable | |
|---|---|
DATABASE_URL | Postgres |
DEADMAN_SECRET | 32+ characters; signs check-in links and CSRF tokens |
RESEND_API_KEY, MAIL_FROM | email (without a key, mail goes to the log) |
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY | web push (bunx web-push generate-vapid-keys) |
COINPAY_API_KEY, COINPAY_BUSINESS_ID, COINPAY_WEBHOOK_SECRET | payments |
TELNYX_API_KEY, TELNYX_CONNECTION_ID, TELNYX_FROM, TELNYX_PUBLIC_KEY | phone calls |
ADMIN_EMAILS | accounts that get Keeper free |
PORT (8801), WORKER=off |
Tests: TEST_DATABASE_URL=postgres://postgres:[email protected]:55491/postgres bun test
(see test/app.test.ts for a one-line docker Postgres).
Deploy: bin/install.sh on the box (OpenInstall), settings in bin/install.conf.
MIT. By Profullstack, Inc.