Welcome to iFrame
iFrame is a peer-to-peer web design marketplace where creators sell HTML/CSS/JS templates and buyers pay instantly with Solana. No middlemen, no subscriptions — just great work traded fairly.
What is iFrame?
iFrame is a marketplace for production-ready web templates. Every template is stored as raw HTML, CSS, and JavaScript — no build tools, no dependencies required. Buyers can embed or deploy them instantly.
Templates live as iFrames — self-contained pages that preview in real-time before you buy. What you see is exactly what you get.
Who is this for?
| Role | What you do | Benefit |
|---|---|---|
| Creator | Upload HTML/CSS/JS templates | Earn $16 per sale, paid instantly to your wallet |
| Buyer | Browse, preview, and purchase templates | Own production-ready code for $20 |
| Developer | Access the REST API | Build integrations, bots, or storefronts |
Quick Start
From zero to selling your first template in under 10 minutes.
Buy a template in 3 steps
-
1Connect your Solana walletClick Connect Wallet in the nav. Phantom, Solflare, and Backpack are supported. No account needed.
-
2Browse and preview templatesEvery card in the Marketplace shows a live iframe preview. Click any card to open the full-screen detail view.
-
3Pay with SOL — receive files instantlyApprove the transaction in your wallet. Files download automatically once confirmed on-chain.
Sell a template in 3 steps
-
1Connect your wallet & go to UploadThe Upload button appears in the nav once your wallet is connected.
-
2Fill in details and upload your filesAdd a name, category, description, and upload your HTML (+ optional CSS/JS). A preview screenshot is taken automatically.
-
3Publish — start earningYour template is live instantly. Every sale sends $16 directly to your connected wallet.
Wallet Connect
iFrame uses your Solana wallet as your identity and payment method. No email, no password.
Supported Wallets
| Wallet | Status | Notes |
|---|---|---|
| Phantom | Supported | Recommended — most popular Solana wallet |
| Solflare | Supported | Hardware wallet support via Ledger |
| Backpack | Supported | Works via xNFT standard |
| Any Solana wallet | Via adapter | Any wallet exposing window.solana |
Connection Flow
When you click Connect Wallet, the site calls window.solana.connect() which prompts your wallet extension. Once approved, your public key is registered via the API:
// Connect wallet const resp = await window.solana.connect(); const address = resp.publicKey.toString(); // Register with API await fetch('/api/users/connect', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ walletAddress: address }) });
Upload a Template
Templates are HTML-first. Upload a single HTML file or a bundle with CSS and JS — iFrame stores everything and serves it on demand.
Requirements
| Field | Required | Notes |
|---|---|---|
index.html | Required | Entry point. Must be self-contained or reference bundled assets. |
| CSS files | Optional | Up to 5 CSS files. Inline styles also accepted. |
| JS files | Optional | No build tools. Vanilla JS or CDN imports only. |
| Preview image | Auto | Screenshot taken automatically from live HTML render. |
| Name | Required | 3–80 characters. Appears on the marketplace card. |
| Category | Required | Landing Page, Portfolio, Dashboard, Blog, E-commerce, or Other. |
Template Guidelines
File structure example
my-template/ ├── index.html ← entry point (required) ├── styles.css ← linked from index.html └── main.js ← optional interactivity
Reference your assets with relative paths. iFrame reconstructs the file tree when serving, so ./styles.css and ./main.js will resolve correctly.
Payouts & Revenue
Every template sells for $20 USD, settled in SOL at the current market rate. The split is enforced on-chain — no waiting, no invoices.
Revenue Split
Payment Timing
When a buyer approves the transaction, the SOL is split within the same transaction and sent simultaneously to both wallets. There is no escrow, no delay, and no withdrawal process — funds arrive in your wallet before you refresh the page.
SOL Exchange Rate
The SOL/USD rate is fetched live from CoinGecko before each transaction. The buyer pays the exact SOL equivalent of $20 at the moment of purchase. This protects both parties from price slippage during checkout.
Buying Templates
Browse, preview live, and own production-ready web templates for a flat $20 each.
Purchase Flow
-
1Browse the marketplaceEvery card shows a live iframe of the actual template. Filter by category using the tabs at the top.
-
2Open the detail viewClick any card to open a full-screen preview with the creator's details, description, and a Buy button.
-
3Confirm payment in your walletA transaction for exactly $20 in SOL is sent for your approval. Review the amount, then confirm.
-
4Download your filesOnce confirmed on-chain, all template files become available in your Dashboard under Purchases.
Refund Policy
Because payments are settled on-chain and files are delivered instantly, all sales are final. We strongly encourage buyers to use the live iframe preview before purchasing — it renders the exact same code you'll receive.
Downloads & Files
Once purchased, your templates are available forever from your Dashboard. Download them anytime.
Accessing Your Files
Go to Dashboard → Purchases. Each purchased template shows an Open Editor button that loads the template in the builder, or you can download the raw files:
GET /api/templates/:id/download # Returns file manifest: { "files": [ { "name": "index.html", "size": 14820 }, { "name": "styles.css", "size": 4210 } ] } # Download individual file: GET /api/templates/:id/download?file=index.html
License
Purchasing a template grants you a perpetual, royalty-free license to use the code in commercial and personal projects. You may modify it freely.
You may not redistribute or resell the original template files as your own product on iFrame or other marketplaces.
REST API
The iFrame API is a standard JSON REST API. Base URL: https://iframe-api-seven.vercel.app/api
Templates
id, name, category, sales, views, image URLs, and inline html content.
name, category, description, authorWallet, badge, files (HTML/CSS/JS), and optional preview.png.
walletAddress in body. Only the template author can delete. Sets status to deleted.
Users
{ walletAddress: string }. Creates user on first connect, updates lastSeen on repeat visits.Transactions
txSignature, buyerWallet, templateId, totalSolSent, and USD amounts.{ stats: { totalSales, totalEarnings, totalSolEarned } } for the given creator wallet.Webhooks
Get notified in real time when a sale occurs. iFrame can POST to your endpoint on every transaction.
/transactions/:wallet?type=sales for new sales.
Planned Payload
{
"event": "template.sold",
"templateId": "abc123",
"templateName": "Startup Landing Page",
"buyerWallet": "7xKq...mN3p",
"creatorAmtUsd": 16.00,
"txSignature": "5r8m...Kp2n",
"timestamp": "2026-03-14T10:00:00.000Z"
}
FAQ
Answers to the most common questions about iFrame.
General
Do I need a crypto wallet to buy templates?
Yes — iFrame uses Solana as its payment layer. You'll need a Solana wallet like Phantom with some SOL to make purchases. Templates cost $20 USD worth of SOL.
Can I use purchased templates in client work?
Yes. The license is perpetual and commercial-use is allowed. You can use purchased templates in as many client projects as you like. You cannot resell the raw files as templates.
What file types are supported?
HTML, CSS, and JavaScript only. No server-side code, no PHP, no databases. Templates must run entirely in the browser.
Creators
How quickly do I receive payment?
Instantly. SOL lands in your wallet within seconds of the buyer confirming the transaction — typically under 2 seconds on Solana mainnet.
Can I update a template after publishing?
Not yet — template editing is on the roadmap. For now, delete and re-publish with the updated files.
Is there a limit on how many templates I can sell?
No limit. Publish as many templates as you want. Each listing is independent.
Technical
Where are templates stored?
HTML/CSS/JS files are stored as base64 in MongoDB Atlas. Preview images are hosted on Cloudinary CDN. Both are served globally with low latency.
Is the API rate limited?
Read endpoints are currently unthrottled. Write endpoints (POST template, POST transaction) have soft limits enforced at the Vercel serverless level — 30 requests/minute per IP.