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.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Prize-linked savings on Stellar. Nobody loses. One person wins the yield.
You put money into a shared pool. The pool lends it on Blend and earns
interest. Once a week, one participant wins the interest everyone generated.
Everybody else keeps exactly what they put in, and can withdraw at any time.
• App: https://stellar.zorrito.app
• How it works: https://stellar.zorrito.app/docs
• Testnet playground (10-minute rounds): https://stellar.zorrito.app/test
• Pitch deck: https://stellar.zorrito.app/deckRead the full README ↗Prize-linked savings on Stellar. Nobody loses. One person wins the yield.
You put money into a shared pool. The pool lends it on Blend and earns interest. Once a week, one participant wins the interest everyone generated. Everybody else keeps exactly what they put in, and can withdraw at any time.
Built for the Argentina Builder Challenge (BAF × Stellar), Genesis track. Live on Stellar mainnet with real money since September 2026.
deposit × time. Marking "I saved today" seven days
in a row doubles your odds. Friends who join through your link add 10 %
of their capital to your weight.Withdrawing always works: no penalty, no waiting for the draw, no permission.
contracts/pozo/ the pool: deposits, weights, close, drand-verified draw, streak, referrals, cap
contracts/blend_adapter/ Supply position on Blend v2 behind a 3-function interface
contracts/mock_rendimiento a yield source for tests and local demos
web/ Next.js app, serverless keeper, scripts
scripts/ deploy scripts (testnet and mainnet)
Pool contract (contracts/pozo, Rust / Soroban SDK 27). Entry points:
| Function | Who | What |
|---|---|---|
depositar(user, amount) / depositar_con_referente(user, amount, referrer) | the user | join the pool and the draw |
retirar(user, amount) | the user | take capital out, always, even mid-draw |
ahorrar_hoy(user) | the user | mark the daily streak |
cerrar_ronda() | anyone | freeze weights and prize; pin a drand round ≥ 10 min in the future |
ejecutar_sorteo(signature) | anyone | verify the drand BLS signature on-chain, pick the winner, pay |
estado(), cuenta_de(user), chances_bps(user) | read-only | pool state, account state, "your odds" |
The weight deposit × time enters the tree by linearity (a·T − b, two
coefficients that sum over prefixes). Closing copies nothing: the new round
starts at the close and the closed round's weights stay frozen in the tree by
lazy versioning. Measured: a deposit's footprint is 23–30 writes with 1 or
with 1,001 accounts, and a draw with 1,001 accounts costs 45M instructions
against a 100M limit.
Blend adapter (contracts/blend_adapter). A single Supply (non-collateral)
position on a Blend v2 pool: it earns interest and cannot be liquidated.
Tested against Blend's real bytecode. Blend rounds b-tokens down on deposit,
so a withdrawal of the exact amount could come up one stroop short; the
adapter asks the pool for one stroop extra and pays the exact amount from its
own balance, keeping the remainder as a dust fund.
Web app (web/). Next.js 16, Tailwind 4, @stellar/stellar-sdk 17,
Stellar Wallets Kit (Freighter, xBull, Lobstr) plus a custom module for
Cosmos Wallet. Prize growing live, countdown
to the second, Blend APY read from the pool, streak, referral link, swap-in
from XLM or USDT0, human-readable status messages with a link to every
transaction. Deployed on Vercel.
Keeper (web/src/app/api/keeper/route.ts). The same logic as the CLI
script, as a serverless function triggered by cron and by page visits.
Mainnet (the home page): USDC, weekly rounds, 5,000 USDC cap.
Every address links to its page on stellar.expert.
This is the beginning of the README. Read the rest at the original. Read the full README ↗