Buy and sell gift cards
RecoilPay has a peer-to-peer gift card market. You can sell a gift card you don't need for USDC, or buy one with USDC. The other side of every trade is a merchant: an independent operator who publishes the rates they buy and sell cards at.
You don't have to trust the merchant, and they don't have to trust you. The USDC waits in an escrow contract until the card has been checked.
sell my $100 Steam card
buy a $50 Amazon gift card
Gift cards are paid in testnet USDC, which is play money. Merchants settle on Base Sepolia, OP Sepolia and BNB Chain Testnet. Each offer says which one.
What you can trade
| Brands | Amazon, Apple, Steam, Google Play, Walmart, Target, eBay, Visa, Sephora, Nike |
| Countries | United States, United Kingdom, Canada, Australia, Germany |
| Card types | Digital codes and physical cards |
Cards are priced as a percentage of face value. For example, a merchant buying $100 Steam cards at 85% pays 85 USDC for one. Each merchant also sets the card sizes they handle.
Find an offer
Type what you want into the intent bar:
sell my $100 Steam cardbuy a $50 Amazon gift card
RecoilPay shows the best offer for exactly that card: the brand, country, card type and face value. It also shows what you'd be paid, or what you'd pay. If no merchant is trading that card right now, you'll be told so.
Want to look around instead? Choose to browse from the offer, then use the Market tab to see every live offer, or My trades for trades the connected wallet has already opened.
Take an offer to open a trade. From there, the trade page shows whose turn it is and how long is left.
Selling a card
- The merchant funds the escrow. You open the trade and wait while the merchant locks your payment in USDC. Nothing is asked of you yet.
- You send your code within 60 minutes. It's encrypted in your browser for that merchant alone before it leaves your device. If you don't send it in time, the trade ends and the merchant gets their USDC back.
- The merchant checks the card within 30 minutes. If it's good, the escrow pays you. If the merchant says nothing in time, the escrow pays you anyway.
If the merchant says the card didn't work, the trade goes to an admin for review.
Buying a card
-
You fund the escrow. Your wallet approves the USDC, then locks it in the escrow contract. These are real transactions, so you'll need a little testnet gas on the offer's chain. The trade page switches your wallet to the right network for you.
-
The merchant sends the code within 60 minutes. If they don't, the trade ends and your USDC is returned to you.
-
You reveal the code and redeem it. The code is encrypted to you. To unlock it, your wallet signs a message, and the code is decrypted right there in your browser.
-
You say how it went within 60 minutes:
- It worked, release payment: the escrow pays the merchant.
- Something was wrong: you describe the problem and the trade goes to an admin. This doesn't refund you straight away.
If you say nothing in time, the escrow pays the merchant. Redeem the code promptly.
Your encryption key comes from your wallet's signature, so only the wallet that funded the trade can open the code. If revealing fails, check you're connected with that wallet.
Disputes
When either side says a card was bad, an admin reviews the trade. The clock stops while they look, so nothing settles on its own in the meantime. The admin then decides who the escrow goes to.
Merchants stake a bond in USDC. If a dispute is decided against a merchant, it can be paid out of that bond. A merchant can only have open trades worth up to five times their bond, so every trade is backed.
Why it's safe
- The escrow can only pay one of the two of you. Besides RecoilPay's own fee — a fixed percentage, shown on the offer, and only taken if the trade completes — it can't send the USDC anywhere else. Not to an admin, not to a third address, and not to RecoilPay beyond that fee.
- Nobody can redirect the fee, including RecoilPay. Where it goes is set when the escrow is deployed and cannot be changed afterwards. The key that rules on disputes can't point it elsewhere or pay itself.
- Nobody can sit on your money. Every step has a deadline. When one runs out, the side the trade was waiting on loses. If nothing at all happens for 7 days, whoever funded the escrow can take their USDC back.
- RecoilPay can't read your codes. A code is encrypted in the sender's browser for the receiver, and RecoilPay stores only the encrypted copy. RecoilPay holds no key that opens it.