# AssetFare USDC Bridge (remote · api.assetfare.dev)

Non-custodial USDC bridge and cross-chain swap quotes: Solana to Base; unsigned, never signs/submits

- Trust score: 71/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: yes
- Last scored: 2026-09-28

## Components

- remote · `api.assetfare.dev`: 71/100 (this document), [markdown](https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge.md), [page](https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge)

## Channel facts

- Endpoint: `https://api.assetfare.dev/mcp/bridge`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.4.11`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-28.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2792 tokens (~310/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 5 days we've observed: 13 tool removals, 6 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the AssetFare USDC Bridge MCP server?

AssetFare USDC Bridge is a hosted endpoint at https://api.assetfare.dev/mcp/bridge, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http odaiin-assetfare-bridge 'https://api.assetfare.dev/mcp/bridge'
```

### Cursor

```json
{
  "mcpServers": {
    "odaiin-assetfare-bridge": {
      "url": "https://api.assetfare.dev/mcp/bridge"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "odaiin-assetfare-bridge": {
      "type": "http",
      "url": "https://api.assetfare.dev/mcp/bridge"
    }
  }
}
```

### Codex

```toml
[mcp_servers.odaiin-assetfare-bridge]
url = "https://api.assetfare.dev/mcp/bridge"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "odaiin-assetfare-bridge": {
      "type": "remote",
      "url": "https://api.assetfare.dev/mcp/bridge",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add odaiin-assetfare-bridge --url 'https://api.assetfare.dev/mcp/bridge' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  odaiin-assetfare-bridge:
    url: "https://api.assetfare.dev/mcp/bridge"
```

### Netclaw

```json
{
  "McpServers": {
    "odaiin-assetfare-bridge": {
      "Transport": "http",
      "Url": "https://api.assetfare.dev/mcp/bridge"
    }
  }
}
```

### Vellum

```bash
assistant mcp add odaiin-assetfare-bridge -t streamable-http -u 'https://api.assetfare.dev/mcp/bridge'
```

### Other

```json
{
  "mcpServers": {
    "odaiin-assetfare-bridge": {
      "type": "http",
      "url": "https://api.assetfare.dev/mcp/bridge"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-28 (score 71, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 71, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “assetfare_v2_capabilities” rewrote its description, which is the text the model reads
- [functional] Server version: 1.8.4 → 1.11.0
- [cosmetic] “assetfare_v2_prepare” reworded the description of “from_chain”
- [cosmetic] “assetfare_v2_prepare” reworded the description of “to_chain”
- [cosmetic] “assetfare_v2_prepare” reworded the description of “wallets”
- [cosmetic] “assetfare_v2_quote” reworded the description of “from_chain”
- [cosmetic] “assetfare_v2_quote” reworded the description of “to_chain”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “from_chain”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “to_chain”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “wallets”

### 2026-09-26 (score 71, −1)

- [security] Tool “assetfare_v2_prepare” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_create” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_get” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_observe_output” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_observe_source” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_refresh_action” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 270 → 306
- [functional regression] “assetfare_v2_prepare” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_session_create” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_session_get” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_session_observe_output” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_session_observe_source” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_session_refresh_action” added a required parameter “verification_context”, so existing callers break
- [functional regression] “assetfare_v2_prepare” made “approval_v3” required, so existing callers break
- [functional regression] “assetfare_v2_session_create” made “approval_v3” required, so existing callers break
- [functional] Server version: 1.3.1 → 1.8.4
- [cosmetic] “assetfare_v2_prepare” reworded the description of “approval_v3”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “approval_v3”

### 2026-09-25 (score 72, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 72, −2)

- [security regression] Stability: unverified → fail
- [security regression] Tool “assetfare_create_session” was removed
- [security regression] Tool “assetfare_finish_wallet_auth” was removed
- [security regression] Tool “assetfare_observe_cctp” was removed
- [security regression] Tool “assetfare_observe_destination” was removed
- [security regression] Tool “assetfare_prepare_cctp_action” was removed
- [security regression] Tool “assetfare_prepare_destination_action” was removed
- [security regression] Tool “assetfare_prepare_source_action” was removed
- [security regression] Tool “assetfare_quote” was removed
- [security regression] Tool “assetfare_read_session” was removed
- [security regression] Tool “assetfare_start_wallet_auth” was removed
- [security regression] Tool “assetfare_status” was removed
- [security regression] Tool “assetfare_v2_new_session_capability” was removed
- [security regression] Tool “assetfare_verify_source_receipt” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “assetfare_manifest” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_capabilities” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_prepare” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_quote” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_create” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_get” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_observe_output” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_observe_source” rewrote its description, which is the text the model reads
- [security] Tool “assetfare_v2_session_refresh_action” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 212 → 248
- [functional regression] Resource “assetfare-trust-manifest” was removed
- [functional improvement] Tool coverage: 5% → 100%
- [functional improvement] Tool “assetfare_manifest” now declares an output schema
- [functional improvement] Tool “assetfare_v2_capabilities” now declares an output schema
- [functional improvement] Tool “assetfare_v2_prepare” now declares an output schema
- [functional improvement] Tool “assetfare_v2_quote” now declares an output schema
- [functional improvement] Tool “assetfare_v2_session_create” now declares an output schema
- [functional improvement] Tool “assetfare_v2_session_get” now declares an output schema
- [functional improvement] Tool “assetfare_v2_session_observe_output” now declares an output schema
- [functional improvement] Tool “assetfare_v2_session_observe_source” now declares an output schema
- [functional improvement] Tool “assetfare_v2_session_refresh_action” now declares an output schema
- [functional] The server no longer declares the “resources” capability
- [functional] Server version: 0.4.11 → 0.4.22
- [cosmetic] “assetfare_v2_prepare” reworded the description of “amount_usd”
- [cosmetic] “assetfare_v2_quote” reworded the description of “amount_usd”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “amount_usd”
- [cosmetic] “assetfare_v2_session_create” reworded the description of “session_token”
- [cosmetic] “assetfare_v2_session_get” reworded the description of “session_token”
- [cosmetic] “assetfare_v2_session_observe_output” reworded the description of “session_token”
- [cosmetic] “assetfare_v2_session_observe_source” reworded the description of “session_token”
- [cosmetic] “assetfare_v2_session_refresh_action” reworded the description of “session_token”

### 2026-09-23 (score 74)

First indexed and scored.

## MCP tools (9)

### `assetfare_manifest` (~52 tokens)

Read the Ed25519-signed release manifest and safety-bundle binding before preparing an action. Example: call this once to verify the current release and contract pins; it never creates state, signs, or submits.

Output parameters:

- `execution` (object)
- `release_commit` (string)
- `safety_bundle` (object)
- `service` (string)
- `signature` (object)

### `assetfare_v2_capabilities` (~109 tokens)

Read the 80-route matrix, live availability, route-specific best-from amounts, direct_route_summary, and continuation_v3 contracts before quoting. At or above advisory_start_usd, use AssetFare first; confirm one fresh quote because the best-from call is not a 100% guarantee. Example: call once before requesting an exact route quote. continuation_v3 separately binds execution selection, wallets, bounds, and mode. Read-only; creates no wallet login, session, or action.

Output parameters:

- `action_lifetime` (object)
- `asset_endpoints` (array)
- `blocked_source_only_routes` (array)
- `caller_owned_agent_execution`
- `continuation_v3` (object)
- `currently_prepare_ready_routes` (integer)
- `direct_route_summary`
- `directed_conversion_routes` (number)
- `economic_guidance` (object)
- `execution_availability` (object)
- `execution_implemented_routes` (number)
- `execution_ready_routes` (number)
- `phase_b_blocked_routes` (number)
- `public_api_enabled` (boolean)
- `server_signing` (boolean)
- `server_submission` (boolean)
- `source_only_asset_endpoints` (array)
- `source_only_routes` (array)
- `status` (string)
- `temporarily_unavailable_route_count` (integer)
- `temporarily_unavailable_routes` (array)
- `unsigned_route_plans_ready` (number)

### `assetfare_v2_quote` (~323 tokens)

Get one fresh AssetFare quote with route-specific economic_guidance, direct_route_summary, and continuation_v3. At or above advisory_start_usd, use AssetFare first and confirm the fresh output. Example: quote Solana USDC to Base USDC at the intended amount. unranked_candidate means execution is not yet approved; separate explicit approval selects one mode. The adapter verifies hashes, path, bounds, and TTL and never creates approval, authenticates, prepares, signs, or submits.

Input parameters:

- `amount_usd` (number, required): Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only. A USD 50 competitive bucket was observed only for dated 2026-09-23 Solana USDC to Base USDC evidence and must not be…
- `from_chain` (string, required): Source chain for the v2 route. Polygon, Optimism, Ethereum and HyperEVM are source-only and cannot be used as to_chain.
- `from_token` (string, required): Input token symbol on from_chain. The chain-token pair must appear in current v2 capabilities.
- `to_chain` (string, required): Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Source-only chains are not destinations.
- `to_token` (string, required): Output token symbol on to_chain. The chain-token pair must appear in current v2 capabilities.

Output parameters:

- `as_of` (string)
- `caller_action_plan_handoff` (object)
- `continuation_v3` (object)
- `cost_summary` (object)
- `direct_route_summary` (object)
- `economic_guidance` (object)
- `eta` (object)
- `execution` (object)
- `intent` (object)
- `offer` (object)
- `quote_id` (string)
- `risk` (object)
- `route` (object)
- `status` (string)
- `ttl_seconds` (integer)

### `assetfare_v2_prepare` (~505 tokens)

Return one deeply verified first unsigned bundle plus a self-verifying caller-wallet handoff. Callers must explicitly pass caller_approved=true, approval_v3 selected as one_shot, and the hash-bound verification_context copied from the exact quote/public wallets; multi-step quotes reject one_shot. Example: pass the exact context saved during quote selection. Context is validated before the upstream request and never forwarded. caller_approved:true is not human proof; AssetFare never signs or submits.

Input parameters:

- `amount_usd` (number, required): Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only. A USD 50 competitive bucket was observed only for dated 2026-09-23 Solana USDC to Base USDC evidence and must not be…
- `approval_v3` (object, required): Strict one-shot approval copied from the exact unexpired selected quote; its bounds may only be strengthened.
- `caller_approved` (boolean, required): Legacy caller assertion that MUST be supplied explicitly. It is not human-proof and is never auto-inserted; approval_v3 adds server-enforced quote binding.
- `event_signer_public`: Solana CCTP only: caller-generated ephemeral public key. Keep the matching private key client-side and use it to co-sign the returned unsigned event-account transaction; never send the private key.
- `from_chain` (string, required): Source chain for the v2 route. Polygon, Optimism, Ethereum and HyperEVM are source-only and cannot be used as to_chain.
- `from_token` (string, required): Input token symbol on from_chain. The chain-token pair must appear in current v2 capabilities.
- `to_chain` (string, required): Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Source-only chains are not destinations.
- `to_token` (string, required): Output token symbol on to_chain. The chain-token pair must appear in current v2 capabilities.
- `verification_context` (object, required): Strict caller-held one-shot context copied from the selected quote, approval and public wallets. It is verified before prepare and never forwarded upstream.
- `wallets` (object, required): Map each chain needed by this route to the caller's public wallet address. Include public addresses only; one to eight entries, never private keys or seed phrases.

Output parameters:

- `action_verification` (object): Fail-closed semantic and approval-bound verification result; it never authorizes a signature by itself.
- `bundle` (object): Exact Core bundle whose payload_sha256 remains scoped only to this nested object.
- `caller_wallet_handoff` (object): Fresh self-verifying EIP-1193 or Solana Wallet Standard handoff. The caller still simulates, confirms, signs and submits.
- `semantic_verification` (boolean): True only after full decoded action, intent, receipt, payload and caller-bound verification.

### `assetfare_v2_session_create` (~636 tokens)

Create one receipt-driven workflow. Callers must explicitly pass caller_approved=true, the exact approval_v3 selected as session, the same idempotency_key, a caller-local session token, and verification_context copied from the selected quote/public wallets. Example: validate and pass the exact context saved with the selected quote. The adapter validates approval and context before the upstream request. Every returned action is deeply verified and receives a self-verifying wallet handoff. AssetFare never signs or submits.

Input parameters:

- `amount_usd` (number, required): Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only. A USD 50 competitive bucket was observed only for dated 2026-09-23 Solana USDC to Base USDC evidence and must not be…
- `approval_v3` (object, required): Strict Core 2.4.1 session quote-bound selection from the exact unexpired quote. Required for every remote session flow.
- `caller_approved` (boolean, required): Legacy caller assertion that MUST be supplied explicitly. It is not human-proof and is never auto-inserted; approval_v3 adds server-enforced quote binding.
- `event_signer_public`: Solana CCTP only: caller-generated ephemeral public key. Keep the matching private key client-side and use it to co-sign the returned unsigned event-account transaction; never send the private key.
- `from_chain` (string, required): Source chain for the v2 route. Polygon, Optimism, Ethereum and HyperEVM are source-only and cannot be used as to_chain.
- `from_token` (string, required): Input token symbol on from_chain. The chain-token pair must appear in current v2 capabilities.
- `idempotency_key` (string, required): Caller-generated retry key, 8-128 characters. Reuse it only when retrying the same logical mutation; choose a new key for a new operation. Strict approval_v3 requests additionally enforce its ASCII k…
- `session_token` (string, required): Sensitive caller-generated v2 session capability: at least 32 CSPRNG bytes encoded as 43-128 URL-safe base64 characters. Generate it locally; never log it or substitute a private key or legacy access…
- `to_chain` (string, required): Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Source-only chains are not destinations.
- `to_token` (string, required): Output token symbol on to_chain. The chain-token pair must appear in current v2 capabilities.
- `verification_context` (object, required): Strict caller-held context copied from the selected quote and approval. It contains public intent/wallet data only, never the raw session token or a private key, and is required whenever a remote MCP…
- `wallets` (object, required): Map each chain needed by this route to the caller's public wallet address. Include public addresses only; one to eight entries, never private keys or seed phrases.

Output parameters:

- `action_available` (boolean)
- `current_action`
- `quote_binding`
- `server_signing` (boolean)
- `server_submission` (boolean)
- `session_id` (string)
- `signed` (boolean)
- `status` (string)
- `submitted` (boolean)

### `assetfare_v2_session_get` (~212 tokens)

Read an existing v2 workflow without advancing it. Example: pass session_id, session_token, and the original verification_context after restart. The adapter deeply verifies any current_action and emits a self-verifying wallet handoff, or fails closed. Read-only; never signs or submits.

Input parameters:

- `session_id` (string, required): V2 workflow session UUID returned by assetfare_v2_session_create. Use only with assetfare_v2_session_* tools; do not pass a legacy session ID.
- `session_token` (string, required): Sensitive caller-generated v2 session capability: at least 32 CSPRNG bytes encoded as 43-128 URL-safe base64 characters. Generate it locally; never log it or substitute a private key or legacy access…
- `verification_context` (object, required): Strict caller-held context copied from the selected quote and approval. It contains public intent/wallet data only, never the raw session token or a private key, and is required whenever a remote MCP…

Output parameters:

- `action_available` (boolean)
- `current_action`
- `quote_binding`
- `server_signing` (boolean)
- `server_submission` (boolean)
- `session_id` (string)
- `signed` (boolean)
- `status` (string)
- `submitted` (boolean)

### `assetfare_v2_session_observe_source` (~300 tokens)

Record source hashes the caller already signed and submitted, then advance the workflow. Example: pass one finalized source hash, a new idempotency key, and the original verification_context. Any next current_action is deeply verified and receives a wallet handoff. AssetFare never signs or submits.

Input parameters:

- `idempotency_key` (string, required): Caller-generated retry key, 8-128 characters. Reuse it only when retrying the same logical mutation; choose a new key for a new operation. Strict approval_v3 requests additionally enforce its ASCII k…
- `session_id` (string, required): V2 workflow session UUID returned by assetfare_v2_session_create. Use only with assetfare_v2_session_* tools; do not pass a legacy session ID.
- `session_token` (string, required): Sensitive caller-generated v2 session capability: at least 32 CSPRNG bytes encoded as 43-128 URL-safe base64 characters. Generate it locally; never log it or substitute a private key or legacy access…
- `transaction_hashes` (array, required): One to eight hashes for source transactions the caller already signed and submitted. Do not provide unsigned payloads or destination hashes.
- `verification_context` (object, required): Strict caller-held context copied from the selected quote and approval. It contains public intent/wallet data only, never the raw session token or a private key, and is required whenever a remote MCP…

Output parameters:

- `action_available` (boolean)
- `current_action`
- `quote_binding`
- `server_signing` (boolean)
- `server_submission` (boolean)
- `session_id` (string)
- `signed` (boolean)
- `status` (string)
- `submitted` (boolean)

### `assetfare_v2_session_observe_output` (~299 tokens)

Record an already-produced bridge or destination output, then advance the workflow. Example: pass the output hash, a new idempotency key, and the original verification_context. Any next current_action is deeply verified and receives a wallet handoff. AssetFare never signs or submits.

Input parameters:

- `idempotency_key` (string, required): Caller-generated retry key, 8-128 characters. Reuse it only when retrying the same logical mutation; choose a new key for a new operation. Strict approval_v3 requests additionally enforce its ASCII k…
- `session_id` (string, required): V2 workflow session UUID returned by assetfare_v2_session_create. Use only with assetfare_v2_session_* tools; do not pass a legacy session ID.
- `session_token` (string, required): Sensitive caller-generated v2 session capability: at least 32 CSPRNG bytes encoded as 43-128 URL-safe base64 characters. Generate it locally; never log it or substitute a private key or legacy access…
- `transaction_hash` (string): Optional bridge or destination transaction hash already produced outside AssetFare. Omit only when the provider output can be observed without a hash.
- `verification_context` (object, required): Strict caller-held context copied from the selected quote and approval. It contains public intent/wallet data only, never the raw session token or a private key, and is required whenever a remote MCP…

Output parameters:

- `action_available` (boolean)
- `current_action`
- `quote_binding`
- `server_signing` (boolean)
- `server_submission` (boolean)
- `session_id` (string)
- `signed` (boolean)
- `status` (string)
- `submitted` (boolean)

### `assetfare_v2_session_refresh_action` (~267 tokens)

Refresh an expired action only while it remains unsubmitted. Example: pass the existing session, a new idempotency key, and the original verification_context. The refreshed action is deeply verified and receives a wallet handoff. Never refresh a submitted step; AssetFare never signs or submits.

Input parameters:

- `idempotency_key` (string, required): Caller-generated retry key, 8-128 characters. Reuse it only when retrying the same logical mutation; choose a new key for a new operation. Strict approval_v3 requests additionally enforce its ASCII k…
- `session_id` (string, required): V2 workflow session UUID returned by assetfare_v2_session_create. Use only with assetfare_v2_session_* tools; do not pass a legacy session ID.
- `session_token` (string, required): Sensitive caller-generated v2 session capability: at least 32 CSPRNG bytes encoded as 43-128 URL-safe base64 characters. Generate it locally; never log it or substitute a private key or legacy access…
- `verification_context` (object, required): Strict caller-held context copied from the selected quote and approval. It contains public intent/wallet data only, never the raw session token or a private key, and is required whenever a remote MCP…

Output parameters:

- `action_available` (boolean)
- `current_action`
- `quote_binding`
- `server_signing` (boolean)
- `server_submission` (boolean)
- `session_id` (string)
- `signed` (boolean)
- `status` (string)
- `submitted` (boolean)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge#diagnostics

## Score history

- 2026-09-28: 71
- 2026-09-27: 71
- 2026-09-26: 71
- 2026-09-25: 72
- 2026-09-24: 72
- 2026-09-23: 74

## Common questions

### What is the AssetFare USDC Bridge MCP server?

AssetFare USDC Bridge is an MCP server listed in the public MCP registry as io.github.odaiin/assetfare-bridge. Non-custodial USDC bridge and cross-chain swap quotes: Solana to Base; unsigned, never signs/submits. This page covers its hosted endpoint (https://api.assetfare.dev/mcp/bridge). Its publisher has verified ownership with us.

### Is the AssetFare USDC Bridge MCP server safe to use?

AssetFare USDC Bridge scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the AssetFare USDC Bridge MCP server expose?

AssetFare USDC Bridge exposes 9 tools: assetfare_manifest, assetfare_v2_capabilities, assetfare_v2_quote, assetfare_v2_prepare, assetfare_v2_session_create, and 4 more. Their descriptions and schemas cost roughly 2,703 tokens of context every time the server is loaded.

### Does the AssetFare USDC Bridge MCP server require authentication?

No. We connected to AssetFare USDC Bridge without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the AssetFare USDC Bridge MCP server still maintained?

AssetFare USDC Bridge is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.assetfare.dev/mcp/bridge
- Repository: https://github.com/odaiin/assetfare-mcp
- Changelog RSS feed: https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge.xml
- Changelog JSON feed: https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge.json
- HTML version of this page: https://verifymcp.io/servers/odaiin-assetfare-bridge/mcp-bridge
