{"slug": "i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any", "title": "I Found an Undocumented MCP Server on OpenSea — and It Leaked Usernames for Any Wallet", "summary": "A security researcher discovered an undocumented MCP server at mcp.opensea.io/mcp that exposed an unauthenticated tool, get_instant_api_key, allowing anyone to mint a valid OpenSea API key and then resolve Ethereum addresses with OpenSea profiles to their owners' usernames. The researcher reported the username-enumeration issue to OpenSea's Bugcrowd program, where it is in triage, and noted that sensitive tools like cancel_orders correctly enforced wallet JWT scopes. The finder published a free pay-what-you-want recon kit documenting the methodology.", "body_md": "**TL;DR:** OpenSea runs an undocumented MCP server at `mcp.opensea.io/mcp`. One of its tools hands out API keys to anyone who asks, and another lets you resolve any Ethereum address *with an OpenSea profile* to its owner's username. Reported to Bugcrowd, now sharing the story and a free recon kit.\n\nI was poking around OpenSea's tooling one afternoon — just trying to understand how some of their internal features worked. Nothing fancy, no scanners, no brute force. Just curiosity and a browser.\n\nThat's when I stumbled onto something that wasn't meant for public eyes: an undocumented MCP server sitting at `mcp.opensea.io/mcp`.\n\nAt first glance it looked like just another internal API. But one particular tool caught my attention: `get_instant_api_key`.\n\nTurns out, that little endpoint was an unintended exposure of something far more valuable. By sending a straightforward POST request to `https://api.opensea.io/api/v2/auth/keys`, I could pull a valid API key straight out of the server. No authentication hoops — just a direct line to a credential that should have stayed hidden.\n\nWith that key in hand, I called the `get_profile` tool and, suddenly, I could look up a username for any Ethereum address with an OpenSea profile. I tested it on my own wallet, then on a well-known one. Both resolved instantly.\n\nIt felt like finding a master key to a building you weren't supposed to enter.\n\nInformation disclosure like this isn't just a curiosity — it's a goldmine for attackers. Enumerating usernames might seem harmless, but it's often the first step in mapping out a target's footprint:\n\nFor NFT holders, that's a real privacy concern. Your wallet is supposed to be pseudonymous — this tool quietly erases that.\n\nTo be fair, not everything on that server was exposed. The sensitive tools — like `cancel_orders` — properly required a wallet JWT with `write:orders` scope. Trying to call them without it returned a clean `MISSING_SCOPE` error.\n\nSo the architecture is sound. The gap was in the *discovery* layer: a handful of tools were reachable with just an API key that anyone could mint.\n\nI reported this to OpenSea's Bugcrowd program with a full write-up and PoC. It's now in their triage queue (self-assessed as P4 informational — username enumeration; official severity pending triage).\n\n**If you're a security researcher:** don't go poking at this yourself. It's been reported, and testing live systems without authorization is both against program rules and a great way to get banned.\n\nI turned the whole investigation into a free PDF — **the OpenSea MCP Server Recon Kit** — with the methodology, the tools I enumerated, and the lessons learned. It's pay-what-you-want (free, $0 minimum), and it's the same playbook I use when auditing any undocumented API surface. The kit contains methodology only — no exploit code:\n\nUndocumented internal APIs are everywhere. They're often overlooked during security reviews, yet they can leak exactly the kind of secrets — like API keys — that turn a minor misconfiguration into a real problem.\n\nThe next time you're auditing a target, ask yourself: *what endpoints exist that nobody documented?* That's where the interesting stuff hides.\n\n*This technique was reported to Bugcrowd and is shared here for educational purposes only.*\n\n*Found this useful? Follow me for more bug bounty write-ups and recon methodology.*", "url": "https://wpnews.pro/news/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any", "canonical_source": "https://dev.to/tinycoder-studio/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any-wallet-5935", "published_at": "2026-09-12 23:52:09+00:00", "updated_at": "2026-09-13 00:25:39.266174+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products"], "entities": ["OpenSea", "Bugcrowd", "MCP", "Ethereum"], "alternates": {"html": "https://wpnews.pro/news/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any", "markdown": "https://wpnews.pro/news/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any.md", "text": "https://wpnews.pro/news/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any.txt", "jsonld": "https://wpnews.pro/news/i-found-an-undocumented-mcp-server-on-opensea-and-it-leaked-usernames-for-any.jsonld"}}