How to OTC trade Solana safely with on-chain escrow

The Telegram OTC scam patterns, a pre-deal checklist, and one rule for size: both legs locked in an escrow program, each side claims, timeout refund.

Two wallets agree a price in a DM, and then one of them has to move first. The answer to how to OTC trade Solana safely is that neither should have to: both sides post their leg into an escrow program, and each side then claims what the other posted. This guide is for traders doing peer-to-peer size in SPL tokens or NFTs, away from an order book. Cherry (cherry.fun) is a wallet-to-wallet messenger and community app for crypto, and its mobile app runs that escrow inside the DM where the deal was agreed.

How to OTC trade Solana safely in one rule

Pick a number that would ruin your week, and treat it as the line. Below it, sending directly to a wallet you have dealt with before is a judgment call. At or above it, the deal settles through an escrow program or a desk, every time, including with people you know.

Desks and peer-to-peer escrow serve different sizes. As of 10 December 2025, Kraken’s OTC desk sets a minimum order size of “50,000 USD equivalent, however exceptions can be discussed on a case-by-case basis” and is aimed at “institutional clients and high net-worth individuals needing to fill large orders”. Below that floor, and for any deal that includes an NFT or a thin SPL token, a desk will not quote you, and an on-chain escrow is the route. Solana has more than one: McSwap OTC, for example, runs peer-to-peer trades of crypto assets on Solana. Cherry’s escrow is the one that lives in the conversation.

The scam patterns that take the money

Each pattern attacks the same gap, between the moment you agree and the moment the trade settles.

  • Who sends first. The counterparty stalls until you move, then stops replying. Someone has to send first, and that decision is exactly what a scammer counts on.
  • The wallet screenshot. An image of a balance proves nothing about who controls the wallet. You can’t be sure who is actually behind the screenshot.
  • The volunteer middleman. A third account joins the thread offering to hold both sides for a small cut. A human holding both legs is the risk you were trying to remove.
  • The ticker that is not the mint. More than one SPL mint can carry the same symbol, which is why the Cherry composer ties each $SYMBOL you pick from autocomplete to one specific mint. Agreeing a deal in tickers and settling it in mints is how a worthless copy gets delivered.
  • The copied identity. A display name and avatar lifted from the person you were negotiating with, posting from a different wallet.

OTC today is still screenshots, trust and prayers for most traders.

Before you start

You need a Solana wallet you control, the counterparty’s wallet address in writing, and the Cherry mobile app from the App Store or Google Play if you want the escrow inside the DM. Sign-in is a wallet signature, with no phone number, email or KYC.

Run this checklist before you sign anything:

  1. The counterparty’s address, pasted in the thread, not a display name.
  2. The mint address for every token on both sides, taken from the project’s own site or an explorer.
  3. Amounts written out in full, with the decimals you expect to receive.
  4. A deadline you can live with if the other side goes quiet.
  5. A venue that holds both legs and refunds when the deadline passes.

Step 1: Tie the conversation to an address

On Cherry a DM is addressed to a wallet address or to a name such as alice.sol or alice.skr, so the thread is bound to an address and not to a display name. Message a wallet address covers opening one. Two of Cherry’s defaults help here: a first DM from a stranger lands in the Requests folder with no push notification, and cold DMs from very new wallets go to a hidden folder.

You know it worked when the address in the thread header is the address you are about to type into the offer.

Step 2: Check the mint, not the ticker

Paste the mint address into the Cherry composer and send it. A bare Solana address renders a token card with the name, price and market cap from Jupiter’s token data; no card appears when Jupiter does not recognise the mint. Compare that card against the mint published on the project’s own site. If the two disagree, the deal is over.

You know it worked when the card in the chat shows the name and market cap you expected, and the mint matches the project’s published address character for character.

Step 3: Write the terms into an escrow offer

Start an OTC offer from that DM in the Cherry mobile app. The first screen is titled “Create an OTC offer” and explains that the trade is executed through an escrow smart contract on Solana. Fill both sides under “You send” and “You receive” using “+ Add asset” and the “Select token” sheet, set “Expiry” to “6h”, “24h” or “3d”, and tap “Continue”. Read the summary, which names the counterparty and the expiry, then “Confirm & sign”.

That signature creates an escrow account on Solana mainnet under the program otcA2FTNzw4VBghFwiLGqp7Kydtith2D2voqNENjkYm , recording both addresses, both sides of the trade and the deadline, so anyone can look it up on an explorer. Cherry never holds the funds, never matches orders, takes no cut and is not a counterparty. OTC escrow on Cherry walks through every offer status and the limits.

You know it worked when the deal appears in the DM and its status reads “Awaiting maker to fund”.

Step 4: Fund your leg and let the deadline do the work

Tap “Fund my side” to post your leg, or “Fund later” to leave the offer standing while you check something. The maker funds first, which is why the deadline is chosen up front: if the taker never posts, the maker cancels after the deadline and the escrow returns the maker’s leg. Cancel appears for the maker only after the deadline has passed and only while the taker has not funded, so once both legs are in, neither side can pull out with the goods.

You know it worked when the status moves from “Awaiting maker to fund” to “Awaiting taker to fund” and then to “Both sides funded”.

Step 5: Settle, then read the account yourself

With both legs in, the only move left for either side is “Settle my side”, and each claim is its own signed transaction. The deal details sheet has an “Escrow” row that opens the escrow account on Solscan, so you can read the same state the app is reading.

You know it worked when your side of the trade is in your wallet and the deal status reads “Both sides settled”.

Troubleshooting

The other side never funds. Nothing moves. Your leg sits in the escrow account until the deadline passes. The deal’s deadline then reads “Outdated” in the deals list, a “Cancel” button appears for the maker, and cancelling returns what you posted.

They ask you to skip the escrow “just this once”. That request is the reason the rule in the first section exists. A counterparty who is fine with escrow at 10 SOL is fine with it at 100.

The deal shows “No actions available”. The escrow is waiting on the other side, the deal is already settled, or the deadline passed on a deal you were the taker of and only the maker can cancel. The status row tells you which.

You are in the United Kingdom. Cherry’s OTC screens carry the notice “This capability is directed only at persons outside of the United Kingdom, and must not be acted upon by persons in the United Kingdom.”

You cannot find the OTC screens on the web. They 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.

Nothing here is financial advice, and tokens can lose value. Open the DM with your counterparty and put the next deal through the escrow.

FAQ

What are the most common OTC scams on Telegram? Five patterns cover most of them: an argument over who sends first, a wallet screenshot used as proof of funds, a third account that offers to hold both sides for a cut, a token whose ticker matches the one you agreed but whose mint does not, and a copied display name posting from a different wallet. Each one attacks the gap between the moment you agree and the moment the trade settles.

How do I avoid OTC scams in crypto? Pick a size above which you never send first, verify the counterparty by wallet address instead of by display name, check every mint against a source the counterparty does not control, and settle through an escrow program that holds both legs and refunds on a deadline.

Who sends first in an OTC deal on Cherry? The maker, the wallet that proposed the deal, posts its leg first, which is why the maker picks a deadline of 6h, 24h or 3d up front. If the taker never posts, the maker cancels after the deadline and the escrow returns the maker’s leg.

Does Cherry charge a fee on an OTC deal? No. Cherry never holds the funds, never matches orders, takes no cut and is not a counterparty to the trade. Your costs are the Solana network fees on the transactions you sign, as of 11 September 2026.

Can I run an OTC deal from 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.

Sources

Try Cherry

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