Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
일이 생겨도 암호화폐가 함께 사라지지 않게 키 위치를 봉인하고 가끔 확인하다가 멈추면 고른 사람들이 받습니다
If something happens to you, your crypto should not die with you. Seal where the keys are, check in now and then, and if you stop, the people you chose get it.
금융TypeScript · ShellGitHub @moshcoder온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A dead man's switch for your crypto. Sealed in your browser; check in, or your people get it. Web, API, CLI, TUI, MCP.
README 전체를 불러오는 중입니다.
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.