Send crypto gift cards that can be redeemed in any cryptocurrency on any chain, powered by SideShift API v2.
GiftCard is a web application that enables anyone to create and send crypto gift cards that recipients can redeem in their preferred cryptocurrency on any blockchainโwithout needing the same wallet, token, or network.
Think of it like:
- ๐ Amazon Gift Card, but for crypto โ cross-chain, instant, and simple
- ๐ธ Universal gift cards that work across 200+ assets and 40+ blockchains
Current crypto gifting is broken:
- โ Sender has ETH, receiver wants USDT
- โ Sender is on Solana, receiver uses Polygon
- โ Receiver may be new to crypto and confused
- โ Manual swaps are confusing and risky
- โ Wrong chain = funds lost forever
๐ Crypto is powerful, but terrible for gifting.
GiftCard makes crypto gifting:
โจ Chain-agnostic โ Works across any blockchain
โจ Token-agnostic โ Pay with any crypto, receive any crypto
โจ Beginner-friendly โ No technical knowledge required
โจ Non-custodial โ Your keys, your crypto
โจ Instant โ Powered by SideShift for lightning-fast swaps
The sender pays with ANY crypto, and the receiver redeems in ANY crypto โ seamlessly powered by SideShift's cross-chain swap API.
- Open GiftCard website
- Click "Create Gift Card"
- Enter:
- Gift amount (e.g., $25 USD)
- Optional personal message
- Optional expiry date
- Choose payment cryptocurrency (e.g., SOL on Solana)
- Click "Pay"
- SideShift API converts SOL โ stable settlement asset (USDT on Tron)
- Gift created successfully!
- Receive gift link
- QR code for easy sharing
- Shareable URL
โ Sender is done. No further wallet management required.
- Open gift link (shared by sender)
- View:
- Gift amount
- Personal message from sender
- Click "Redeem Gift"
- Choose:
- Preferred blockchain (Ethereum, Polygon, Solana, etc.)
- Preferred token (USDT, MATIC, ETH, BTC, etc.)
- Enter wallet address
- Click "Claim"
- SideShift API executes swap: Stable asset โ chosen token & chain
- Funds arrive directly in wallet ๐
โ Receiver never worries about chains or swaps.
SideShift is not optional โ it powers the entire application.
- Sender pays in any token
- SideShift converts it to a stable holding asset (USDT on Tron)
- This makes the gift value stable and chain-neutral
- Receiver selects any chain/token they prefer
- SideShift swaps from stable asset โ chosen asset
- Direct-to-wallet delivery with no manual intervention
๐ Zero-UI + Cross-Chain Power = Perfect UX
โ
No need to build custom bridges
โ
No DEX liquidity headaches
โ
No custody of user funds
โ
Direct-to-wallet swaps
โ
Supports 200+ assets across 40+ chains
โ
Variable & fixed-rate shifts
โ
Built for real-world use cases like gifting
This is exactly the kind of integration SideShift was designed for.
- Next.js 15 (App Router)
- React Three Fiber (3D gift card animations)
- Tailwind CSS + Framer Motion (Modern UI/UX)
- Lucide Icons
- Next.js API Routes
- SideShift API v2 integration
- MongoDB for gift storage
- Cross-chain swaps via SideShift
- Gift tracking & status monitoring
- QR code generation for easy sharing
- Real-time exchange rates
- Support for 200+ cryptocurrencies
orchids-greetings/
โโโ src/
โ โโโ app/
โ โ โโโ page.tsx # Landing page
โ โ โโโ create/page.tsx # Create gift card flow
โ โ โโโ redeem/[giftId]/page.tsx # Redeem gift card
โ โ โโโ track/page.tsx # Track gift status
โ โ โโโ api/
โ โ โโโ coins/route.ts # Get available coins
โ โ โโโ pair/route.ts # Get exchange rates
โ โ โโโ qrcode/route.ts # Generate QR codes
โ โ โโโ gifts/
โ โ โโโ create/route.ts # Create new gift
โ โ โโโ [giftId]/route.ts # Get gift details
โ โ โโโ redeem/route.ts # Redeem gift
โ โโโ components/
โ โ โโโ Navbar.tsx # Navigation component
โ โ โโโ GiftCard3D.tsx # 3D gift card visual
โ โ โโโ ui/ # shadcn/ui components
โ โโโ lib/
โ โโโ mongodb.ts # Database connection
โ โโโ sideshift.ts # SideShift API wrapper
โ โโโ types.ts # TypeScript types
โ โโโ utils.ts # Utility functions
โโโ .env # Environment variables
โโโ README.md # This file
Create a .env file in the root directory:
# MongoDB Database
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority
# SideShift API
SIDESHIFT_SECRET=your_sideshift_secret_key
SIDESHIFT_AFFILIATE_ID=your_affiliate_id
SIDESHIFT_API=https://sideshift.ai/api/v2
# Gemini AI (optional features)
GEMINI_API_KEY=your_gemini_api_key
# WalletConnect (optional wallet integration)
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id
NEXT_PUBLIC_WC_PROJECT_ID=your_wc_project_id
# Pinata (optional NFT features)
PINATA_API_KEY=your_pinata_api_key
PINATA_SECRET_KEY=your_pinata_secret_key- Node.js 18+ or Bun
- MongoDB instance
- SideShift API credentials
# Install dependencies
npm install
# or
bun install
# Run development server
npm run dev
# or
bun devOpen http://localhost:3000 to see the app.
- Stunning 3D animated gift card
- Purple/green gradient theme
- Feature highlights
- How it works section
- Multi-step creation wizard
- Set gift amount in USD
- Add personalized message
- Select payment cryptocurrency (200+ options)
- Get deposit address for payment
- Receive shareable gift link and QR code
- View gift details and sender message
- Choose preferred cryptocurrency to receive
- Select preferred blockchain network
- Enter wallet address
- One-click redemption with automatic swap
- Monitor gift card status:
- Pending โ Awaiting deposit
- Funded โ Ready to claim
- Claimed โ Successfully redeemed
- Expired โ Past expiry date
Fetches all available cryptocurrencies from SideShift (200+ assets).
Gets exchange rate and limits for a trading pair.
Query params:
depositCoin,depositNetworksettleCoin,settleNetwork
Creates a new gift card.
Body:
{
"amountUsd": 25,
"message": "Happy Birthday!",
"depositCoin": "SOL",
"depositNetwork": "solana",
"senderAddress": "wallet_address"
}Retrieves gift card details and status.
Redeems a gift card.
Body:
{
"giftId": "uuid",
"redeemCoin": "USDT",
"redeemNetwork": "polygon",
"redeemAddress": "wallet_address"
}Generates QR code for gift link.
// 1. Get exchange rate
const pairInfo = await getPair(depositCoin, depositNetwork, 'USDT', 'tron');
// 2. Create variable shift
const shift = await createVariableShift(
depositCoin, depositNetwork,
'USDT', 'tron',
settlementAddress,
refundAddress,
userIp
);
// 3. User deposits to shift.depositAddress
// 4. SideShift automatically swaps to USDT and holds it// 1. Get exchange rate for redemption
const pairInfo = await getPair('USDT', 'tron', redeemCoin, redeemNetwork);
// 2. Create redemption shift
const redeemShift = await createVariableShift(
'USDT', 'tron',
redeemCoin, redeemNetwork,
receiverWalletAddress,
undefined,
userIp
);
// 3. SideShift swaps USDT โ chosen asset
// 4. Funds delivered to receiver's wallet| Criteria | Why GiftCard Scores High |
|---|---|
| API Integration | SideShift used twice per gift (creation + redemption) |
| Use Case | Mass adoption potential, non-trading focused |
| Originality | Simple idea, powerful cross-chain execution |
| Crypto-Native | Truly cross-chain, wallet-first approach |
| UX | Extremely easy to understand and use |
| Real-World Value | Solves actual crypto usability problems |
- ๐จ NFT-based gift cards
- ๐ง Email / WhatsApp delivery
- ๐ข Corporate bulk gifting
- ๐ฏ Brand partnerships
- ๐ DAO community rewards
- ๐ Premium gift card designs
We welcome contributions! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
This project is open source and available under the MIT License.
- SideShift.ai โ For providing the cross-chain swap infrastructure
- Next.js โ For the amazing React framework
- MongoDB โ For reliable data storage
- shadcn/ui โ For beautiful UI components
For questions or support:
- Open an issue on GitHub
- Contact the development team
Built with โค๏ธ for the SideShift Hackathon
Making crypto gifting simple, universal, and delightful.