Spaces:
Running
title: RenderGate
emoji: π
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
RenderGate
Pay-per-render headless browser API, powered by x402 micropayments on Stellar.
Live service: https://tantk-rendergate.hf.space
Why Agents Need This
Most AI agents are just HTTP clients β they call fetch() or curl and that's it. No browser engine, no JavaScript execution. When they hit a modern website, they get an empty HTML shell back.
This affects every major agent framework:
- Claude Code β
WebFetchis HTTP GET only, no JS rendering - OpenAI Codex / GPT agents β HTTP-based tools
- LangChain / CrewAI agents β Python
requestslibrary - Trading bots / arb agents β lightweight scripts, no browser
- MCP-based agents β whatever tools they have, usually plain HTTP
Why can't agents just install a browser?
- Chromium is 500MB+ β too heavy for serverless, Lambda, or lightweight containers
- Needs system-level dependencies (
libnss3,libgbm, etc.) β not a simplenpm install - Each render uses 200-500MB RAM β agents on minimal infra can't afford this
- Browser management is complex β crashes, timeouts, memory leaks, concurrency
RenderGate: The agent pays $0.001 USDC and gets fully rendered content in one HTTP call. No browser install, no dependencies, no memory overhead. Heavy lifting happens on our infra. This is the x402 model β pay for compute you can't or don't want to run yourself.
How It Works
- Agent requests
GET /render?url=https://x.com/stellarorg - Server responds with 402 Payment Required + Stellar payment instructions
- Agent signs a $0.001 USDC payment on Stellar testnet
- Server verifies payment via x402 facilitator, settles on-chain (~5s)
- Playwright renders the page with smart wait + scroll for lazy content
- Agent receives fully rendered content with title, text, and metadata
The Problem
# Standard HTTP fetch on Twitter/X:
curl https://x.com/stellarorg
β Empty SPA shell. No tweets. No content.
# RenderGate ($0.001 USDC on Stellar):
β "Stellar @StellarOrg Β· 9,913 posts Β· 840K Followers"
β "Meridian is headed to Lisbon. October 28β29."
β "10 days until Stellar House. Who's joining us in CDMX?"
β Full tweets, engagement metrics, retweets, quoted content
Tested Sites
All tested against the live deployed service at tantk-rendergate.hf.space with real Stellar testnet payments. Every request is a verifiable on-chain transaction.
Social Media
| Site | Render Time | Result |
|---|---|---|
| x.com (Twitter profiles) | 8-11s | Full tweets, bios, follower counts, engagement metrics, retweets |
| linkedin.com (company pages) | 5.7s | Full profile, about, employees, locations |
| tiktok.com (profiles) | 5.4s | Profile metadata, follower counts (video content needs login) |
| instagram.com | 3.7s | Login wall only |
Crypto Exchanges
| Site | Render Time | Result |
|---|---|---|
| coinbase.com/price | 4.9s | Full price page, charts, market data (21K chars) |
| okx.com/price | 6.6s | Full price page, live data |
| kraken.com/prices | 7.5s | Full price page, history, about |
| binance.com/price | β | Blocked (bot protection) |
Crypto Analytics & Data
| Site | Render Time | Result |
|---|---|---|
| coingecko.com | 8.9s | Full token page, price, market cap, charts (37K chars) |
| coinmarketcap.com | 6.0s | Full token page, rankings, data |
| defillama.com | 3.6s | TVL, fees, revenue, protocol rankings |
| dexscreener.com | 5.7s | Live pair data β price, volume, liquidity, buy/sell ratio |
| solscan.io | 4.4s | Solana explorer, analytics |
| etherscan.io | β | Blocked (Cloudflare challenge) |
| nansen.ai | 3.7s | Landing page content |
| messari.io | β | Blocked (Vercel security checkpoint) |
Crypto News
| Site | Render Time | Result |
|---|---|---|
| cointelegraph.com | 4.2s | Headlines, prices, articles |
| decrypt.co | 4.0s | Full news feed, coin prices (14K chars) |
| blockworks.co | 7.4s | Analytics, prices, articles |
| theblock.co | 5.2s | News content (behind cookie wall) |
| medium.com (articles) | ~6s | Full articles (21K chars) β Cloudflare-blocked for normal fetch, works via RenderGate |
Stellar Ecosystem
| Site | Render Time | Result |
|---|---|---|
| stellar.expert | 4.5s | Block explorer, network stats |
| stellarchain.io | 4.7s | Explorer, price, assets |
| dashboard.stellar.org | 4.4s | Live network status, stats (6.5K chars) |
| meridian.stellar.org | 7.2s | Conference details β Lisbon 2026 |
| stellarterm.com | 5.3s | DEX trading interface |
| stellarx.com | 5.4s | DEX, markets |
| lobstr.co | 4.2s | Wallet landing, trade features |
| soroswap.finance | 3.7s | Soroban DEX aggregator content |
| freighter.app | 3.2s | Wallet download page |
| scopuly.com | 6.3s | Full wallet/DEX interface |
| lumenswap.io | 3.6s | DEX landing page |
DeFi Apps
| Site | Render Time | Result |
|---|---|---|
| app.uniswap.org | 7.3s | Live token prices, swap UI, TVL stats |
| aave.com | 3.4s | Full landing, product info |
| compound.finance | 3.1s | Market data, protocol stats |
| blur.io | 3.5s | NFT marketplace, collections, floor prices |
On-Chain Analytics
| Site | Render Time | Result |
|---|---|---|
| tokenterminal.com | 5.1s | Stellar project page, metrics |
| artemis.xyz | 5.1s | Full analytics platform (26K chars) |
| flipsidecrypto.xyz | 3.9s | Data platform landing |
Developer Tools
| Site | Render Time | Result |
|---|---|---|
| npmjs.com | 4.6s | Full package pages + README (Cloudflare-protected, works) |
| github.com (issues) | 6.3s | Full issue lists, content |
| dorahacks.io | 6.5s | Full SPA content β hackathon details, resources |
Blocked Sites
These sites block requests from data center IPs regardless of rendering β this is an IP reputation issue, not a rendering limitation.
| Site | Reason |
|---|---|
| reddit.com | IP banned from HF's data center |
| producthunt.com | Cloudflare challenge |
| binance.com | Bot protection |
| etherscan.io | Cloudflare challenge |
| messari.io | Vercel security checkpoint |
| instagram.com | Requires login |
| opensea.io | Cloudflare challenge | | dune.com | Cloudflare block | | alchemy.com | Blocked |
Example transaction: 5c898eb4...
Using the Service
Option 1: MCP Tool (Claude Code, Codex, any MCP-compatible agent)
Add to your MCP config (.mcp.json or Claude Code settings):
{
"mcpServers": {
"rendergate": {
"command": "node",
"args": ["/path/to/rendergate/mcp-server.js"],
"env": {
"STELLAR_PRIVATE_KEY": "S...your_testnet_secret_key...",
"RENDERGATE_URL": "https://tantk-rendergate.hf.space"
}
}
}
}
Then the agent can simply call render_page("https://x.com/stellarorg") β payment happens transparently.
Option 2: x402 Fetch (any Node.js agent)
import { wrapFetchWithPayment } from "@x402/fetch";
const paidFetch = wrapFetchWithPayment(fetch, x402Client);
const response = await paidFetch(
"https://tantk-rendergate.hf.space/render?url=https://x.com/stellarorg"
);
const data = await response.json();
// { title, description, headings, links, content, renderTimeMs, payment }
The agent just needs:
@x402/fetch+@x402/stellar(npm packages)- A Stellar wallet with USDC
- Our URL
Try It
demo-client.js is included to test the service end-to-end:
npm install
cp .env.example .env
# Add your Stellar testnet secret key (STELLAR_PRIVATE_KEY)
SERVER_URL=https://tantk-rendergate.hf.space node demo-client.js "https://x.com/stellarorg"
You'll need a Stellar testnet wallet funded with USDC β generate one at lab.stellar.org, fund it, add a USDC trustline, and get testnet USDC from faucet.circle.com.
API
GET / (free)
Returns service info and usage instructions.
GET /health (free)
Health check.
GET /render?url=<encoded_url> (paid β $0.001 USDC)
Renders the URL with a headless browser and returns structured output:
{
"title": "Stellar (@StellarOrg) / X",
"description": "Meta description from the page",
"headings": [{ "level": "H1", "text": "Stellar's posts" }],
"links": [{ "text": "stellar.org", "href": "https://stellar.org" }],
"content": "Full rendered text content...",
"url": "https://x.com/stellarorg",
"renderedAt": "2026-04-13T06:59:12.395Z",
"renderTimeMs": 8071,
"payment": { "price": "$0.001", "network": "stellar:testnet" }
}
If the page is blocked or empty, the payment is automatically refunded:
{
"title": "Just a moment...",
"content": "Cloudflare security verification...",
"refund": {
"transaction": "bf68b792...",
"amount": "0.001 USDC",
"reason": "blocked_page"
}
}
Architecture
Agent RenderGate Stellar
| | |
|--- GET /render?url= --->| |
|<-- 402 Payment Required -| |
| | |
|--- Sign USDC payment ---|------------------------->|
|--- GET + payment header->| |
| |--- verify via x402.org ->|
| |<-- settlement confirmed -|
| | |
| |--- Playwright render --->| (browser)
|<-- 200 + rendered JSON --| |
Tech Stack
- Payment: x402 protocol on Stellar (USDC testnet)
- Facilitator: x402.org (OpenZeppelin-based, sponsored fees)
- Rendering: Playwright with Chromium (smart wait + scroll)
- Server: Express.js
- Deployment: Hugging Face Spaces (Docker)
Built For
Stellar Hacks: Agents hackathon β exploring x402 micropayments for the agentic economy on Stellar.