OTC trading app Solana: escrow inside the chat

How OTC escrow works on Cherry: propose a token or NFT deal in a DM, both sides fund an on-chain escrow, and a missed deadline returns what was posted.

An OTC deal is a trade agreed directly between two parties instead of routed through an order book or an AMM. Cherry (cherry.fun) is a wallet-to-wallet messenger and community app for crypto: you sign in with a wallet, DM any wallet address, and join token-gated, NFT-gated and paid group chats. Its mobile app puts an on-chain escrow inside that DM, which makes it an OTC trading app Solana holders can settle a deal in without leaving the conversation where they agreed it. This page covers the escrow program, the states a deal moves through, what happens when the other side goes quiet, and what Cherry does not do.

What OTC escrow does on Cherry

It holds both legs of a peer-to-peer deal in a program-owned account until each side can claim the other’s. The facts, as of 11 September 2026:

  • The OTC screens are part of the Cherry mobile app for iOS and Android.
  • An offer is addressed to one counterparty. The app creates private offers, which name the taker’s address in the escrow account, so a third wallet cannot step in and take the other side.
  • Either side can post SPL tokens, SOL, and NFTs, and can mix them: the create screen allows up to four rows per side.
  • Every offer carries a deadline. The create screen offers 6h, 24h and 3d.
  • The escrow lives in a program on Solana mainnet, address otcA2FTNzw4VBghFwiLGqp7Kydtith2D2voqNENjkYm . Each deal gets its own escrow account under that program, and both sides can open the same account on an explorer.
  • Cherry never holds the funds, never matches orders, never takes a fee, and is not a counterparty to the trade. Your costs are the Solana network fees on the transactions you sign.

How the Solana OTC escrow works

A deal is a state machine on-chain, and the app shows you the one action that state allows.

Status the app showsWhat it meansWhat the app offers you
“Awaiting maker to fund”The escrow account exists, no leg posted yetMaker: “Fund my side”
“Awaiting taker to fund”The maker’s leg is in escrowTaker: “Fund my side”
“Both sides funded”Both legs are in escrowBoth sides: “Settle my side”
“Partially settled”One side has claimedThe other side: “Settle my side”
“Both sides settled”Both sides claimed. The deal is finishedNothing
“Cancelled by maker”The maker cancelled and took their leg backNothing
“Expired”The deadline passed with a leg still missingMaker: “Cancel”

Every step is a transaction you sign yourself: creating the offer, funding your leg, settling your side, or cancelling. The program moves tokens only on a transaction from the address that owns them.

Two details matter when you plan a deal. Claiming is per side: after both legs land, each party signs its own settle transaction, and a deal can rest half-claimed while the slower party is asleep, with the claim still waiting. And cancelling is the maker’s deadline remedy, not an escape hatch: the app surfaces Cancel to the maker once the deadline has passed and a leg is still missing. After both legs are funded, neither side can retract.

When your counterparty funds or claims, the deal card in the DM changes state on its own, with nothing to reload.

What is different from a Telegram OTC deal

The mechanism carries the trust, not the two people in the chat. Cherry puts the old way bluntly: “OTC today is screenshots, trust and prayers”, and names the three failure points, that you cannot be sure who is behind the screenshot, that someone has to decide who sends first, and that if the other party disappears there is nothing on-chain to protect you.

Each of those has a mechanical answer here. A screenshot of a wallet is replaced by an escrow account both sides can open on Solscan from the deal details, showing what each side has posted. Who sends first is settled by the protocol: the maker posts first, and the deadline is the maker’s way back out. A counterparty who disappears leaves your leg where the program put it, not in their wallet.

What remains yours to check is the trade itself. The program moves exactly the mints listed in the offer, which is why you read the mint address in the offer summary against the project’s own source before you fund.

Who uses it and for what

Traders who need a price and a size the pools will not give them without a fight.

  • A block of an illiquid token. The two of you fix one price for the whole size, so there is no slippage and no split route, and the deal is visible only to the two parties until it settles on-chain.
  • An NFT against tokens. A one-of-one or a collection piece goes in as a single row with a quantity of one, and the other side posts SOL or USDC, with no marketplace listing and no public floor-price signal in between.
  • A bundle for a bundle. Four rows per side is enough for three NFTs plus some SOL against one token, priced as one deal rather than four trades.

Counterparties usually come from a room before they come to a DM. SNS Club, a public Cherry group gated by holding a .sol domain, had 1,455 members and 3,872 messages as of 11 September 2026, and gated rooms like it are where holders of one thing find other holders of it.

You meet in the room, you agree terms in the DM, and the deal settles in the escrow attached to that DM. Gating is explained in token-gated chat and NFT-gated chat ; the DM itself is covered in DM a wallet address .

Limits and honest caveats

  • OTC is a mobile feature. Plan the deal on a phone. The web app at chat.cherry.fun covers DMs, groups, and in-chat swaps through trading in chat .
  • There is no matching, no order book and no price feed in the OTC flow. You bring the counterparty, and the price is whatever the two of you typed into the offer.
  • The flow travels with your installed app version. If you cannot start an offer from a DM, update the app; a deal the other side creates still arrives in your DM as an “OTC Deal” banner carrying the action it needs from you.
  • Settlement needs one more signature from each side after funding. Both legs landing in escrow is the halfway mark; the deal closes when both sides have claimed.
  • The deadline protects a leg only while the other leg is missing. Once both are posted, cancelling is off the table for both sides.
  • The escrow verifies addresses and amounts, not reputations or tickers. A fake mint with a familiar symbol will settle exactly as written.
  • DMs are end-to-end encrypted, described in encrypted DMs with no phone number and no KYC . Group chats are not end-to-end encrypted, by design, so terms you negotiate in a group are readable by the group.

How to start

  1. Install the Cherry mobile app from the App Store or Google Play , and sign in with your wallet.
  2. Open a DM with your counterparty by address or name. Message a wallet address walks through that step.
  3. Start an OTC offer from that DM. The first screen is titled “Create an OTC offer” and shows the counterparty you are dealing with.
  4. Fill the two sides. Under “You send” and “You receive”, tap “+ Add asset”, pick a token or NFT from the “Select token” sheet, and type the amount. Four rows per side is the ceiling.
  5. Choose the deadline under “Expiry”: “6h”, “24h” or “3d”. Tap “Continue”.
  6. Read the summary, then “Confirm & sign”. That signature writes the escrow account on-chain with both addresses, both sides of the trade, and the expiry.
  7. Tap “Fund my side” to post your leg, or “Fund later” to leave the offer standing. A funded leg ends on the “Deal Funded Successfully!” screen and a “Go to DM” button back to the conversation.
  8. Watch the “OTC Deal” banner in the DM. It counts down to the deadline and shows whether the deal needs something from you. When both legs are in, the action becomes “Settle my side”; the “Escrow” row in the deal details opens the account on Solscan.

Get the app, open the DM with the wallet you are trading with, and run the next deal through the escrow, not through screenshots.

FAQ

How does the escrow work? You propose a deal to one wallet, and the app writes an escrow account on Solana that names both addresses and both sides of the trade. Each side posts its leg to that account in its own transaction. Once both legs are in, the only move left for either side is to claim what the other posted. If the deadline passes while a leg is still missing, the maker cancels and takes their leg back.

Can I do an NFT OTC escrow on Cherry? Yes. An NFT is one row in the offer, with a quantity of one, and it can sit next to tokens on the same side of the deal. Each side of a Cherry offer holds up to four rows, so three NFTs and some SOL against one token is a valid deal.

Who sends first in an OTC deal on Cherry? The maker, the wallet that proposed the deal. That is why the maker picks a deadline of 6h, 24h or 3d when creating the offer: if the taker never posts their leg, the maker cancels after the deadline and the escrow returns what the maker put in.

Does Cherry charge a fee on an OTC deal? No. Cherry does not hold the funds, does not match orders, is not a counterparty, and takes no cut of an OTC deal. You pay Solana network fees on the transactions you sign, as of 11 September 2026.

Is OTC in the Cherry web app? The OTC screens are part of the Cherry mobile app for iOS and Android. The web app at chat.cherry.fun covers DMs, groups and in-chat swaps.

What happens if the other side never funds the deal? Nothing moves. Your leg sits in the escrow account until the deadline passes, then the deal shows a Cancel action for you and the escrow returns what you posted.

Sources

Try Cherry

Sign in with a wallet, DM any address, and join token-gated and paid communities. No phone number, email, or KYC.