Papertrade AI
Trade Papertrade BTC and ETH perps from Claude, ChatGPT, Codex, Cursor, Gemini CLI, VS Code and any MCP client.
Open-source Model Context Protocol server with live markets, wallet analytics, liquidation maps, and guarded trading through non-custodial session keys.
https://papertrade-ai.ninabrekkerese.workers.dev/mcp
One URL, OAuth 2.1, no API keys. Your wallet signs once to register a session key that can trade but cannot withdraw, and the server enforces the limits you choose: margin per trade, leverage, daily size, open positions and markets. Every trade is previewed and needs your confirmation.
What you can ask
- "What are BTC and ETH doing on Papertrade right now?"
- "Show me the Papertrade liquidation map for ETH."
- "Who are the top 10 Papertrade traders this week? What are they holding?"
- "Analyze wallet 0x...: win rate, biggest trade, equity curve."
- "If I long BTC with $20 at 500x, where is my liquidation price?"
- "Preview a $15 ETH short at 800x, then open it if I confirm."
- "Close all my BTC positions."
On clients with MCP Apps support (Claude, ChatGPT, VS Code, Goose) results render as an interactive trading card with a live chart.
Install
| Client | Install |
|---|---|
| Claude (web, desktop, mobile) | Settings, Connectors, Add custom connector, paste https://papertrade-ai.ninabrekkerese.workers.dev/mcp. Guide |
| Claude Code | /plugin marketplace add nirholas/papertrade-ai then /plugin install papertrade-ai@papertrade-ai, or claude mcp add --transport http papertrade https://papertrade-ai.ninabrekkerese.workers.dev/mcp Guide |
| ChatGPT | Settings, Apps, Advanced settings, Developer mode, Create app, paste the URL, OAuth. Guide |
| OpenAI Codex | codex mcp add papertrade --url https://papertrade-ai.ninabrekkerese.workers.dev/mcp then codex mcp login papertrade Guide |
| Cursor | One-click install Guide |
| VS Code (Copilot) | One-click install or code --add-mcp '{"name":"papertrade","type":"http","url":"https://papertrade-ai.ninabrekkerese.workers.dev/mcp"}' |
Local (stdio)
{
"mcpServers": {
"papertrade": { "command": "npx", "args": ["-y", "papertrade-ai"] }
}
}
Run npx -y papertrade-ai login once to connect a wallet in your browser. Credentials stay in ~/.config/papertrade-ai (mode 0600). CLI guide
Tools
| Tool | Access | What it does |
|---|---|---|
get_markets | public | Live Papertrade perp markets (BTC, ETH): Hyperliquid mark/bid/ask, 24h change, Papertrade 24h volume, open interest vs caps, max leverage, minimum trade size and whether each market is open. |
get_price_chart | public | OHLCV candles for BTC or ETH from Hyperliquid (the price source Papertrade settles against), with range stats and a TradingView link. |
get_protocol_stats | public | Papertrade protocol analytics: TVL, margin, LP, lifetime volume, open positions, fees, PAPER supply and staking, plus daily history (volume, trader PnL, liquidations, users). |
get_liquidation_map | public | Where open Papertrade positions get liquidated: notional and position count of longs and shorts by price bucket around the current price, with the largest clusters. |
get_leaderboard | public | Papertrade trader leaderboard for a time window, sortable by PnL, volume, balance and more. |
get_top_trades | public | The most profitable individual Papertrade positions in a window: who, market, side, leverage, entry, exit and PnL. |
get_recent_trades | public | The latest opens, closes and liquidations across all of Papertrade, optionally filtered by market or wallet. |
get_account | public | A Papertrade account: free balance, locked margin, equity, every open position with live estimated PnL, bust price and distance to liquidation, pending intents, session keys and lifetime stats. |
get_trade_history | public | Closed and liquidated positions for a wallet, newest first, with entry, exit, settled PnL, fees and PAPER minted. |
get_portfolio_history | public | Equity curve for a wallet over 1h, 1d, 1w or all time. |
calculate_position | public | Pure math for a hypothetical position: bust price, liquidation distance and settled PnL at a target exit, using the exchange formula (win curve, deadband, 2% win fee). |
get_deposit_info | public | How to fund a Papertrade account: the wallet's personal deposit proxy address (USDC on HyperCore spot), minimums, the activation fee, and the wallet's current HyperEVM USDC/HYPE balances. |
Full inputs and annotations: Tool reference. Public tools also work over plain HTTPS:
curl https://papertrade-ai.ninabrekkerese.workers.dev/api/v1/tools/get_markets
curl "https://papertrade-ai.ninabrekkerese.workers.dev/api/v1/tools/get_liquidation_map?market=ETH"
OpenAPI 3.1 at /openapi.json, ready for GPT Actions and agent frameworks. Unauthenticated MCP for read-only agents: https://papertrade-ai.ninabrekkerese.workers.dev/public/mcp.
Security
- Non-custodial. Your wallet signs one EIP-712
RegisterSessionKeymessage, the same one the official Papertrade app signs for one-click trading. The session key is scoped by the exchange contract to open, close and cancel. It cannot withdraw or transfer. - Guardrails in code, not in the prompt. Margin per trade, leverage, rolling 24h position size, open positions and markets are checked on the server before any intent is signed.
- Preview, then confirm.
open_positionneeds a signed quote frompreview_tradefor the identical trade, valid for 3 minutes. - Encrypted per app. Each app's session key is encrypted with a key derived from that app's own access token.
- Revoke in one click at /account.
Read the full security model. Report vulnerabilities privately: SECURITY.md.
Develop and self-host
git clone https://github.com/nirholas/papertrade-ai && cd papertrade-ai
npm install
npm test # unit tests
npm run dev # local Worker on http://127.0.0.1:8787
Deploy your own copy to Cloudflare Workers with one KV namespace and one secret: Self-hosting. The package also exports the tool registry, policy engine and intent signing for use in your own agent: import { TOOLS, runTool } from 'papertrade-ai'.
| Path | What |
|---|---|
src/tools/registry.ts | Every tool: schema, annotations, implementation |
src/core/ | Papertrade API client, EIP-712 intents, bust price math |
src/worker/ | Cloudflare Worker: OAuth provider, MCP, REST, pages |
src/cli.ts | stdio server and login CLI |
src/web/ | MCP Apps widget, connect and account pages |
docs/ | Documentation (rendered to the website) |
scripts/build-site.mjs | Website, llms.txt, sitemap, discovery files, manifests |
Risk
Papertrade positions use real USDC. At 1000x leverage a 0.1% move against you liquidates the position and the full margin is lost. Papertrade AI is independent open-source software, not affiliated with Papertrade, and not financial advice.
License
Support the project
If papertrade-ai saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Built for AI agents too
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/papertrade-ai and it has the context it needs.
More from the same author
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion
