OTC Escrow
Peer-to-peer token swaps without moving the chart. Lock your tokens, share the link, settle on-chain.
🚧
OTC Escrow not yet deployed
The contract address is still set to the zero address. Deploy 6_OTCEscrow.sol and update CONTRACTS.OTC_ESCROW in main.js.
How OTC escrow works ▾
- You create an offer: pick the token you're sending, the amount, the token + amount you want in return. Your tokens get pulled into the escrow contract — they're safe there. Optionally restrict the offer to a specific counterparty, or set an expiry.
- You share the link (
bescpad.xyz/otc/<id>) with your counterparty or post it publicly. - Counterparty fills it: in one atomic transaction, their tokens go to you and your locked tokens go to them. Either both transfers happen or neither — no trust required.
- Platform fee: BescPad takes a small cut (loading…) out of the filler's payment on each successful fill — never from the maker, never on a cancel or reclaim. The rate is hard-capped at 5% in the contract bytecode; you can verify the live value at any open offer's share page before filling. Capped at 5% means even if the rate changes, fillers will never lose more than 5% of their amountOut.
- Failsafes: you can cancel any time before someone fills. After expiry, anyone can call
reclaimExpiredto release the locked tokens — but the contract always returns them to your original maker wallet, not to whoever called the function. If you've actually lost access to that wallet, the tokens leave the escrow but remain in a wallet you can't sign for. The guarantee is "your funds never get permanently stuck inside this contract" — not key recovery. There's no admin key and no emergency drain anywhere in the contract.
⚠ If either token has a transfer fee (tax token), the fee applies on every hop through the escrow. Only the token's owner can whitelist this contract as tax-exempt on their token — regular traders can't bypass the fees themselves. If you're swapping a fee-on-transfer token, expect to lose the tax on each side.
Loading offers…
📋
Connect wallet to view your offers
Create OTC Offer
Lock your tokens in escrow. Counterparty fills atomically — both sides settle in one transaction.
⏱ Every offer has a hard deadline. After expiry, you can still cancel manually or anyone can call reclaimExpired to return your funds — so your tokens always have a rescue path even if you lose your wallet.
Fill in the token amounts above to preview your offer.
Platform fee: loading… on each successful fill, deducted from the filler's payment. You receive the full amountOut minus this cut. Fee is locked into your offer at creation time — owner changes to the global rate only affect future offers.