START HERE
Everything is typed by you. Nothing imports itself, because a wrong
number you cannot see is worse than no number — the only exceptions are the ones you switch
on: a price feed on a crypto or stock position, and a holding you link to a Kamino position.
- Go to HOLDINGS and press + POSITION for each thing you own.
- Set its TYPE. Anything that is not crypto or a stock is measured in dollars
— type the dollar amount into UNITS and leave the price at 1.
- For crypto or equities, link a feed and the price arrives on its own.
- Click any value in any table to edit it in place. Enter commits.
LIVE PRICES
- Crypto works immediately. Prices come from CoinGecko, which needs no key.
Set a position's type to Crypto and pick the coin. If CoinGecko is blocked or down, the same sync
falls back to DefiLlama for prices and the 24h change — the toast says
via DefiLlama when it does.
- Stocks need a free API key. Without one, equity prices stay wherever you last
set them by hand.
- While the US market is shut, a stock that already has its price from the last
session is not asked for again — nothing can have moved. One that is missing a price is
retried on every sync until it fills. At the opening bell everything refreshes again. Login,
the SYNC button and the timed sync all follow the same rule.
- A sync waits for every price to come back, pass or fail, before it reports and before
the button is free again.
TO USE WALLET, STAKE AND EARN
Solana's own public endpoint refuses browser traffic, so balances need your own
node. A free key from helius.dev gives you a URL like
https://mainnet.helius-rpc.com/?api-key=YOUR_KEY — paste the whole thing
into SYSTEM › UPLINKS › SOLANA RPC. Read-only: an RPC holds no
keys and cannot move anything.
TO GET STOCK PRICES
1 · Sign up free at finnhub.io 2 · Copy your API key
3 · Paste it into SYSTEM › UPLINKS › FINNHUB KEY and
press SAVE. Quotes start flowing straight away. The free tier is plenty for a personal
book, and the key is stored inside your encrypted vault.
1 · OVERVIEW
Where you stand, in one screen.
- NET WORTH is everything you hold at today's prices.
- PROJECTED adds unvested equity, shown before and after tax — unvested
tokens are income you have not been taxed on yet, so the smaller number is the real one.
- MOVERS ranks your best and worst of the day by what each position made or lost
in dollars, shown beside the percent move; ANNUAL FLOW ranks your income. Both
expand to show everything.
2 · HOLDINGS
Every position you own, of any kind.
- Crypto, stocks, cash, property, private funds, receivables — one table.
- The tag beside a name links that position to an income stream. It reads
+ DIV on equities and + INCOME on everything else, and turns green with
the yield once it is funding one.
- VESTING holds anything locked up that you do not own yet.
- Deleting a position also deletes any income stream it was funding.
- A holding can follow a Kamino position — link it from EARN. Its value (in dollars)
is then updated from Kamino each time you unlock, marked with a ⛓ KAMINO tag and the
date. It is only ever changed by a clean answer that includes that exact position: if Kamino is
unreachable, not ready, missing the position or sends no value, the holding keeps its value and
the tag says why. A drop of more than 90% is held for you to confirm rather than applied.
Every update is logged in HISTORY as a revalue.
3 · CASH FLOW
What comes in, what goes out, and whether your money is working.
- An income stream is either a fixed amount or a yield on a linked position, so
a 4% savings rate recalculates itself as the balance moves.
- BURN is your annual spend. The surplus is what is actually left.
4 · HISTORY
Where you came from.
- A year of net worth as a trace.
- An audit log of every change ever made — every buy, revalue, rename and setting,
timestamped. Hover a row to see that moment on the chart.
5 · WALLET
Swap, send and stake Solana from the terminal, and see what the
address holds.
- CONNECT WALLET talks to Phantom, Solflare or any Wallet Standard wallet.
Your keys never leave it and this page never sees them.
- Locking disconnects the page from your wallet and wipes everything this page and
EARN were showing — balances, positions, stake accounts, reward history. Which wallet you
used is remembered inside the encrypted vault, and unlocking reconnects to it silently if the
wallet still approves this site; otherwise press CONNECT. The header says how you got
connected — RECONNECTED ON UNLOCK, CONNECTED or SWITCHED, with the time.
Switching accounts inside the wallet is followed automatically.
- SET AS PORTFOLIO WALLET (in the header, while your main wallet is connected) marks the
wallet this portfolio belongs to. Kamino-linked holdings, new-position offers, removal checks
and staking reward history all follow it, whichever wallet is connected — so connecting some
other wallet for a quick swap never flags, offers or removes anything. Swapping, sending, staking
and deposits always act on the connected wallet.
- The top panel is one form with three modes — SWAP, SEND and
STAKE share the same slot, and the tab at its head switches between them. It opens on
SWAP every time. The panel below follows the tab: BALANCES beside SWAP and SEND,
REWARD HISTORY beside STAKE.
- SEND moves SOL or any token you hold to another address. It is built and
signed here and broadcast through your own RPC — Jupiter is not involved. The
transaction is simulated against the chain first, so one that would fail never
reaches your wallet, and if the recipient has never held that token their account
is created in the same transaction for about 0.002 SOL.
- A Solana transaction is only alive for about a minute, so the send is kept in front
of the network until it lands or that window closes. If it closes it says so plainly
— nothing was sent — rather than leaving you guessing.
- The address line tells you what you pasted: whether it is a real address, whether
it has ever been used, and whether it is a program account rather than a wallet.
Read it, then read your wallet's confirm screen. A send cannot be reversed.
- SWAP takes two tokens and an amount, and a live quote appears with the rate,
price impact and slippage. MAX uses your balance, leaving a little SOL for fees.
- Your wallet shows you the real transaction before anything is signed. The figure you
approve there is the one that counts, not the one on this screen.
- Verified tokens only — impostor tickers are the oldest trick on Solana.
- STAKE delegates SOL to a validator. Enter an amount, press CHOOSE A
VALIDATOR, and pick from every validator currently voting — search by name or
address, sort by estimated APY or by stake. The APY is an estimate from inflation, the
validator's recent voting and its commission; it leaves out MEV tips, so staking sites
often quote a little more.
- The minimum stake is 1 SOL. Each stake gets its own stake account, owned by your
wallet, which holds a deposit of about 0.0017 SOL that comes back when you withdraw.
It starts earning from the next epoch (an epoch is currently about 32 hours) and the form
tells you when. Like SEND, it is simulated first and rebroadcast until it lands.
- YOUR STAKE ACCOUNTS sits under the form: each one's amount, status and address
— the address opens it on Solscan. Unstaking is two steps: UNSTAKE stops it
earning at the end of the epoch, then once it has cooled down WITHDRAW returns the SOL
and the deposit to your wallet. A stake still warming up can be unstaked and withdrawn at once.
- The list updates itself after every stake, unstake and withdraw, and checks back with the chain
for a minute or two until it agrees; REFRESH beside it re-reads the accounts any time.
- The amount staked is exactly what you typed. The account's balance is that plus the deposit.
While a stake activates, some explorers (Solscan) show an “inactive stake” about 0.0006 SOL
lower — they subtract an outdated reserve figure the stake program still records. The
delegated stake is what earns.
- REWARD HISTORY lists every staking reward paid to those accounts: when it
landed, the SOL, what it was worth then (CoinGecko's nearest hourly price), what it is
worth now, and the gain. It checks for new rewards on every login — even without the
wallet connected, using the last one you connected — and on REFRESH. Only
epochs not yet checked are asked for, so the first check of an old stake account can take
a while and later ones are quick.
- BALANCES lists your top five holdings by value, with the rest behind a
toggle, plus anything Kamino reports for the same address — lending,
vaults and liquidity. The header total covers both.
- Those figures sit beside your hand-kept HOLDINGS rather than replacing them,
so if the two drift apart you can see it.
- This page never touches your records. No holdings, no ledger entries, no tax
rows — record trades on TRADES yourself. The only things it keeps are public
chain data: token names, your stake accounts and reward history, cached inside the
encrypted vault so they are not left in plain view and can always be rebuilt from the chain.
Staking rewards are not added to TAX for you either.
6 · EARN
Kamino’s Earn vaults and lending markets, what you hold there, and holdings
that follow it. Everything comes from Kamino’s public API when you open the page;
REFRESH reloads it.
- CONNECT WALLET at the top is the same connection as on WALLET — connect on either
and both are connected.
- YOUR KAMINO POSITIONS lists what the connected wallet holds on Kamino, with a total.
Vaults show their APY and the interest earned (balance + withdrawn − deposited,
from your own history). Multiply and lending positions show Kamino’s profit, the
net yield actually earned over the last 7 days (money you moved in or out is taken out of
it), leverage, loan-to-value against the liquidation point, and the borrow rate. WALLET’s
Kamino section lists the same positions by name and value only.
- MANAGE on a vault position opens deposit / withdraw for it, showing how much is in it
(ALL withdraws everything); a plain lending position gets one per asset supplied. Multiply
and leverage positions are adjusted on app.kamino.finance — pulling collateral out of a
leveraged position raises its loan-to-value.
- LINK TO HOLDING makes one of your HOLDINGS follow a position’s value — pick an
existing holding (any that is not following a price feed) or create one. Only your
portfolio wallet’s positions can be linked. UNLINK returns it to hand-kept, at its
last value.
- At unlock the terminal notices new Kamino positions in your portfolio wallet and offers to
add them to HOLDINGS — Low Risk Yield for Earn vaults, private credit and lending
supply, High Risk Yield for Multiply and leverage. Say no and it never asks about that
position again. When a linked position has been closed, it offers to remove the holding
— but only once the chain and Kamino both confirm it is empty, never on a single missing
entry.
- EARN VAULTS are managed vaults that each lend one token across Kamino’s markets; the
manager is usually the first word of the name (Steakhouse, Sentora, Allez…). Each row shows the
current and 7-day APY, the vault’s size (TVL), its number of holders and its fees (performance /
management). Only vaults holding at least $1M are listed — Kamino has well over a hundred,
most of them tiny, and tiny vaults post huge, meaningless APYs. The header counts the vaults
listed and adds up their TVL.
- LEND · SUPPLY RATES lists assets you can supply. Kamino runs dozens of separate
lending markets — each its own pool, like a separate bank, with its own assets, borrowers
and rates — and every row is one asset in one market, with the market’s name under the
asset. So the same asset can appear several times at different rates: USDC in the SOL/BTC market
and USDC in the OnRe market are separate pools. Each row shows the supply APY, how much is
supplied, the borrow rate and how much of the supply is lent out.
- Only assets with at least $500K supplied are listed, and a market appears only if it
has at least one such asset — so of Kamino’s 43 markets, typically about 27 show up. The
header counts the markets listed.
- A 0.00% supply APY means nobody borrows that asset in that market — it is used almost
only as collateral, so lending it out earns nothing from Kamino. (Staked-SOL tokens still earn
their own staking yield inside the token; Kamino’s rate does not include it.)
- Both lists show their top 10; SHOW ALL expands them into a scrolling list. Sorting and
search work across everything that passes the filter.
- MANAGE on any row opens a deposit / withdraw form: amount, your wallet balance with
MAX, and for a vault an ALL option that withdraws everything. Kamino builds the
transaction, it is simulated before your wallet sees it, and broadcast until it lands.
Kamino’s transaction service refuses requests from web pages, so these go through your own
relay — a small Cloudflare Worker saved in SYSTEM › UPLINKS › KAMINO RELAY,
which forwards only Kamino’s deposit/withdraw endpoints and only for this site. Without one
the form says blocked by browser and nothing is sent.
7 · TRADES
The crypto record. This is the writable side.
- ACQUISITIONS — every purchase with its cost basis. All years, always.
- DISPOSALS — every sale, for the selected year.
- CAPITAL GAINS POSITION — realized for the year, split short and long
term, plus what is unrealized on what you still hold, priced as of now.
- Record a buy with + LOT and a sale with + SALE. If the coin is not in
the list, + LINK A COIN adds it without leaving the page.
8 · TAX
Reads the trading record and produces a return. Read-only by design.
- FORM 8949 — your disposals matched to lots and split into Part I
(short-term) and Part II (long-term). Export as CSV for your preparer.
- OTHER INCOME — salary, vesting, interest. Anything not a capital gain.
Use + and − beside an amount to add to it rather than retype it.
- RECONCILIATION — income in, what is taxed, what you owe, what you have
paid, what carries forward. Every line links back to where it came from.
- To correct a lot or a sale, fix it on TRADES — this page follows.
- ↩ UNDO in the year bar steps back through recent changes to the whole
ledger. It appears on TRADES and TAX because both edit the same record, and the
stack clears when the screen locks.
9 · SYSTEM
Settings, keys and your vault.
- TAX RATE is one number used everywhere — it discounts your cash flow and
taxes your gains, so the two can never disagree.
- LOT MATCHING chooses LIFO or FIFO. It re-matches your whole ledger, so it
changes past figures, not just future ones.
- UPLINKS holds the Finnhub key for stock prices and your Solana RPC for the
WALLET page.
- EXPORT writes an encrypted
.enc backup. Do this regularly.
- ACCESS CODE changes the code that encrypts the vault: current code, then the new one twice.
The vault is re-encrypted and checked before anything is replaced.
KEEPING IT SAFE
- Your data is sealed with AES-256-GCM, keyed from your access code over
1,000,000 PBKDF2 rounds, and stored only in this browser.
- Only ticker symbols ever leave for price feeds, so prices can come back. Your holdings
never do. The WALLET page is the exception by nature: it asks your own Solana RPC about
your wallet address and asks Kamino what that address holds (so does EARN). Every login also
asks the RPC about your stake accounts to check for new rewards, and asks Kamino about the address
when a holding follows a Kamino position.
- Press L to lock the screen. Press E to export a backup.
- You can change your access code in SYSTEM › VAULT if you know the current one. There is
no reset and no recovery if you forget it. Backups keep the code they were exported with, so export a
fresh one after changing it.
Press ? for the keyboard shortcut sheet.