On-chain inheritance, in your browser
Live app: sorowill.vercel.app
SoroWill is a trustless, on-chain inheritance protocol on Stellar Soroban. This app is the dashboard for it: create a will, check in to prove you're active, review beneficiaries and guardians, and — for anyone named as a beneficiary — verify and claim an inheritance once a will's grace period has elapsed.
- Next.js 14 (App Router)
- TypeScript (strict mode)
- Tailwind CSS 3
- @sorowill/sdk for all contract interaction and Freighter wallet handling
git clone https://github.com/SoroWill/sorowill-app.git
cd sorowill-app
npm install
cp .env.example .env.local
# fill in NEXT_PUBLIC_CONTRACT_ID with your deployed SoroWill contract address
npm run devThis app depends on
@sorowill/sdk, published to npm under thesorowillorg.
| Variable | Description |
|---|---|
NEXT_PUBLIC_STELLAR_NETWORK |
Stellar network to connect to: testnet or mainnet |
NEXT_PUBLIC_CONTRACT_ID |
Address of the deployed SoroWill contract |
NEXT_PUBLIC_RPC_URL |
Soroban RPC endpoint (defaults to the public testnet RPC) |
RESEND_API_KEY |
API key for reminder emails (optional; leave unset to skip sending) |
RESEND_FROM_EMAIL |
Verified Resend sender address used for reminder emails |
REMINDER_STORE_FILE |
Optional path for the local JSON reminder store used by the cron route |
| Route | Description |
|---|---|
/ |
Landing page explaining SoroWill |
/dashboard |
Your wills (owned and inherited), with quick check-in |
/will/new |
Multi-step form to create a new will |
/will/[id] |
Full will detail: check in, top up, update beneficiaries, cancel, trigger, release |
/inherit/[id] |
Beneficiary view — see your entitled share and claim once ready |
/verify/[id] |
Public, wallet-free verification of a will's on-chain state |
Reminders are delivered by a server-side route that can be triggered on a schedule. The app ships a lightweight JSON store for subscriptions and dispatch history, so a daily cron job or Vercel Cron can call the dispatch endpoint without exposing any secrets:
curl -X POST https://your-app.example.com/api/reminders/dispatchThe dispatch route computes reminder windows from each will's lastCheckin and checkinPeriodDays, sending a well-before reminder once and an imminent reminder once for each active will that still has time left. The route is protected by a CRON_SECRET bearer token when configured, and Vercel cron plus GitHub Actions can both invoke it.
This repo participates in the Stellar Wave Program on Drips. Maintainer-tagged issues carry Point values, and contributors who resolve them during an active Wave earn a proportional share of that Wave's reward pool. See CONTRIBUTING.md for the contribution workflow, and https://drips.network/wave for how Wave itself works.
