three.ws Vanity
io.github.nirholas/vanity-mcp · 231 stars · JavaScript · Apache-2.0
MCP server Read the three.ws vanity-address market: quote difficulty + USDC price, browse the board.
Install
The repo has no one-line install. Follow its README.
Published as
- npm
@three-ws/vanity-mcpstdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
THREE_WS_BASEOptional | Env var | Base URL of the three.ws API that serves /api/vanity. Override only when self-hosting or targeting a preview deployment. |
THREE_WS_TIMEOUT_MSOptional | Env var | Per-request timeout in milliseconds. All endpoints are reads, so the default is brisk with headroom for a cold cache. |
Files
@three-ws/vanity-mcp
Read the three.ws vanity-address grind-bounty market + rarity gallery from any AI agent.
A Model Context Protocol server that gives any AI assistant the read/discovery surface of the three.ws vanity-address grind-bounty market over stdio. Quote how hard a Solana vanity pattern is and what to escrow for it, appraise the rarity of any address, and browse the live bounty board, claimable queue, stats, leaderboard, config, and the proof-of-grind gallery.
The market is secret-blind: a requester escrows a USDC bounty for a pattern, a fleet of independent workers grinds it in parallel, and the first to submit a verified key matching the pattern is paid on-chain — yet the found secret is sealed to the requester, so the worker earns the bounty without ever seeing the wallet. Posting a bounty and claiming one are the x402-paid write paths on the HTTP API; this MCP exposes the read/discovery + rarity surface. No API key, no signer, no payment — every call hits the public /api/vanity endpoints.
Install
npm install @three-ws/vanity-mcp
Or run with npx (no install):
npx @three-ws/vanity-mcp
Quick start
Claude Code, one line:
claude mcp add vanity -- npx -y @three-ws/vanity-mcp
Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):
{
"mcpServers": {
"vanity": {
"command": "npx",
"args": ["-y", "@three-ws/vanity-mcp"]
}
}
}
Inspect the surface with the MCP Inspector:
npx -y @modelcontextprotocol/inspector npx @three-ws/vanity-mcp
Tools
| Tool | Type | What it does |
|---|---|---|
vanity_quote |
read-only | Price a pattern: expected attempts, rarity tier, and an honest suggested USDC bounty. Idempotent. |
vanity_appraise |
read-only | Appraise any Solana address's rarity (pattern, score, bits, tier, attempts). Idempotent. |
vanity_board |
read-only | Browse the grind-bounty board — filter by status, sort by recency/reward/expiry, paginate. |
vanity_open |
read-only | List the claimable open-bounty queue workers poll. |
vanity_stats |
read-only | Live market totals: open count, USDC escrowed, USDC paid out. |
vanity_leaderboard |
read-only | Top grinders ranked by total USDC earned. |
vanity_config |
read-only | Payout availability + asset/network metadata (settlement asset, decimals, networks, pricing band). |
vanity_gallery |
read-only | Browse the proof-of-grind rarity gallery — sort, filter by tier/length/substring, paginate. |
vanity_quote and vanity_appraise are pure functions of their input (same pattern/address → same result), so they're marked idempotent. The other six read the live market and gallery.
Input parameters
vanity_quote — prefix (optional Base58 prefix), suffix (optional Base58 suffix), ignoreCase (bool, default false). At least one of prefix/suffix is required.
vanity_appraise — address (required, Base58 32–44 chars), prefixLen (int, optional), suffixLen (int, optional).
vanity_board — status (open | all | settled, default open), sort (recency | reward | expiry, default recency), limit (1–100, default 24), offset (default 0).
vanity_open — limit (1–100, default 30).
vanity_stats — no params.
vanity_leaderboard — limit (1–100, default 10).
vanity_config — no params.
vanity_gallery — sort (score | recency, default score), tier (string), minLength (int), contains (string), limit (1–100, default 24), offset (default 0).
Example
// vanity_quote
> { "prefix": "THREE" }
{
"ok": true,
"pattern": { "prefix": "THREE", "suffix": null, "ignoreCase": false },
"difficulty": {
"expectedAttempts": 11308763834,
"rarityBits": 39,
"tier": "mythic",
"tierLabel": "Mythic",
"accent": "#ff5db1",
"expectedGrindSeconds": 7539
},
"oracle": {
"floorAtomics": 50000,
"suggestedAtomics": 2094216,
"generousAtomics": 5235540,
"maxAtomics": 5000000000,
"expectedAttempts": 11308763834,
"expectedGrindSeconds": 7539,
"model": "58^effectiveLength @ refRate"
},
"band": { "floorAtomics": 50000, "maxAtomics": 5000000000, "decimals": 6, "asset": "USDC" }
}
Examples
Runnable examples live in examples/:
node examples/list-tools.mjs # every tool with its full input schema node examples/quote-and-appraise.mjs # config + quote + appraise + stats, live
Both spawn this server over stdio and read the live market. Every tool here is
read-only, so nothing can be posted, claimed, or paid. See
examples/README.md for expected output.
Requirements
- Node.js >= 20.
- Network access to
https://three.ws(or your ownTHREE_WS_BASE).
Environment variables
| Variable | Required | Default |
|---|---|---|
THREE_WS_BASE |
no | https://three.ws |
THREE_WS_TIMEOUT_MS |
no | 20000 |
Links
- Homepage: https://three.ws
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0, see LICENSE
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 231
- License
- Apache-2.0
- Language
- JavaScript
- Last push
- 2026-10-12
- Forks
- 63
- MCP Registry
- io.github.nirholas/vanity-mcp
- Homepage
- three.ws
- Topics
- animation, avatar, gltf, llm, mcp, webgl, 3d-generation, ai-agents, digital-human, generative-ai, glb, image-to-3d, mcp-server, model-context-protocol, solana, text-to-3d, threejs, web-components, webxr, x402
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k