Plug in your AI in two minutes
One URL for Claude and ChatGPT. One small block for Cursor and Claude Desktop. Everything below uses the access key the app gives you.
Quickstart
Open the app
Connect MetaMask, Rabby, Coinbase Wallet or any WalletConnect wallet.
Create access
Pick your limits, then sign once to put them in a policy on your smart account. It costs one network fee.
Copy your URL
Your personal MCP URL and key appear once. Paste them into your assistant.
Ask
Try: What is trending on Pons? Writes show up in the app for you to sign.
Setup by assistant
# Name Pluqo # Remote MCP server URL (from the app) https://mcp.pluqo.xyz/u/YOUR-ID
Steps
- Open Settings, then Connectors, then Add custom connector.
- Paste your URL and sign in with your wallet. No Pluqo account.
- In a chat, open the + menu and switch Pluqo on.
On Team and Enterprise plans an owner adds connectors for everyone. Menu names can differ by plan.
{
"mcpServers": {
"pluqo": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://mcp.pluqo.xyz/u/YOUR-ID",
"--header", "Authorization:Bearer ${PLUQO_KEY}"],
"env": { "PLUQO_KEY": "YOUR-KEY" }
}
}
}Steps
- Easiest: add Pluqo under Settings, Connectors, exactly as on Claude.ai.
- Prefer a config file? Open Settings, Developer, Edit Config and paste the block. It needs Node.js for mcp-remote.
- Quit Claude Desktop completely and open it again.
# Server URL https://mcp.pluqo.xyz/u/YOUR-ID # Authentication OAuth
Steps
- Open Settings, then Connectors (Apps and Connectors on some plans), and add a custom connector.
- Paste your URL and sign in with your wallet. No Pluqo account.
- Turn Pluqo on in a chat.
Which ChatGPT plans allow write actions changes often. Check OpenAI's help center for yours.
{
"mcpServers": {
"pluqo": {
"url": "https://mcp.pluqo.xyz/u/YOUR-ID",
"headers": { "Authorization": "Bearer YOUR-KEY" }
}
}
}Steps
- Create ~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one.
- Paste the block and save.
- Switch Pluqo on in Cursor's MCP settings.
# any MCP client works; names vary by SDK version async with connect("https://mcp.pluqo.xyz/u/YOUR-ID", token=os.environ["PLUQO_KEY"]) as pluqo: tools = await pluqo.list_tools() quote = await pluqo.call_tool("swap_quote", { "from": "ETH", "to": "GLUB", "amount": "0.1"})
Steps
- Store your access key as PLUQO_KEY.
- Connect to your URL with any MCP client.
- Show every write to a person. The policy will reject unsigned ones anyway.
What is MCP, in plain words?
MCP (Model Context Protocol) is a universal plug for AI assistants. On its own, your assistant can only talk. MCP gives it sockets for tools: a calendar, a database or, with Pluqo, a wallet on Robinhood Chain. You choose which tools it gets, and you approve what it does with them.
Tool reference
17 MCP tools behind the eight capabilities: 13 read tools and 4 write tools. Read tools answer right away. Write tools return a request that waits for your signature.
| Tool | Does | Main inputs | Signature |
|---|---|---|---|
| swap_quote | Best route and price for a swap | from, to, amount | No |
| swap_execute | Sends a quoted swap for approval | quote_id | Yes |
| launch_trending | Trending tokens on Pons and Pools.trade | window, min_volume | No |
| token_info | Supply, holders count, liquidity and age of a token | address | No |
| token_holders | Top holders and how concentrated supply is | address, limit | No |
| launch_preview | Drafts a token launch | name, ticker, image, launchpad | No |
| launch_deploy | Sends a launch for approval | preview_id | Yes |
| nft_prepare | Builds collection metadata | images, name, royalty | No |
| nft_mint | Sends a mint for approval | prepare_id | Yes |
| watch_add | Alerts on a wallet's activity | address, rule | No |
| wallet_activity | Recent transfers and swaps of a watched wallet | address, since | No |
| portfolio_read | Balances, positions, 24h change | address | No |
| wallet_history | Your own history in plain words | address, range | No |
| bridge_quote | Routes from Ethereum with time and fees | amount, route | No |
| bridge_execute | Sends a bridge for approval | quote_id | Yes |
| bridge_status | Where a bridge transfer is right now | bridge_id | No |
| contract_scan | Safety Guard check of any contract | address | No |
How the policy decides
The rules the module applies at validation. The code is public.
- What counts toward a cap
- Value leaving your account in one operation: ETH sent plus the ETH value of tokens sold, bridged or approved for spending. Gas does not count.
- How tokens are priced
- An onchain price feed where one exists, otherwise a 30 minute DEX TWAP. A token with no price at all needs a per-token allowance you sign, for example "up to 1,000,000 of this token a day". Without one, it can't leave your account.
- When the day resets
- It doesn't. The daily cap is a rolling 24 hour window, so there is no midnight to game.
- Why two signatures
- The session key says which assistant asked, so per-assistant tool rules, expiry and revocation apply. Your owner key says you approved. The module needs both, so neither a leaked key nor a single tricked click is enough on its own to go past your rules.
- Can my owner key skip the module?
- No. Your account is a smart account, and the module is its validator. A transaction signed only by your owner key still goes through the module, so the caps apply to you too. To move more than a cap allows, you raise the cap or start an exit, and both wait 24 hours. The delay is counted onchain by the module, not by our server.
- Removing the module
- Uninstalling or replacing the module is itself a loosening, so it waits the same 24 hours and shows in the app with a Cancel button the whole time.
- Price manipulation
- A 30 minute TWAP is slow to move, and the module also rejects a trade when the TWAP and the price feed disagree by more than 5%. A token with no price uses your per-token allowance instead.
- Blocked tokens
- Stored by contract address, never by ticker, because tickers can be copied.
- How assistants sign in
- Claude and ChatGPT connect with OAuth: you sign in with your wallet, no Pluqo account. Claude Desktop, Cursor and your own agents use the access key. Your URL is not a secret, your key is. Rotating the key cuts off key-based assistants; OAuth ones are revoked one by one in the app.
- Changing the rules
- Lowering a cap, blocking a token or pausing applies at once. Anything that loosens a rule waits 24 hours and shows in the app until then: raising a cap, unblocking a token, turning a tool on, Guard to warn only, a longer key expiry, removing the module.
{
"error": "LIMIT_EXCEEDED",
"message": "Over your daily cap: 0.27 ETH left, 0.40 ETH asked",
"cap": { "window": "24h rolling", "limit_eth": "0.5", "left_eth": "0.27" },
"chain_id": 46630,
"user_op_hash": "0x4be1...9a07"
}- v1.0: policy module and smart accounts on Robinhood Chain mainnet (chain 4663). All 17 tools live.
- v0.9: Wallet Watch alerts, per-token allowances for unpriced tokens.
- v0.8: ChatGPT connector, OAuth sign in with your wallet.
- v0.7: bridge out, NFT mints, token launches through the policy module.
When something is refused
| Code | Means | What to do |
|---|---|---|
| LIMIT_EXCEEDED | Over your per transaction or daily cap | Ask for less, or raise the cap in the app and sign. Raises take effect after 24 hours |
| TOOL_BLOCKED | That tool is off for this assistant | Turn it on under Limits. Turning a tool on waits 24 hours |
| GUARD_BLOCKED | Safety Guard rated the contract high risk | Read the flags. Switching Guard to warn only waits 24 hours |
| BLOCKLISTED | The token is on your never-trade list | Remove its address under Limits and sign. Removal waits 24 hours |
| PAUSED | You paused all access | Resume in Settings |
| KEY_EXPIRED | The session key reached its end date | Create a new key in the app |