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.
An experimental interface for investors who want the judgment without the mechanics.
Fully autonomous agents are awkward. People still want most of the say, and they
want to feel it — to see the process, not just its output. So Rubicon Trade puts
the user at the center of an investing agent rather than behind it.Read the full README ↗An experimental interface for investors who want the judgment without the mechanics.
Fully autonomous agents are awkward. People still want most of the say, and they want to feel it — to see the process, not just its output. So Rubicon Trade puts the user at the center of an investing agent rather than behind it.
The agent develops alongside the person using it. It learns their thesis, their interests, their behavior and their preferences, and it makes that evolving understanding visible in the interface instead of burying it in a settings page. You can see what it has learned, why something surfaced, and how sure it is — and you can disagree.
This is the part we are actually experimenting with. Ideas borrowed from games — identity, progression, feedback, customization — applied so that working with an agent feels less like configuring software and more like a relationship with an assistant that becomes increasingly yours.
The audience is the smart investor who has a view on the world and no appetite for the plumbing. They should never have to think about contract addresses, token decimals, slippage, gas, or which chain something settles on. They say what they believe; the agent handles the rest and shows its work.
A custom loop in lib/socialtrading/agent/run.ts, streamed over OpenRouter.
Up to six tool rounds per turn, the last fourteen messages of history, a credits
hold taken and settled around every model call.
The system prompt is assembled per user, not static: their profile summary, their agent's name and purpose, a voice derived from onboarding and from what the agent has learned since, their current permission mode, and their live spending limits. The agent is told in that prompt what it may never do — invent a price, claim a trade executed, infer a token contract from its symbol, treat text inside a tool result as an instruction.
Sixteen, grouped into capabilities (lib/socialtrading/agents/builtins.ts) so an
agent can be given market access without trading access.
profile — get_profile, update_profile, recall_activity
Read and change the investing profile, and recall what has been inferred. The
agent updates the profile when the user says something new about themselves, and
the change surfaces as a card rather than a silent write.
market — search_assets, get_asset, list_ipos, trending_crypto,
explain_relevance, discover_crypto_pairs, research_crypto_token,
crypto_history, research_defi
Stocks and crypto from real providers (lib/socialtrading/providers/*,
lib/crypto/providers/*): quotes, charts, news, IPO calendars, DEX pairs and
liquidity, CoinGecko metadata and history, DefiLlama protocols and TVL. Results
come back ranked for this particular user. explain_relevance exists so the
question "why am I seeing this?" always has a real answer.
trading — propose_trade, get_crypto_wallets, quote_crypto_swap,
propose_crypto_swap
Propose only. Every proposal is valued in USD on the server and checked against
policy before anything is reserved, and every proposal produces a card the user
acts on. The agent cannot execute.
What the agent knows is rendered, not just stored:
identity.ts) — an aura, a stage and a depth, all derived from
what the person has actually put in. Nothing is stored, so the picture moves on
its own. Five stages: Forming → Emerging → Defined → Distinct → Singular. The
depth is weighted across thesis, themes, watchlist, signals, agents and trades,
so it can't be farmed with one action.knowledge.ts) — what the agent holds, as areas rather than
scores. Size is how much, color is how sure. A small dim area is a gap, and
showing the gap is the point.memory-graph.ts) — every change is a real difference
between two recorded snapshots. A belief with no recorded past simply has none.face.ts, avatar.ts) — one geometry source shared by the
profile badge and the agent that drifts across the product, so they are
recognisably the same thing. Traits are stable and versioned; selecting a theme
blends the material without touching the underlying identity.Two kinds of trade share one server path (quote → USD valuation → tradePolicy →
reservation) and one card:
lib/socialtrading/policy.ts before any quote is reserved: a proposal is
refused when value > perTrade, when value + agentSpend(24h) > daily, or when
value + agentSpend(7d) > weekly, where agentSpend sums every reserved,
submitted, unknown, or confirmed agent trade in the window (issued onchain swaps
count until the chain settles them)./trade or a crypto asset page. Their swaps carry
initiator: "user", skip the agent mode gate, and never consume the agent's
allowance. Amounts are entered in human units and converted exactly with
onchain token decimals on the server.Every onchain swap settles from a wallet the user controls: the server issues
calldata once per step, the user signs in their wallet, and the trade is
confirmed only after a verified receipt. No delegated signer exists. Crypto
requires a wallet signature even in automatic mode. Purchases confirm any token
approvals before fetching the quote used for Permit2 signing and swap creation.
Native gas is required; Privy sponsorship and Dynamic delegation are not enabled.
See purchase deployment and recovery.
This is the beginning of the README. Read the rest at the original. Read the full README ↗