How the desk works
Hanvo is an OTC desk for Solana tokens. A holder sells the whole bag to one buyer at a price they name, wallet to wallet, in one transaction. The trade never touches a pool, so the chart does not move.
COMING SOONNo token exists yet. The official $HANVO contract address will be posted only on this site and on the project's X.
What it does
On Solana today a large market sell walks down the pool. The tape above shows it live: for every trending pool, how far a $25,000 market sell would move the price according to Jupiter's best route right now, and how many dollars of the bag would stay in the pool. On the desk the same bag goes to one buyer at an agreed SOL price, minus a 0.30% desk fee, and the pool never sees the sale.
It is built for holders with size: whales, early buyers, KOL and partner allocations. Project teams can sell treasury without dumping on their own holders, and buyers who want a block at a fixed price can bid for it instead of chasing the chart.
There is no matching server. The book is the set of live offer accounts of the hanvo_desk program on Solana. This site reads them from an RPC and writes through your own wallet.
How a trade settles
- Ask
- The seller puts the tokens into escrow held by the program and names a total price in SOL, a duration from 1 hour to 30 days, and whether partial fills are allowed. Optionally one wallet is named as the only taker. Every ask on the book is already backed by tokens in escrow, measured before and after the deposit so a taxed transfer is refused.
- Take an ask
- A buyer pays SOL. In the same transaction the program sends the tokens to the buyer and the SOL to the seller, minus the desk fee. Partial fills pay pro rata: lamports = floor(price_remaining × amount ÷ remaining), and the last fill takes the exact remainder, so rounding never drifts. The buyer's token account is created if it is missing (the buyer pays its rent).
- Bid
- A buyer escrows SOL in the offer account for an amount of a token at a price. Any holder, or only the named wallet, fills it by sending the tokens and receives the SOL minus the fee. The buyer can cancel any time and gets the SOL back.
- Reprice
- The maker can change the price of what is left in one signature. A bid moves SOL in or out of the offer so it always holds exactly the new price.
- Cancel and expiry
- A maker can cancel an open offer at any time and gets everything back. After expiry anyone can close the offer, and the escrow returns to the maker. Closed offers leave the book; their history lives in the program's events.
- Private offers
- An offer with a named taker gets its own link, /o/<id>. Only that wallet can fill it. They also collect in that wallet's Inbox on the desk.
What the program enforces
| Rule | Where it lives |
|---|---|
| Asks are backed by escrowed tokens, bids by escrowed SOL | On chain, in the program |
| Settlement happens in one transaction | On chain |
| The escrow balance is measured before and after every move | On chain (TokenTaxed if it does not add up) |
| Token-2022 mints with a transfer fee, a transfer hook or a permanent delegate are refused | On chain (TokenExtensionRefused) |
| Non-transferable and default-frozen tokens are refused | On chain |
| Self-trades and expiries outside 1 hour to 30 days are refused | On chain (SelfTrade, BadExpiry) |
| The fee can never be above 0.50% | On chain, a compiled cap (MAX_FEE_BPS = 50) |
| The team's share of fees can only go down | On chain (ShareCanOnlyGoDown) |
| Reading the book | The site reads the program's accounts from a Solana RPC. Nothing is matched or stored on a server |
| The price you name | Yours. The desk does not set or suggest a price; the pool's price is shown only as a reference |
| A freeze authority on the mint | Allowed by the program. The desk shows a warning, because the issuer could freeze the escrow account |
Fees and the $HANVO pass
0.30%
of the SOL on each fill, paid out of the token seller's proceeds (the maker on an ask, the taker on a bid)
0.10%
when either side of the fill holds at least 250,000 $HANVO
0.50%
the ceiling written into the program
Posting, repricing and cancelling cost only Solana network fees. The pass balance is read live from chain at fill time: the taker's or the maker's token account for $HANVO is passed as an optional account and checked by the program. There is no staking and no lock. Hold the amount in the wallet that trades.
The fee is floor(lamports × bps ÷ 10,000). The exact numbers for any fill are shown on the desk before you sign, from the same math the program runs.
These are the desk's starting values. Once the program is live the desk page reads the current values from the Desk account.
The 70/30 split and the burns
Every fee lands in the program's fee vault. Anyone can call sweep_fees: the program sends 70% to the team wallet and 30% to the engine wallet. The team's share is a program setting that can only ever be lowered.
The engine wallet is a keeper that buys $HANVO on the open market with its SOL through Jupiter and burns it with SPL BurnChecked. Each burn is a public receipt with its signature, listed below and on the desk's Fees page as soon as it happens.
So the more the desk is used, the more $HANVO is bought and burned, and holding the pass makes the desk cheaper for you. Both depend on real fills. There is no reward paid from new buyers' money.
Burn receipts
Reading the engine's receipts.
Supply and unlocks
Reading the token from chain.
The launch pool sets the supply, the curve and the pool fees; none of that is set by the desk program. This page reads the mint from chain once the token address exists and prints the supply, the decimals, the mint and freeze authorities and the contract address. Any locked or vesting allocation will be printed here with its schedule and the lock's contract link when one exists.
Nothing is printed before it is real. No supply number, pool fee or schedule appears on this page until it can be read from chain.
The tools
- Pool check
- Paste any token mint and pick a size. A real Jupiter route quote shows how far a market sell would move the price and what it would cost, next to the desk at 0.00%. Sizes other than the quoted one are drawn as a dashed estimate.
- Market
- Trending Solana pools with price, 1 hour and 24 hour change, volume, liquidity, market cap and the real cost of a $25,000 sell in each.
- Dump Watch
- Big market sells in the busiest pools over the last 24 hours, with an estimate of what each one cost the seller and a one-click private bid to that wallet.
- Book
- Every live ask and bid, with the price per token against the pool price. Take any of them, whole or in part where the maker allows it.
- Make an offer
- Ask or bid, any mint, a private taker if you want one, 1 hour to 30 days, partial fills on or off. The fee is shown before you sign.
- Bags
- Paste a wallet and see every token it holds, with its value and what dumping each bag would cost right now.
- Whales
- The largest holders of any token, with pools and curves labelled so you do not bid a vault. Each wallet is a private bid away.
- Inbox and My offers
- Private offers addressed to your wallet, and the offers you made, with reprice and cancel.
- Fees
- The desk's rates, the split, the burn receipts and your own rate with the pass.
Risks, plainly
- Burns only happen when the desk is used. No fills, no buyback. There is no other source of demand built into the token.
- Most of the fee goes to the team. 70% of every fee, 30% to buy and burn. The team's share can be lowered by the admin and never raised.
- No paid third-party audit yet. The program source is public so it can be checked, and it has been exercised on a local validator, not yet by an auditor.
- A desk needs a counterparty. A seller only gets their price if one buyer agrees to it. An offer nobody takes expires and the escrow comes back.
- The admin key exists until it is renounced. Until set_admin is called with the default key, the admin can change the fee (never above 0.50%), the pass and the wallets. Renouncing is permanent.
- Freeze authorities. A mint with a freeze authority is accepted; its issuer could freeze an escrow account. The desk warns when it sees one.
- Pool prices are a reference, not a promise. "vs pool" uses Jupiter's price at read time. A trade settles at the offer's price, whatever the pool does in between.
- Memecoins are volatile and most go to zero. Nothing here is advice to buy any token, including $HANVO.
Questions
Who pays the fee?
The side that sells the tokens, out of its SOL. On an ask that is the maker; on a bid it is the taker. The buyer of the tokens pays only the price and the network fee.
What if the pool price moves after I post?
Your offer stays at your price. Reprice it in one signature or cancel it; both return everything to you.
Can I sell part of a bag?
Post the ask with partial fills on. Several buyers can then take pieces, each paying pro rata, and the last one takes the exact remainder.
What happens when an offer expires?
Nobody can take it any more. Anyone may call close, and the tokens or SOL go back to the maker. The desk shows a Close button on expired offers.
Does the pass need staking?
No. The program reads the balance of your $HANVO token account at fill time. Hold at least the pass amount in the wallet that signs.
Which wallets work?
Any Solana wallet that speaks the Wallet Standard: Phantom, Solflare, Backpack, OKX Wallet, MetaMask with Solana, Coinbase Wallet and Trust Wallet among them. On a phone the picker opens this site inside your wallet app.
Where is the code?
The program, the SDK, the server and this site are in the project's repository. The program id is printed on the desk's Fees page and in the book's source line.
Where the numbers come from
Trending pools, their prices and volumes come from GeckoTerminal, with DEX Screener as the fallback. Every price impact and every "lost in the pool" figure is a real Jupiter route quote for a market sell into SOL, fetched by this site's server and refreshed every couple of minutes. Market sells come from GeckoTerminal's trade lists for the busiest pools. Holdings, holders and the book are read from a Solana RPC. $HANVO figures come from DEX Screener, Jupiter and the chain, by the contract address alone.
At sizes other than the quoted one the desk draws an estimate, always dashed and always labelled. It is a constant-product curve whose depth is fitted so that it passes exactly through the real quote: loss(size) = size² ÷ (R + size), with R = quoted² ÷ lost − quoted.
Every panel prints the time of its data. A figure with no time is not on this site.