{
  "schema_version": "1.0",
  "name": "MultiHopper",
  "display_name": "MultiHopper — Programmable Onchain Routing",
  "description": "Permissionless, non-custodial programmable routing infrastructure for AI agents and developers moving digital assets onchain. Configurable timing entropy, programmable hop count control, composable routing parameters, and regulatory-ready onchain abstraction on Solana. Privacy in the open — not a mixer, not a tumbler, no commingling.",
  "version": "1.0.0",
  "homepage": "https://www.multihopper.com",
  "documentation": "https://www.multihopper.com/developers",
  "openapi_spec": "https://www.multihopper.com/openapi.json",
  "llms_txt": "https://www.multihopper.com/llms.txt",
  "contact": {
    "url": "https://www.multihopper.com/developers",
    "x": "https://x.com/multihopper"
  },
  "provider": {
    "name": "MultiHopper",
    "url": "https://www.multihopper.com",
    "logo": "https://www.multihopper.com/logo.png"
  },
  "categories": [
    "payments",
    "blockchain",
    "defi",
    "solana",
    "routing",
    "ai-agents",
    "fintech"
  ],
  "tags": [
    "solana",
    "onchain-routing",
    "ai-agent-payments",
    "programmable-routing",
    "timing-entropy",
    "hop-count",
    "non-custodial",
    "permissionless",
    "compliance",
    "kyc-aml",
    "machine-to-machine",
    "treasury-automation"
  ],
  "capabilities": {
    "tools": true,
    "resources": false,
    "prompts": false,
    "sampling": false
  },
  "tools": [
    {
      "name": "initiate_route",
      "description": "Initiate a programmable multi-hop onchain transfer on Solana. Specify source, destination, amount, timing window (min/max seconds), and hop count (exact or min/max range). MultiHopper randomises delivery within the timing window and executes the route non-custodially.",
      "endpoint": "POST https://api.multihopper.com/v1/route",
      "auth_required": true,
      "parameters": {
        "source_address": "Solana wallet address of the sender",
        "destination_address": "Solana wallet address of the recipient",
        "amount": "Amount in lamports (SOL) or token base units",
        "token_mint": "SPL token mint address (omit for native SOL)",
        "timing_window_min": "Minimum delivery time in seconds",
        "timing_window_max": "Maximum delivery time in seconds",
        "hop_count": "Exact hop count (use instead of min/max for fixed routing)",
        "hop_count_min": "Minimum hop count for randomised range",
        "hop_count_max": "Maximum hop count for randomised range",
        "webhook_url": "Optional URL to receive lifecycle webhook events"
      }
    },
    {
      "name": "get_route_status",
      "description": "Get the current status and details of a transfer by its route ID. Returns status (initiated, in_progress, completed, failed), hop details, timing, and any compliance flags.",
      "endpoint": "GET https://api.multihopper.com/v1/route/{id}",
      "auth_required": true,
      "parameters": {
        "id": "Route ID returned by initiate_route"
      }
    },
    {
      "name": "estimate_route",
      "description": "Estimate fees, timing, and hop details for a route before execution. Use this to preview costs and confirm routing parameters without committing funds.",
      "endpoint": "POST https://api.multihopper.com/v1/route/estimate",
      "auth_required": true,
      "parameters": {
        "source_address": "Solana wallet address of the sender",
        "destination_address": "Solana wallet address of the recipient",
        "amount": "Amount in lamports or token base units",
        "token_mint": "SPL token mint address (omit for native SOL)",
        "timing_window_min": "Minimum delivery time in seconds",
        "timing_window_max": "Maximum delivery time in seconds",
        "hop_count_min": "Minimum hop count",
        "hop_count_max": "Maximum hop count"
      }
    },
    {
      "name": "get_wallet_pool",
      "description": "Query the active routing wallet pool — the 500 busiest Solana wallets, smart contracts, and cold storage addresses used as transit hops. Useful for understanding routing surface and compliance coverage.",
      "endpoint": "GET https://api.multihopper.com/v1/wallets/pool",
      "auth_required": true,
      "parameters": {}
    }
  ],
  "authentication": {
    "type": "bearer",
    "description": "API key issued upon whitelist approval. Include as: Authorization: Bearer <api_key>",
    "signup_url": "https://www.multihopper.com/developers"
  },
  "access": {
    "type": "whitelist",
    "description": "MultiHopper is in controlled early access. Register at https://www.multihopper.com/developers to join the whitelist. API keys, sandbox credentials, and SDK access issued upon approval.",
    "sandbox_available": true,
    "sandbox_base_url": "https://sandbox.multihopper.com/v1"
  },
  "networks": [
    {
      "name": "Solana",
      "chain_id": "mainnet-beta",
      "status": "live"
    },
    {
      "name": "Solana",
      "chain_id": "devnet",
      "status": "sandbox"
    }
  ],
  "compliance": {
    "kyc_aml": true,
    "description": "Built-in KYC/AML compliance checks on every wallet in the route. No separate compliance vendor required. MultiHopper checks for tainting and poisoning at every hop.",
    "custodial": false,
    "commingling": false
  },
  "revenue_sharing": {
    "available": true,
    "split": "50/50",
    "description": "Qualifying integration partners share 50/50 in fees generated through their integration."
  },
  "registry_listings": [
    "https://smithery.ai",
    "https://github.com/modelcontextprotocol/registry",
    "https://mcpmarket.com"
  ],
  "compatible_frameworks": [
    "Claude Desktop",
    "Cursor",
    "VS Code",
    "Windsurf",
    "LangChain",
    "LangGraph",
    "CrewAI",
    "AutoGen",
    "OpenAI Agents SDK",
    "Semantic Kernel"
  ],
  "last_updated": "2026-04-12"
}
