Peer to peer

Sell the bag, not the chart

Dumping size into a pool prints the red candle everyone screenshots. On otc the buyer pays you directly, in one transaction, and the chart never sees the trade.

Market sell through the pool−38% in one candle
Same bag sold OTCChart untouched

A desk for size, off the chart

Over The Conversation (otc for short) is a peer-to-peer desk for Solana tokens. Two sides talk it through, agree on a price and swap tokens for SOL or USDC in one transaction. Nothing goes through a liquidity pool, so the chart doesn't move: holders can exit a big bag without crashing it, and buyers can build a position without pushing the price up.

Sign in with X and your account comes with its own trading wallet, with nothing to install, or connect a Solana wallet you already use. Every trade settles on Solana mainnet.

Quick start

  1. Sign in with X and we make a wallet for you, or connect a wallet you already use, such as Phantom, Solflare or Backpack. The desk detects the tokens it holds. Keep some SOL in it for network fees (Deposit in the account menu shows the address).
  2. Find a coin with / or Ctrl K. Each token page shows asks, bids, top holders and OTC fills next to the live chart.
  3. Buy an ask, make an offer below it, or post a bid for the size you want.
  4. Sell with List, fill a bid on one of your coins, or sell to a single wallet as a private deal.
  5. Track everything in the Dashboard and the bell: offers waiting on you, accepted offers, private deals and bids on your bags.

Listings (asks)

A listing sells a bag at a fixed price per token, in SOL or USDC. Your tokens are deposited into the desk's escrow wallet when you list, so a buyer can always settle instantly. Options:

  • Partial fills with a minimum fill (% of the original size). A fill can never leave less than the minimum behind.
  • All-or-nothing: the whole remainder in one fill.
  • Expiry from 1 hour to 30 days, or none. An expired listing stops filling; its tokens stay in escrow until you press Reclaim (you get an alert).
  • Cancel any time to get the unsold tokens back.

When you click Buy, the size is reserved for you for 3 minutes while you approve, so nobody else can take it from under you.

Private deals

Turn on Private deal when listing and enter the buyer's wallet. Only that wallet can buy; the listing is hidden from the market, the activity feed and search. Share the link (Manage listing → Share link); the buyer also gets an alert. You can deep-link the form with /create?mint=…&amount=…&to=<wallet>.

The link is the way in: anyone you pass it to can see the deal's terms, but only the named wallet can buy, so send it only to them. Once a private deal settles, the transaction is public on Solana like any other and counts toward the leaderboard, but this desk doesn't list it in the feed or on the token page.

Offers & counter-offers

  1. On any listing, a buyer proposes a price below the ask (and a size, when partial fills are on), with an optional note.
  2. The seller gets an alert and can accept, decline or counter. The buyer can counter back; every round is kept in order.
  3. Whoever did not make the latest round can accept it. Offers stay open for 24 hours (never past the listing's own expiry).
  4. Accepting reserves the size for the buyer for 30 minutes. It leaves the public book, and the buyer settles at the agreed price with one approval. If the buyer accepts the seller's counter, the purchase starts right away.
  5. If the window lapses, the reservation is released back to the listing. A buyer can withdraw an accepted offer they no longer want.

Offers are records, not locked funds. Nothing moves until the buyer signs the settlement.

An offer's price, size and note are visible only to its buyer and the seller. Other buyers on the same listing can't see them.

Conversations

Every deal has a room for its two sides: a listing's seller and one buyer, or a bid's bidder and one holder. Open it from the listing, the Talk button on a bid, the Talk tab in the sidebar or the speech-bubble tile up top. Only those two wallets can read it; other buyers talking to the same seller have their own room.

  • Talk binds nobody; tickets do. Speech bubbles are just words. Offers, counters, acceptance and settlement land in the same timeline as tickets, written by the desk from the deal itself, so nobody can fake one by typing it.
  • Put a price on the table from the room. The tag button next to the message box opens a price tray. Either side can use it, and the seller can name the first price to a buyer who is talking to them. The other side then accepts, counters or declines right there. The gap meter shows how far apart the two prices still are.
  • The pill is the clerk. Most OTC scams start in chat: "send first", "let's move to Telegram", a link to connect your wallet. When a message goes that way, the pill says so right under it, for both sides. Links are never clickable, and a pasted private key or recovery phrase is refused before it leaves your screen.
  • Limits. Messages are at most 500 characters. Twelve in a row with no answer and you wait for a reply. Blocking a wallet stops its messages on every deal, but not its offers: a block ends the talk, not the market.

Messages are stored on this desk's servers, not on-chain, and aren't end-to-end encrypted. New messages arrive while a tab is open; there are no push or email notifications.

Bids (want to buy)

Post a token, a size and a price on its token page (Place a bid). Posting locks nothing: the desk checks you can pay when you post and again when someone fills. Holders of that coin get an alert.

A holder fills a bid with Fill it: their tokens go into escrow as a private deal for the bidder at the bid price. The bidder is alerted and settles in one transaction. Until then the holder can cancel and take the tokens back. Bids can allow partial fills, last from 1 hour to 30 days, and can be cancelled any time.

Top holders & bag bids

The Top holders tab lists a coin's 20 largest token accounts folded by owner. Pools, bonding curves and vaults (program-owned addresses) are flagged pool and left out of the ranking; the pump.fun creator is tagged dev. The same tags appear next to sellers and bidders everywhere. They come from the chain, never from what someone claims.

Bid on bag sends a private bid to one holder, pre-filled with their balance. Only they see it and can fill it. It's non-binding: they can ignore it.

Pricing an order

Prices are per whole token in the quote asset. The forms show the live market price (Jupiter) and your distance from it, with presets (Market, −2%, −5%, −10%, −20%) and ±1% nudges. Offers use the ask as their reference instead.

Under the price you also see what the pool would do with the same size: a seller sees the average exit if they dumped it, a buyer sees the average cost of market-buying it. OTC edge is how much better your price is than that alternative. A price between the pool exit and the market price is better for both sides.

How pool impact is estimated

The desk models one constant-product pool holding half the reported liquidity on each side (R in USD). Selling D dollars of tokens fills at an average of R/(R+D) of spot and leaves the price at (R/(R+D))². Buying is the mirror image. With $2M of liquidity:

Sell sizeAvg fillChart move
$10,000-1.0%-2.0%
$100,000-9.1%-17.4%
$500,000-33.3%-55.6%

Real liquidity is split across several pools and curves, so treat these as estimates.

Settlement

Every fill is one atomic Solana transaction the desk builds and co-signs with the escrow key:

  1. compute budget (limit + priority fee)
  2. buyer pays the seller (minus the 0.5% fee) and the fee wallet
  3. the buyer's token account is created if missing
  4. escrow releases the tokens to the buyer (transferChecked)

If any step fails, nothing moves. The buyer signs as fee payer; before broadcasting, the server checks the signed transaction is byte-for-byte the one it built, so a wallet can't alter the amounts. Only then does the escrow add its signature, once, so nothing it signs ever leaves the server unclaimed. Cancels work the same way, with you as fee payer.

Where your funds sit

  • Listed tokens sit in the desk's escrow wallet GFhUMr…KMV7hW until they sell or you cancel. This is custodial: the desk's server holds that key. Only list what you intend to sell.
  • Buyers' funds never leave their wallet until the settlement transaction they sign; the payment and the tokens move together.
  • Bids and offers lock nothing. An accepted offer reserves inventory that is already in escrow.

Safety checks

  • Token-2022 mints that could trap or skim escrowed tokens are refused: transfer fees or hooks (including an issuer who could add one later), a permanent delegate, non-transferable, frozen-by-default and pausable mints.
  • Every action that commits inventory or speaks for a wallet (buying, offers, bids, cancel requests, bag alerts) requires your signed-in session to own that wallet.
  • Settlement transactions are rebuilt and compared byte-for-byte before broadcast, and rebroadcast until they confirm.
  • A bid is re-checked against the bidder's balance when a holder fills it.

Counterparty check

Press Check buyer on an offer, or the shield next to a seller, for a quick read: wallet age (first transaction seen; for wallets with 1,000+ transactions, a lower bound), SOL balance, settled OTC trades on this desk, and holder tags for the coin. A new wallet or a dev wallet is flagged. These are patterns, not proof of who someone is.

Fees

Platform fee0.5% of each fillSeller (deducted from proceeds)
Fill transactionnetwork + priority feeBuyer
Deposit / cancelnetwork + priority feeSeller
Token account rent~0.002 SOL, only if missingWhoever receives
Offers, counters, bidsfree—

Fees go to GFhUMr…KMV7hW.

Verify on Solscan

  1. Every fill row links its transaction. Signers: the buyer and the escrow.
  2. Instructions: compute budget, SOL/USDC transfer to the seller, fee transfer, create token account (if needed), token release from escrow.
  3. Balance changes: tokens one way, payment the other; nothing else besides network fees and rent.
  4. Each listing shows its escrow deposit (and refund) transaction under About.

Deal alerts

The bell (top right) collects what needs you: new offers and counters, accepted offers to buy, private deals and bids addressed to you, the best bid on each coin you hold, recent sales, and expired listings with tokens to reclaim. New urgent alerts also pop up while the site is open; there are no push or email notifications.

Risks & limits

  • Escrow is custodial (see above).
  • Prices are fixed while a listing is open: if the market moves, a buyer effectively holds a free option. Pick expiries with that in mind.
  • Impact figures are estimates from reported liquidity.
  • Anyone can list any coin. Always check the mint address and the holder tags.
  • Private bids and offers oblige no one to trade.
  • Alerts only arrive while a tab is open.
  • The pill catches common scam patterns, not all of them. Whatever anyone says in a conversation, only pay through a settlement on this site.

FAQ

Can the buyer change the price?

No. The server builds the settlement and rejects any signed transaction that differs from it by a single byte.

What if two people buy at once?

Inventory is reserved atomically; the second buyer gets a clear "someone else just bought" error and nothing is charged.

What happens to an expired listing?

It stops filling and stays in escrow. Press Reclaim on the listing to get the tokens back, or relist.

Why did my bid fail to post?

Your wallet must hold the full bid amount (plus a little SOL for fees) when you post it.

Can I sell to just one person?

Yes: a private deal, or fill their private bid.

Does anything I say in a conversation commit me?

No. Only a price on the table can be accepted, and nothing moves until the buyer signs the settlement.

Who can read my conversations?

The other side of that deal. They live in this desk's database, so treat them like any other site's private messages: never share secrets.