Realmint

io.github.realmint-ioPublished by GitHub account realmint-iov1.0.0Updated Oct 27, 2026

Agent-native scoring, search and routing for tokenized real-world assets across multi-chain.

VerifiedStreamable HTTPWeb executableFinanceData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for tokenized real-world assets: catalog search, risk scoring, market data, and OAuth-gated USDC buy, sell and withdraw tools.

What you can do
  • List and inspect tokenized real-world assets, their instruments, schemas, legal terms and metadata change history
  • Score assets on backing, enforceability, control, exit, liquidity and social dimensions
  • Read market snapshots, spot prices, volume, market cap and time-series price history
  • Check which venues and chains can route an asset, with per-venue scores and policy flags
  • View the signed-in wallet, smart account and balances, and get USDC deposit instructions
  • Buy, sell and withdraw USDC through a delegated wallet, or request an x402 funding challenge for a keyless agent buy
When to use it
Useful when comparing or vetting tokenized assets such as gold, treasuries or tokenized stocks, tracking issuer term changes, or checking whether an asset is tradable before quoting. Also relevant for agents that need to fund and buy RWAs programmatically.
Requirements
Remote streamable HTTP endpoint; no install or local runtime. The catalog tools work without authentication. Trade tools require OAuth sign-in and a one-time wallet delegation at the provider's delegation page; the x402 path requires the agent's own EVM key and client-side signing. Requests from origins other than the pre-allowed ones are rejected.
Before you install
Trade tools move real funds: buy, sell and withdraw are marked destructive and sign server-side under a standing delegation with a per-trade cap, so revoking the delegation is a separate step from disconnecting. The x402 flow requires signing an EIP-3009 authorization client-side and verifying the payTo address derives from your own key. An x-api-key header is used for upstream rate-limit identification.

Installation

In SourceWeft

  1. Open Realmint in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.realmint-io%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "realmint": {
      "type": "http",
      "url": "https://mcp.realmint.io/mcp"
    }
  }
}

README

Realmint MCP

Agent-native access to the Realmint catalog of tokenized real-world assets (RWAs): scoring, market data, route support, price history, and a keyless x402 buy on-ramp — exposed as native tools over the Model Context Protocol.

The MCP surface is key-safe by design. The catalog is read-only. Two trading paths move funds only under your own authorization and never see a raw key:

  • x402 keyless buy — an autonomous agent with its own EVM key signs an EIP-3009 authorization client-side to fund + buy (realmint_x402_buy_challenge).
  • Sign-in + delegated trade — a human/connector signs in via OAuth and delegates their Privy embedded wallet once; Realmint then signs buy/sell/withdraw server-side under a per-trade spending cap. Privy holds the wallet; no key touches Realmint.
Endpointhttps://mcp.realmint.io/mcp
TransportStreamable HTTP
AuthMixed (lazy): catalog is open; trade tools trigger OAuth on first use
Tools8 catalog (read-only) + 6 trade (OAuth-gated)
Discovery card/.well-known/mcp/server-card.json
StatusLive since May 2026

What you can ask it

CapabilityExample prompt
Score risk & rights"Score Tether Gold and tell me if it's safe for our DAO treasury"
Search the catalog"Find tokenized treasuries on Ethereum with no freeze capability"
Track issuer changes"Has anything in my watchlist changed control parameters this month?"
Map routable venues"Where can I acquire 100k of OUSG, ranked by liquidity?"
Pull market & price data"Show me PAXG's spot price, 24h volume, and 6-month chart"
Fund & buy, agent-native"Fund my wallet with 25 USDC over x402 and buy 5 of TSLAx"

Add it to your client

Claude.ai (custom remote connector)

  1. Settings → Connectors → Add custom connector
  2. Server URL: https://mcp.realmint.io/mcp
  3. Auth: none to connect — the catalog works immediately. The first time you call a trade tool, Claude runs the OAuth sign-in (Realmint → Privy) and you delegate your wallet once.
  4. Save and start asking the example prompts above.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "realmint": {      "transport": {        "type": "streamable-http",        "url": "https://mcp.realmint.io/mcp"      }    }  }}

Restart Claude Desktop.

Cursor / Cline / Continue / any MCP client

Configure a remote MCP server with:

  • URL: https://mcp.realmint.io/mcp
  • Transport: streamable-http
  • Auth: none to connect; trade tools trigger OAuth on first use

Programmatic

bash
curl -X POST https://mcp.realmint.io/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Unauthenticated you see the 8 catalog tools (all readOnlyHint=true). After OAuth sign-in, the 6 trade tools appear too (destructiveHint=true).


Catalog tools (read-only, no auth)

ToolPurpose
realmint_list_assetsEnumerate the full catalog with schemas
realmint_list_marketSpot price, 24h change, volume, market cap, history
realmint_get_assetFull schema for one asset (by lowercased ticker)
realmint_get_asset_historyVersioned metadata change history
realmint_get_scoreSix-dimension Risk & Rights Score + composite
realmint_get_route_supportRoutable venues + per-venue scores
realmint_get_price_historyTime-series prices (5m/1h/1d auto-cascading)
realmint_x402_buy_challengex402 funding challenge — the keyless, agent-native USDC on-ramp to buy an asset (returns the 402; the agent signs client-side)

Trade tools (sign in via OAuth)

Calling one of these when signed out returns a 401 that triggers the OAuth flow (Realmint's Ory Hydra, federated to Privy login). You sign in and delegate your wallet once (app.realmint.io/mcp/delegate); Realmint then signs each trade server-side via that delegation, under a per-trade spending cap — no key touches the MCP, no per-trade browser step.

ToolPurpose
realmint_whoamiConfirm the signed-in identity (Privy DID)
realmint_my_walletYour wallets, smart account, and balances
realmint_depositWhere to send USDC to add buying power
realmint_buyBuy an RWA (your smart account must already hold USDC)
realmint_sellSell an RWA back to USDC on Injective
realmint_withdrawWithdraw USDC from your smart account to any address

The complete tool catalog with descriptions, inputs, and titles is published in the discovery card.

Buying with realmint_x402_buy_challenge

The on-ramp is agent-native and keyless — an agent buys with only an EVM key, the same two signatures a human gives, all client-side:

  1. Call realmint_x402_buy_challenge with your owner_eoa, the amount_usdc, and the asset_id you intend to buy. It returns an HTTP 402 with x402 payment requirements (accepts[0]): payTo is your Base smart account derived from owner_eoa, maxAmountRequired the USDC atomic amount, asset the Base USDC contract, extra the EIP-712 domain.
  2. Verify payTo derives from your own owner_eoa, then sign an EIP-3009 transferWithAuthorization over that domain, base64-encode the x402 PaymentPayload, and re-POST it to /v1/route/x402-buy in the X-PAYMENT header. On settlement the USDC bridges custody-free to your Injective smart account.
  3. Buy any RWA from that balance via POST /v1/route/intent (signing the route as usual). The asset rests in your own smart account — send it elsewhere whenever you want, exactly like a human user.

See the x402 agent-buy guide for the full walkthrough.

The Risk & Rights Score

realmint_get_score returns a 0–100 composite plus six per-dimension scores:

  • backing — proof of reserves, audit cadence, backing mechanism.
  • enforceability — governing law, issuer verification, legal documents.
  • control — issuer power risk: freeze, mint, burn, blacklist, upgrade.
  • exit — redemption, transferability, KYC/whitelist, settlement, holding periods.
  • liquidity — market data, venue count, evidence docs.
  • social — recency-weighted Twitter activity; unverified handles penalized.

Suggested decision thresholds:

  • composite ≥ 75 → typical case, proceed.
  • 55 ≤ composite < 75 → elevated friction (gates, missing audits); review the asset's flags before acting.
  • composite < 55 → high risk; abort or require explicit user override.

Tokens with a non-null metadata.lifecycle (migrated, discontinued, abandoned) are score-capped at 49 by policy.


Troubleshooting

HTTP 403 — "Invalid Origin header" The server enforces Origin-header validation as required by the Anthropic Connectors Directory. claude.ai, chatgpt.com, mcp.realmint.io, app.realmint.io, and realmint.io are pre-allowed. If you operate from a different origin and need it added, email us at the address below.

Tool returns an empty list The Realmint catalog is curated — at any given time it indexes ~30 assets. Run realmint_list_assets to see the current set before asking about a specific ticker.

Asset ID format Asset IDs are lowercased tickers — xaut, not XAUT; paxg, not PAXG.

metadata.lifecycle is non-null The token has been migrated, discontinued, or abandoned. Trading is disallowed and the score is capped at 49. The lifecycle field tells you why and points to the replacement (if any).

Price history returns coarser buckets than asked The server cascades to coarser buckets (5m → 1h → 1d) when the requested bucket is empty for that asset. Look at effective_granularity in the response for what was actually returned.


Security & privacy

  • Key-safe. The catalog is read-only. Trading moves funds only under your own authorization and never exposes a raw key: x402 buys are signed client-side (EIP-3009), and the OAuth trade tools sign server-side via your Privy delegation under a per-trade spending cap — Privy holds the embedded wallet; no key touches Realmint.
  • No PII collected by the MCP server. The x-api-key header is used for upstream rate-limit identification; trade-tool identity comes from the OAuth (Hydra) token.
  • HTTPS termination via Traefik.
  • Origin / Host validation enabled at the FastMCP layer (DNS rebinding protection).
  • Privacy policy: https://realmint.io/privacy
  • Terms of service: https://realmint.io/terms

Versioning & changelog

This connector is versioned alongside the Realmint platform. Substantive changes to tool surfaces or output shapes will be announced in this README and reflected in the discovery card (serverInfo.version).


Contact & support


The MCP server source lives in a private repository; the hosted endpoint at https://mcp.realmint.io/mcp is the supported public interface.

Source: README.md at commit 0c4f152

Tools

16

realmint_my_wallet

My Realmint wallet & balances

Show your Realmint wallet (EVM + Solana), smart account, and balances. **Requires sign-in.** Read-only; moves no funds.

Takes no parameters.

realmint_deposit

How to deposit into Realmint

Show where to send USDC to fund your buying power. **Requires sign-in.** Send USDC on Base to your EVM wallet; it funds your smart account for buys.

Takes no parameters.

realmint_buy

Buy a tokenized RWA

Buy `amount_usdc` of USDC worth of the RWA `asset_id` (e.g. 'paxg'). **Requires sign-in + a one-time wallet delegation** at app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy delegation, capped per-trade — no key, no per-trade approval. Your smart account must already hold USDC (see realmint_deposit). Moves real funds.

Parametersasset_idrequiredamount_usdcrequired

realmint_sell

Sell a tokenized RWA

Sell `amount` of the RWA `asset_id` you hold, settling USDC back on Injective. **Requires sign-in + a one-time wallet delegation** at app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy delegation — no key, no per-trade approval. Sells positions bought over MCP (held in your derived Realmint Wallet). Moves real funds.

Parametersamountrequiredasset_idrequired

realmint_withdraw

Withdraw USDC from Realmint

Withdraw `amount_usdc` USDC from your Realmint smart account to `recipient` (any address). **Requires sign-in + a one-time wallet delegation** at app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy delegation, capped per-transaction — no key, no per-withdraw approval. Native USDC on Injective. Moves real funds. `smart_account_address` (advanced/recovery, normally leave empty): sweep from a specific smart account you own that a factory rotation left behind. Only an SA CREATE2-owned by you is accepted.

Parametersrecipientrequiredamount_usdcrequiredsmart_account_address

realmint_logout

Sign out of Realmint

Sign out note: Realmint keeps no signing session — server-side signing is your standing Privy **delegation**. To fully revoke it, go to app.realmint.io/mcp/delegate. Disconnecting the connector ends this session.

Takes no parameters.

realmint_list_assets

List RWA Assets

List all tokenized real-world assets (RWAs) indexed by Realmint. Returns the full schema for each asset including ownership, control, transferability, redemption terms, and legal metadata.

Takes no parameters.

realmint_list_instruments

List Instruments

List instruments — the real-world things tokens represent: an underlying at a specific denomination ("Silver · 1 oz") or a stock ("Apple"). Tokens sharing an instrument are interchangeable representations of the same thing. Each entry carries its member token ids, the recommended member (buyable > priced > score), and the floor price across members — use it to pick the best token for an instrument before quoting or buying.

Takes no parameters.

realmint_list_market

List RWA Market Snapshots

Market snapshots for indexed RWAs: spot price, 24h change, volume, market cap, venue count, and a short price history series. Combine with `realmint_get_score` to compare risk against liquidity. Args: ids: Optional comma-separated asset IDs to filter (e.g. "xaut,paxg"). Empty = all assets. Assets without fresh market data are omitted from the response.

Parametersids

realmint_get_asset

Get RWA Asset Details

Get the full schema for a specific RWA by asset ID. Includes issuer details, control capabilities (freeze/mint/burn/blacklist), transferability restrictions, redemption mechanics, and legal documents. The asset ID is the lowercased ticker (e.g. "xaut", "paxg", "kau", "agri", "cgo"). Use `realmint_list_assets` to discover all available IDs — the catalog spans ~30 tokens across multiple chains and changes over time. Always read `metadata.lifecycle` from the response: a non-null lifecycle means the token is migrated/discontinued/abandoned and trading is disallowed (score is hard-capped at 49).

Parametersasset_idrequired

realmint_get_asset_history

Get RWA Metadata History

Get the versioned metadata change history for an asset. Each entry records what changed (created, updated) and a full schema snapshot. Useful for detecting when an issuer changes terms or control parameters.

Parametersasset_idrequired

realmint_get_score

Get RWA Risk & Rights Score

Get the Risk & Rights Score for an asset across six dimensions: - backing (0-100): proof of reserves, audit cadence, backing mechanism - enforceability (0-100): governing law, issuer verification, legal documents - control (0-100): issuer power risk — freeze, mint, burn, blacklist, upgrade - exit (0-100): redemption, transferability, KYC/whitelist, settlement, holding periods - liquidity (0-100): market data, venue count, evidence docs - social (0-100): Twitter activity (recency-weighted; unverified handles are penalized below the worst observed tier) Also returns a weighted composite (0-100, higher is better). Weights and penalty tiers are versioned server-side — see `policy_version` in the response. Combine with the asset's `metadata.lifecycle` field (from `realmint_get_asset`) to detect dead/migrated tokens — those are score-capped at 49. Suggested thresholds for decision-making: - composite ≥ 75: typical case, proceed - 55 ≤ composite < 75: elevated friction (gates, missing audits, etc.); review the asset's flags before proceeding - composite < 55: high risk; abort or require explicit user override

Parametersasset_idrequired

realmint_get_route_support

Get RWA Route Support

List the venues and chains that can route this asset, plus per-venue backing/liquidity/social scores and policy flags. Use this to check whether a trade is even feasible before quoting — `routing_enabled=false` or an empty venue list means the asset can be inspected but not traded via Realmint.

Parametersasset_idrequired

realmint_get_price_history

Get RWA Price History

Time-series price history for an asset. Args: asset_id: Asset identifier days: Lookback in days (1-730, default 30) granularity: Optional explicit bucket — "5m" | "1h" | "1d". Omit to auto-pick (≤2d → 5m, ≤30d → 1h, else 1d). The server cascades to coarser buckets when the requested one is empty for this asset.

Parametersdaysasset_idrequiredgranularity

realmint_x402_buy_challenge

Get x402 Funding Challenge

Get the x402 payment requirements to fund yourself in USDC so you can buy RWAs — the agent-native on-ramp. This returns the 402 challenge only; it moves no funds. To complete funding (two signatures total, the same a human gives), the agent then, ENTIRELY CLIENT-SIDE: 1. Reads `accepts[0]` from the returned body: `payTo` is YOUR Base smart account (derived from `owner_eoa`), `maxAmountRequired` the USDC atomic amount, `asset` the Base USDC contract, `extra` the EIP-712 domain. 2. Signs an EIP-3009 `transferWithAuthorization(from=owner_eoa, to=payTo, value=maxAmountRequired, ...)` over that domain, base64-encodes the x402 PaymentPayload, and re-POSTs to `/v1/route/x402-buy` with it in the `X-PAYMENT` header. On settlement the USDC bridges custody-free to your Injective smart account. 3. Buys any RWA from that Injective balance via `POST /v1/route/intent` (signing the route as usual). The asset rests in your smart account; `send` it elsewhere if you want — exactly like a human user. Always verify `payTo` derives from your own `owner_eoa` before signing. Args: owner_eoa: Your EVM EOA — the payment signer and smart-account owner. amount_usdc: USDC to fund yourself with (human units, e.g. 25.0). asset_id: Optional RWA you intend to buy, recorded for context.

Parametersasset_idowner_eoarequiredamount_usdcrequired

realmint_whoami

Who am I (signed-in user)

Return the signed-in user's identity. This tool **requires authentication** — calling it triggers the Realmint sign-in (OAuth) if you're not signed in. Use it to confirm who you're acting as. Read-only; moves no funds.

Takes no parameters.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts