TOOLS

Provider Control Plane

Inspect registry routing, set provider API keys, and test quote or price operations while seeing exactly which provider is selected.

Human Flow

Registry visibility, API-key persistence, and operation-level provider testing.

state: idle

Provider Registry

Loaded:

Load providers to view swap, bridge, and price registry groups.

Set API Key

masked preview:

Save writes to local SDK config: ~/.money/config.json.

Test Operation

Run a test to inspect provider auto-selection and execution output.

Agent Flow

SDK provider controls with copy-ready snippets and testable examples.

List Providers

SDK method
CALLmoney.providers
- Registry is grouped by provider type (swap, bridge, price).
- Auto-routing uses chain and network compatibility from this registry.
# SDK method (no HTTP endpoint)
# Use JavaScript snippet instead.
Example success response
{
  "swap": [
    {
      "name": "jupiter",
      "chains": [
        "solana"
      ]
    }
  ],
  "bridge": [
    {
      "name": "debridge",
      "chains": [
        "ethereum",
        "base",
        "solana"
      ],
      "networks": [
        "mainnet"
      ]
    }
  ],
  "price": [
    {
      "name": "dexscreener",
      "chains": [
        "ethereum",
        "base",
        "solana"
      ]
    }
  ]
}
Example failure responses
Failure
{
  "code": "INTERNAL_ERROR",
  "message": "Failed to read provider registry."
}
Recovery: Check server logs and provider registration order in sdk/src/index.ts.

Set API Key

SDK method
CALLmoney.setApiKey
- API key is stored in ~/.money/config.json under apiKeys[provider].
# SDK method (no HTTP endpoint)
# Use JavaScript snippet instead.
Example success response
{
  "provider": "jupiter",
  "saved": true,
  "maskedApiKey": "yo****ey",
  "savedAt": "2026-03-05T14:35:35.157Z"
}
Example failure responses
Failure
{
  "code": "INVALID_PARAMS",
  "message": "Missing required param: apiKey"
}
Recovery: Pass a non-empty apiKey string.
Failure
{
  "code": "INVALID_PARAMS",
  "message": "Missing required param: provider"
}
Recovery: Use a registered provider name like "jupiter".

Test Quote Provider Selection

SDK method
CALLmoney.quote
- Selected provider is returned even if execution fails.
- Quote tests are provider + wallet setup sensitive.
# SDK method (no HTTP endpoint)
# Use JavaScript snippet instead.
Example success response
{
  "operation": "quote",
  "request": {
    "operation": "quote",
    "chain": "solana",
    "from": "SOL",
    "to": "USDC",
    "amount": "1",
    "network": "mainnet",
    "slippageBps": 50,
    "provider": "jupiter"
  },
  "selectedProvider": {
    "name": "jupiter",
    "chains": [
      "solana"
    ]
  },
  "result": {
    "fromToken": "SOL",
    "toToken": "USDC",
    "fromAmount": "1",
    "toAmount": "2450.12",
    "rate": "1 SOL = 2450.12 USDC",
    "priceImpact": "0.31",
    "provider": "jupiter",
    "chain": "solana",
    "network": "mainnet",
    "note": ""
  },
  "execution": {
    "ok": true,
    "at": "2026-03-05T14:35:35.156Z"
  }
}
Example failure responses
Failure
{
  "code": "CHAIN_NOT_CONFIGURED",
  "message": "Chain \"solana\" is not configured for mainnet."
}
Recovery: Run setup first: await money.setup({ chain: "solana", network: "mainnet" })
Failure
{
  "code": "UNSUPPORTED_OPERATION",
  "message": "Swap/quote requires mainnet. Testnet DEXes have no liquidity."
}
Recovery: Use network: "mainnet" for quote tests.