mcpField
T
three.ws Vanity

three.ws Vanity

Local
three.wsFinance255Updated today

About three.ws Vanity

three.ws Vanity is an MCP server for reading the Solana vanity-address grind-bounty market and rarity gallery. It estimates the difficulty and a suggested USDC bounty for a pattern, and browses the bounty board and leaderboard. Every tool is read-only and needs no API key or signer.

Key features

  1. 01Estimate difficulty and suggested bounty for a pattern
  2. 02Appraise rarity of any Solana address
  3. 03Browse bounty board with status and sort filters
  4. 04View market stats, leaderboard and proof-of-grind gallery

Use cases

  1. 01Estimate the USDC amount before posting a bounty
  2. 02Check the rarity score and tier of an address
  3. 03Review open bounties and top grinders

MCP support

This project is an MCP server that gives MCP clients read-only access to the vanity-address bounty market.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"nirholas-vanity": {
"command": "npx",
"args": [
"-y",
"@three-ws/vanity-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>"
}
}
}
}
Run commandnpx -y @three-ws/vanity-mcp
Environment variables to set
THREE_WS_BASEBase URL of the three.ws API that serves /api/vanity. Override only when self-hosting or targeting a preview deployment.
THREE_WS_TIMEOUT_MSPer-request timeout in milliseconds. All endpoints are reads, so the default is brisk with headroom for a cold cache.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@three-ws/vanity-mcp0.1.3

Tools

8

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
prefixstringNoBase58 prefix the address must start with (e.g. "THREE").
suffixstringNoBase58 suffix the address must end with.
ignoreCasebooleanNoMatch the pattern case-insensitively (cheaper, less rare). Default false.

Details

From the project README

three.ws

@three-ws/vanity-mcp

Read the three.ws vanity-address grind-bounty market + rarity gallery from any AI agent.

npm license node MCP Registry three.ws


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

ToolTypeWhat it does
vanity_quoteread-onlyPrice a pattern: expected attempts, rarity tier, and an honest suggested USDC bounty. Idempotent.
vanity_appraiseread-onlyAppraise any Solana address's rarity (pattern, score, bits, tier, attempts). Idempotent.
vanity_boardread-onlyBrowse the grind-bounty board — filter by status, sort by recency/reward/expiry, paginate.
vanity_openread-onlyList the claimable open-bounty queue workers poll.
vanity_statsread-onlyLive market totals: open count, USDC escrowed, USDC paid out.
vanity_leaderboardread-onlyTop grinders ranked by total USDC earned.
vanity_configread-onlyPayout availability + asset/network metadata (settlement asset, decimals, networks, pricing band).
vanity_galleryread-onlyBrowse 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 own THREE_WS_BASE).
Environment variables
VariableRequiredDefault
THREE_WS_BASEnohttps://three.ws
THREE_WS_TIMEOUT_MSno20000

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.