Agent Margin Router

Fiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets. Returns rates, converted amounts and rate date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

DataLiveeip155:8453Exactvia wellknown:agent-margin-router-production.up.railway.app
FxCurrencyForexFinancex402
Settlements · 30d
11↓ 100%
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$0.14
Verified settled volume
11 settlements proven x402 by their on-chain EIP-3009 marker.
$0.0050
Listed price
As published in the catalog. Always read the live 402 before paying.
Calls · 30d
Upstream's own call count for this endpoint, not ours.
Unique payers · 30d
Never called
Upstream on-chain volume
Reported by the source catalog.
Paid to
0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "error": "payment_required",
  "accepts": [
    {
      "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "extra": {
        "name": "USD Coin",
        "chainId": 8453,
        "version": "2",
        "decimals": 6
      },
      "payTo": "0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2",
      "scheme": "exact",
      "network": "base",
      "mimeType": "application/json",
      "priceUsd": 0.005,
      "resource": "https://agent-margin-router-production.up.railway.app/currency-convert",
      "assetSymbol": "USDC",
      "description": "Agent Margin Router – Currency Convert: Fiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets. Returns rates, converted amounts and rate date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.",
      "outputSchema": {
        "input": {
          "type": "http",
          "method": "POST",
          "example": {
            "to": [
              "USD",
              "GBP"
            ],
            "from": "EUR",
            "amount": 100
          },
          "bodyType": "json",
          "bodyFields": {
            "to": {
              "type": "array",
              "required": true,
              "description": "Target currencies, e.g. [\"USD\", \"GBP\"]."
            },
            "from": {
              "type": "string",
              "required": true,
              "description": "ISO-4217 source currency, e.g. EUR."
            },
            "amount": {
              "type": "number",
              "required": false,
              "description": "Amount in source currency (default 1)."
            }
          },
          "discoverable": true
        },
        "output": {
          "type": "json",
          "example": {
            "rates": {
              "GBP": 0.8391,
              "USD": 1.0842
            },
            "amount": 100,
            "source": "frankfurter_ecb",
            "routing": {
              "provider": "datatools",
              "cache_hit": false,
              "latency_ms": 210
            },
            "converted": {
              "GBP": 83.91,
              "USD": 108.42
            },
            "cost_usdc": 0.005,
            "rate_date": "2026-09-11",
            "from_currency": "EUR",
            "freshness_seconds": 0
          }
        }
      },
      "maxAmountRequired": "5000",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_tier": {
    "limit": 3,
    "how_to": "Send header X-WALLET: 0x<your address> (or X-API-KEY) for free requests, then pay via x402."
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "to": [
              "USD",
              "GBP"
            ],
            "from": "EUR",
            "amount": 100
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json",
          "example": {
            "rates": {
              "GBP": 0.8391,
              "USD": 1.0842
            },
            "amount": 100,
            "source": "frankfurter_ecb",
            "routing": {
              "provider": "datatools",
              "cache_hit": false,
              "latency_ms": 210
            },
            "converted": {
              "GBP": 83.91,
              "USD": 108.42
            },
            "cost_usdc": 0.005,
            "rate_date": "2026-09-11",
            "from_currency": "EUR",
            "freshness_seconds": 0
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "required": [
                  "from",
                  "to"
                ],
                "properties": {
                  "to": {
                    "type": "array",
                    "description": "Target currencies, e.g. [\"USD\", \"GBP\"]."
                  },
                  "from": {
                    "type": "string",
                    "description": "ISO-4217 source currency, e.g. EUR."
                  },
                  "amount": {
                    "type": "number",
                    "description": "Amount in source currency (default 1)."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  },
  "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402/verify",
  "x402Version": 1
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.005USDC≈ $0.005 USD
on Base · exact scheme

Pay 0.005 USDC on Base to 0xf7a1…4e7c2. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
5000 smallest units
Buys
Fiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets. Returns rates, converted amounts and rate date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.
Returns
application/json
The catalog’s raw entry
[
  {
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "extra": {
      "name": "USD Coin",
      "chainId": 8453,
      "version": "2",
      "decimals": 6
    },
    "payTo": "0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2",
    "scheme": "exact",
    "network": "base",
    "mimeType": "application/json",
    "priceUsd": 0.005,
    "resource": "https://agent-margin-router-production.up.railway.app/currency-convert",
    "assetSymbol": "USDC",
    "description": "Fiat currency conversion with ECB reference rates (30+ currencies): amount, source currency, one or many targets. Returns rates, converted amounts and rate date. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.",
    "outputSchema": {
      "input": {
        "type": "http",
        "method": "POST",
        "example": {
          "to": [
            "USD",
            "GBP"
          ],
          "from": "EUR",
          "amount": 100
        },
        "bodyType": "json",
        "bodyFields": {
          "to": {
            "type": "array",
            "required": true,
            "description": "Target currencies, e.g. [\"USD\", \"GBP\"]."
          },
          "from": {
            "type": "string",
            "required": true,
            "description": "ISO-4217 source currency, e.g. EUR."
          },
          "amount": {
            "type": "number",
            "required": false,
            "description": "Amount in source currency (default 1)."
          }
        },
        "discoverable": true
      },
      "output": {
        "type": "json",
        "example": {
          "rates": {
            "GBP": 0.8391,
            "USD": 1.0842
          },
          "amount": 100,
          "source": "frankfurter_ecb",
          "routing": {
            "provider": "datatools",
            "cache_hit": false,
            "latency_ms": 210
          },
          "converted": {
            "GBP": 83.91,
            "USD": 108.42
          },
          "cost_usdc": 0.005,
          "rate_date": "2026-09-11",
          "from_currency": "EUR",
          "freshness_seconds": 0
        }
      }
    },
    "maxAmountRequired": "5000",
    "maxTimeoutSeconds": 300
  }
]

Provenance

Seen in the source catalog
Last indexed by Roundhouse
2026-09-23 15:15Z
Last enriched (probe, favicon, geo)
2026-09-17 10:15Z
x402 version
1
Max timeout
300s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service Agent Margin Router and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Agent%20Margin%20Router'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://agent-margin-router-production.up.railway.app/currency-convert, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.