TOP COLLECTIONS
⬢
Connect your wallet to view your profile
LIST YOUR COLLECTION
Submit your OP721 collection to the marketplace. Only the contract deployer can register.
HOW OPTRADE WORKS
Everything you need to know about buying, selling, and trading NFTs on Bitcoin L1.
Contents
What is OPTrade?
OPTrade is the first NFT marketplace on OPNet — Bitcoin L1 smart contracts. It lets you buy, sell, and trade OP721 NFTs directly on Bitcoin without leaving Layer 1.
Every trade is settled through an on-chain escrow smart contract. The marketplace never holds your NFTs or your BTC. When a sale happens, the escrow contract verifies the payment, transfers the NFT to the buyer, and sends the BTC to the seller — all in a single atomic transaction.
Fees
| Fee | Amount | Who pays |
|---|---|---|
| Platform fee | 2% | Deducted from sale price (seller receives 98%) |
| Gas fee | ~3,000 sats | Buyer (OPNet execution cost) |
| Network fee | ~900 sats | Buyer (Bitcoin miner fee) |
| Approval TX | ~1,000 sats | Seller (one-time per collection) |
Sellers receive 98% of the listed price. The 2% platform fee is deducted automatically by the escrow contract. Creator royalties (if set) are also deducted from the seller's share.
Buyers pay the listed price + gas + network fees. The total extra cost is typically ~4,000 sats (~$2-3 USD) on top of the NFT price.
Listing an NFT is free (no on-chain TX). The only seller cost is the one-time approval transaction (~1,000 sats).
Connecting Your Wallet
OPTrade works with the OP_WALLET browser extension. This is the standard wallet for OPNet smart contracts on Bitcoin.
- Install OP_WALLET from the Chrome Web Store
- Create or import a wallet (your BTC address starts with
bc1p...) - Click "Connect Wallet" on OPTrade
- Approve the connection in OP_WALLET
Once connected, your address appears in the navbar. You can view your NFTs and activity on your Profile page.
How to Sell an NFT
Selling an NFT on OPTrade is a 3-step process:
Approve the escrow (one-time)
The first time you list from a collection, the marketplace asks you to approve the escrow contract to transfer NFTs on your behalf. This is a single on-chain transaction (~1,000 sats). You only need to do this once per collection — after that, all future listings from the same collection skip this step.
Set your price
Navigate to your NFT and click "List for Sale". Enter the price in BTC or sats (minimum 1,000 sats). The listing is recorded off-chain — no gas cost to list or delist.
Wait for a buyer
When someone buys your NFT, the escrow contract handles everything atomically: the buyer's BTC goes to your wallet, and the NFT transfers to them. You receive 99% of the listed price directly to your connected wallet. You can cancel a listing at any time for free.
How to Buy an NFT
Buying is a single-click action:
- Browse a collection and find an NFT with a listed price
- Click "Buy Now"
- Review the price breakdown (NFT price + 2% platform fee + gas + network fee)
- Confirm the transaction in your OP_WALLET
- Done! The NFT transfers to your wallet when the transaction confirms (~10 minutes, next Bitcoin block)
What happens under the hood
Your wallet creates a single transaction that: (1) calls the escrow contract's executeBuy function, (2) sends BTC to the seller, and (3) sends the 2% fee to the treasury. The escrow contract verifies these payments on-chain and then calls transferFrom on the NFT contract to move the NFT to you. Everything happens atomically — if any step fails, the entire transaction reverts and your BTC is returned (only gas is consumed).
Offers
You can make an offer on any NFT, even if it's not listed for sale. Offers are a way to signal interest at a price you're willing to pay.
Making an offer (Buyer)
Click "Make Offer" on any NFT page, enter your price, and submit. The offer is recorded off-chain — no BTC is locked or sent when you make an offer. Offers expire after 7 days. You can cancel anytime.
Accepting an offer (Seller / Owner)
If you own the NFT, you'll see an "Accept" button on incoming offers. Accepting marks the offer as accepted and cancels any active listings or other offers on that NFT. No BTC moves at this point — you're just agreeing to the price.
Executing the trade (Buyer)
After the seller accepts, the buyer sees an "Execute" button on the offer. Clicking it triggers the exact same on-chain escrow flow as a direct buy — the buyer sends BTC to the seller, the escrow transfers the NFT. The buyer pays the offer amount + gas + network fees.
Why does the buyer execute?
On OPNet, smart contract interactions require the caller to send BTC outputs in the same transaction. Since the buyer is the one paying, they must be the one to sign and broadcast the transaction. This is why the offer flow is: Buyer offers → Seller accepts → Buyer executes. It's not possible for the seller to "pull" BTC from the buyer's wallet — the buyer must initiate.
Sweep / Cart
You can add multiple listed NFTs to your cart and buy them in sequence. Click the cart icon on listed NFTs in a collection view to add them, then click "Buy All" in the cart modal.
Each purchase is a separate on-chain transaction (OPNet doesn't support batch contract calls in a single TX). They execute one after another automatically.
The Escrow Contract
All trades on OPTrade are settled through a trustless on-chain escrow contract deployed on OPNet (Bitcoin L1). The marketplace backend never holds or controls your assets.
How the escrow works
executeBuy(nftContract, tokenId, seller, sellerAddress, price) on the escrow contractplatformFee = price * 200 / 10000price - platformFee sats, treasury must receive platformFee satstransferFrom(seller, buyer, tokenId) on the NFT contractThe escrow contract is immutable — once deployed, nobody can change its logic. The contract address is publicly verifiable on the OPNet explorer.
Approval (setApprovalForAll)
Before listing, the escrow contract needs permission to transfer your NFTs. This is done via the standard OP721 setApprovalForAll function — the same pattern used in ERC-721 on Ethereum.
What the approval does
You're telling the NFT contract: "Allow the OPTrade escrow contract to transfer my NFTs from this collection."
This is scoped to one collection — approving for one collection doesn't affect your NFTs in other collections.
The escrow can only transfer your NFTs when someone calls executeBuy with valid payment proofs. It cannot move your NFTs arbitrarily.
You can revoke approval at any time by calling setApprovalForAll(escrow, false) directly on the NFT contract.
Cost: ~1,000 sats (one-time per collection). The marketplace checks if you're already approved and skips this step if so.
Registering a Collection
If you've deployed an OP721 NFT contract on OPNet, you can register it on OPTrade:
- Go to the Create page
- Enter your contract address and the deployer wallet address
- Add collection details: name, description, icon, banner, and website
- Submit — the marketplace verifies on-chain that you are the deployer
Once registered, the indexer automatically syncs all NFTs, their metadata, images, and ownership. Only the collection deployer (or an OPTrade admin) can edit collection details.
Safety & Trust
Non-custodial
OPTrade never holds your BTC or NFTs. All trades execute through the on-chain escrow contract. Your wallet signs every transaction.
Atomic swaps
Payment and NFT transfer happen in the same transaction. Either both succeed or both fail — there's no state where the buyer paid but didn't receive the NFT.
On-chain verification
The escrow contract checks BTC outputs on-chain. It's impossible to fake a payment — the contract reads the actual transaction outputs from the Bitcoin blockchain.
Verified collections
Look for the verified badge on collections. Verified means the OPTrade team has confirmed the collection's legitimacy. Unverified collections may still be legitimate — always DYOR.
FAQ
How long does a trade take to confirm?
About 10 minutes — one Bitcoin block confirmation. The NFT will show as "pending" until the block confirms.
What if my transaction reverts?
Your BTC is returned automatically. The only cost is the gas fee (~3,000 sats). Common causes: the NFT was already sold, approval expired, or the seller transferred the NFT before your TX confirmed.
Can I list on multiple marketplaces?
The approval is specific to OPTrade's escrow contract. If you approve another marketplace's escrow, both can transfer your NFTs. However, if the NFT sells on one marketplace, the other listing becomes invalid (the escrow will fail to transfer an NFT you no longer own).
What wallet do I need?
OP_WALLET browser extension. It's the standard wallet for OPNet. Available on Chrome-based browsers.
Is there a minimum price?
Yes — 1,000 sats (0.00001 BTC). This ensures the platform fee and seller payment are above Bitcoin's dust limit (330 sats).
Why is the offer flow 3 steps?
OPNet contract interactions require the caller to include BTC payments in the same transaction. Since the buyer pays, only the buyer can sign the final trade TX. The seller accepts to signal agreement, then the buyer executes to finalize. This is a fundamental constraint of Bitcoin L1 smart contracts — not a design choice.
Can the marketplace steal my NFTs?
No. The escrow contract is immutable code on Bitcoin. It can only transfer your NFT when someone provides valid BTC payment that the contract verifies on-chain. OPTrade has no admin keys to the escrow — it's fully autonomous.
Still have questions? Use the live chat or reach out on X (Twitter).
ADMIN PANEL
Connect an admin wallet to access.