TokenBank — tokenized real-world assets

4,168 tokenized real-world assets: yield, risk, and who is actually allowed to buy each one

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
87%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,323토큰 (도구 정의)
~2.3 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.60%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "tokenbank": {
      "url": "https://mcp.tokenbank.world"
    }
  }
}

원격 엔드포인트

https://mcp.tokenbank.worldstreamable-http

할 수 있는 일

도구 목록

도구 (10)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_yield_products(query, pillar, max_risk, min_yield_pct, tier, ...)

Search and filter TokenBank's instruments for earning yield with crypto. Searches the CURATED tier by default (the rows that state a yield, minimum and risk); pass tier to reach the imported issuer-catalogue rows (tokenized treasuries, yield stablecoins, gold, real estate, tokenized stocks, staking, DeFi/CeFi earn, alternative funds). Returns compact records; use get_product_details for the full record.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text match on name, ticker, issuer or type"
    },
    "pillar": {
      "type": "string",
      "enum": [
        "Fixed Income",
        "Real Assets",
        "Market Tokens",
        "Staking"
      ],
      "description": "Limit to one category pillar"
    },
    "max_risk": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "Maximum risk on a 1-5 scale (1=very low, 3=medium, 5=high)"
    },
    "min_yield_pct": {
      "type": "number",
      "description": "Minimum headline yield in percent"
    },
    "tier": {
      "type": "string",
      "enum": [
        "curated",
        "imported",
        "all"
      ],
      "description": "Which tier to search. Default \"curated\": the instruments that state a yield, minimum and risk — the only ones that can answer \"what does this pay\". \"imported\" and \"all\" reach the issuer-catalogue rows, which carry identity and classification only. Use them for identity questions (\"is X tokenized\"), never for yield rankings."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many matches before returning. Use the nextOffset from the previous answer to walk the whole set; its absence means you reached the end."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default 20)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "nextOffset": {
      "type": "integer",
      "description": "Pass as offset to fetch the next page; absent when there is no more"
    },
    "count": {
      "type": "integer",
      "description": "Rows returned"
    },
    "totalMatching": {
      "type": "integer",
      "description": "Rows that matched before the limit"
    },
    "tier": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "totalMatching",
    "results"
  ]
}
🟢get_product_details(ticker)

Full record for one instrument by ticker (case-insensitive): yield, risk, custody, availability, how to buy, source link, verification date.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "e.g. USDY, stETH, PAXG"
    }
  },
  "required": [
    "ticker"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "tier": {
      "type": "string"
    }
  },
  "required": [
    "ticker"
  ]
}
🟢compare_with_savings_account(bank_rate_pct)

Compare low-risk, instant-access crypto savings instruments against a typical bank savings account rate. Returns the honest trade-offs, not just the bigger number.

입력 스키마

{
  "type": "object",
  "properties": {
    "bank_rate_pct": {
      "type": "number",
      "description": "Your bank's rate in percent (default 2.0)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "bankRatePct": {
      "type": "number"
    },
    "instruments": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "honestTradeoffs": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "bankRatePct",
    "instruments"
  ]
}
🟢find_permissionless_assets(pillar, min_yield_pct, include_unverified, offset, limit)

Instruments whose secondary market needs no KYC and which a self-custody wallet holds itself — a property of how the token works, read from hand-verified gates. For real-world assets the gate to MINT and the gate to trade on a secondary market routinely differ, so a fund can be permissioned at the issuer while its token trades freely. Strict by design — an instrument whose gate is merely unverified is excluded. This says nothing about who may buy it: the issuer's terms and local law decide that.

입력 스키마

{
  "type": "object",
  "properties": {
    "pillar": {
      "type": "string",
      "enum": [
        "Fixed Income",
        "Real Assets",
        "Market Tokens",
        "Staking"
      ],
      "description": "Limit to one category pillar"
    },
    "min_yield_pct": {
      "type": "number",
      "description": "Minimum comparable yield in percent"
    },
    "include_unverified": {
      "type": "boolean",
      "description": "Default false. When true, also returns instruments whose secondary-market gate is unknown — clearly flagged. Use only when the user asked what MIGHT be open, never to answer what IS open."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many matches before returning. Use the nextOffset from the previous answer to walk the whole set; its absence means you reached the end."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default 20)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "nextOffset": {
      "type": "integer",
      "description": "Pass as offset to fetch the next page; absent when there is no more"
    },
    "count": {
      "type": "integer"
    },
    "totalMatching": {
      "type": "integer"
    },
    "confirmedOpen": {
      "type": "integer",
      "description": "Secondary-market gate verified as no KYC"
    },
    "unverified": {
      "type": "integer",
      "description": "Possibly open, not confirmed — excluded from results"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "results"
  ]
}
🟢compare_assets(tickers)

Put two or more instruments side by side on the fields that decide between them: yield, risk, minimum, custody, the three KYC gates, target/area, issuer and verification date. Use for "X vs Y" questions instead of calling get_product_details repeatedly.

입력 스키마

{
  "type": "object",
  "properties": {
    "tickers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "maxItems": 6,
      "description": "e.g. [\"USDY\", \"OUSG\", \"BUIDL\"]"
    }
  },
  "required": [
    "tickers"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "compared": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "notFound": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "readThis": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "compared"
  ]
}
🟢get_market_stats

Shape of the dataset: how many instruments, split by pillar, category and risk, how many need no KYC on the secondary market, and how fresh the figures are. Use to ground a claim about coverage before making one.

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Every instrument, both tiers"
    },
    "byTier": {
      "type": "object",
      "properties": {
        "curated": {
          "type": "integer"
        },
        "imported": {
          "type": "integer"
        }
      }
    }
  },
  "required": [
    "total",
    "byTier"
  ]
}
🟢get_market_coverage(country, readable_only)

Which countries this dataset can see into, which it cannot, and why — the question "what is tokenized in Japan / Korea / Brazil / India" answers from here rather than from a general search. This matters because the honest answer is uncomfortable: roughly $9bn of tokenized securities sits in markets NO Western aggregator indexes, this one included. Japan holds over ¥1tn on a permissioned consortium chain run by eighteen banks. Korea issued $2.2bn in 2026 under regulatory sandbox exemptions, with legal recognition phased in from 4 February 2027 and retail capped by amount PER VENUE. India, Vietnam, Indonesia and Thailand have no stablecoin in their own currency at all. Call this before stating what a market holds, or before quoting any total as if it were the world. Omit `country` for every market.

입력 스키마

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "Country slug or name, e.g. japan, korea, brazil, india, switzerland. Omit to list all."
    },
    "readable_only": {
      "type": "boolean",
      "description": "Only markets whose instruments we can actually read (default false — the closed ones are the point)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "markets": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "summary": {
      "type": "object"
    }
  },
  "required": [
    "markets"
  ]
}
🟢search_realt_properties(city, min_yield_pct, max_token_price_usd, rented_only, sort, ...)

Drill into the RealT portfolio: the individual tokenized US rental properties behind the REALT entry, each with its own net rental yield (computed as annual net rent / tokenized property value), token price, monthly rent and occupancy. Use this when someone asks which specific tokenized property to buy, or for the yield/price spread within one issuer.

입력 스키마

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name, e.g. Detroit, Cleveland, Chicago"
    },
    "min_yield_pct": {
      "type": "number",
      "description": "Minimum net rental yield in percent"
    },
    "max_token_price_usd": {
      "type": "number",
      "description": "Maximum price per token in USD"
    },
    "rented_only": {
      "type": "boolean",
      "description": "Only properties with at least one rented unit (default true)"
    },
    "sort": {
      "type": "string",
      "enum": [
        "yield",
        "price",
        "rent"
      ],
      "description": "Sort by net yield (default), token price (cheapest first) or monthly rent"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many matches before returning. Use the nextOffset from the previous answer to walk the whole set; its absence means you reached the end."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default 20)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "nextOffset": {
      "type": "integer",
      "description": "Pass as offset to fetch the next page; absent when there is no more"
    },
    "issuer": {
      "type": "string"
    },
    "snapshotDate": {
      "type": "string"
    },
    "totalMatching": {
      "type": "integer"
    },
    "portfolioTotal": {
      "type": "integer"
    },
    "medianNetYieldPct": {
      "type": [
        "number",
        "null"
      ]
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "portfolioUrl": {
      "type": "string"
    }
  },
  "required": [
    "issuer",
    "totalMatching"
  ]
}
🟢find_tokenized_security(query, issuer, line, include_halted, offset, ...)

Does a tokenized version of a given company, ETF or bond exist, and from which issuer? Searches the whole imported tier by company name, ticker or ISIN: Backed / xStocks, Ondo Global Markets, Swiss SME share registers from Aktionariat, tokenized property from Binaryx, and an aggregated tier covering Dinari, Coinbase, Robinhood Chain, bStocks, Anchored Finance and others. Use this BEFORE saying a stock is not available on-chain. THREE THINGS MATTER IN THE ANSWER: (1) many companies are issued SEVERAL times over — Apple exists as seven different tokens — and those are not duplicates. They differ in issuer, legal form, holder rights, chain and the market each issuer aims them at (targetArea). Report the issuer, not just that the token exists. (2) Sources differ in AUTHORITY. Issuer catalogues state what that issuer issued. The aggregated rows only observe that a token exists: they carry no KYC gate and no custody claim. targetArea is a description of the issuer's stated audience, never an eligibility check. (3) This is identity data: the source states no yield, no minimum and no risk grade, so those fields are absent rather than zero. For instruments that do carry a comparable rate, use search_yield_products instead.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Company name, ticker or ISIN — e.g. \"Apple\", \"AAPL\", \"US0378331005\", \"Silver Trust\""
    },
    "issuer": {
      "type": "string",
      "enum": [
        "backed",
        "ondo"
      ],
      "description": "Restrict to one issuer. Omit to search both, which is usually what you want — the comparison between them is the useful part."
    },
    "line": {
      "type": "string",
      "enum": [
        "xstocks",
        "btokens"
      ],
      "description": "Backed only. xstocks = the xStocks line; btokens = the older bToken DeFi line."
    },
    "include_halted": {
      "type": "boolean",
      "description": "Include instruments Backed has flagged as trading-halted. Default false."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many matches before returning. Use the nextOffset from the previous answer to walk the whole set; its absence means you reached the end."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default 20)"
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "nextOffset": {
      "type": "integer",
      "description": "Pass as offset to fetch the next page; absent when there is no more"
    },
    "matched": {
      "type": "integer"
    },
    "instruments": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "issuedByMoreThanOneIssuer": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "catalogues": {
      "type": "object"
    },
    "readThis": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "matched",
    "instruments"
  ]
}
🟢compare_tokenized_access(query, offset, limit)

For a security tokenized by more than one issuer, compare every token on it side by side — issuer, structure, KYC gates, custody, chain, and the target/area each issuer states. The right tool for "which tokenized versions of Apple exist?": the tokens share a price driver and differ in almost everything else. Hundreds of securities here are tokenized more than once — Apple exists as seven separate tokens; the response carries the exact counts, do not quote a figure from this description. targetArea describes who each issuer aims the product at and where; it is not an eligibility check — who may buy is set by the issuer. Omit `query` to list every such security.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Company name, underlying ticker or ISIN — e.g. \"Apple\", \"AAPL\", \"US0378331005\". Omit to list all."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many matches before returning. Use the nextOffset from the previous answer to walk the whole set; its absence means you reached the end."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default 10)"
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "nextOffset": {
      "type": "integer",
      "description": "Pass as offset to fetch the next page; absent when there is no more"
    },
    "matched": {
      "type": "integer"
    },
    "underlyings": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "matched",
    "underlyings"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 10개
검증됨버전이 기록되지 않음도구 10개
검증됨버전이 기록되지 않음도구 10개