openfin-onramp について
OpenFinance スキルバンドルに含まれる、暗号資産購入リンクを生成するエージェント向けの法定通貨オンランプ資料です。スマートルーターが法定通貨に応じて Moonpay または Onramp.money を選び、KYC と支払いは各サービスのページで行います。
主な機能
- 01法定通貨に応じたオンランプ事業者の選択
- 02Moonpay と Onramp.money に対応
- 03ユーザーの支払い用リンクを返却
- 04対応するチェーン、コイン、ネットワークの規則
活用シーン
- 01USD で Base 上の USDC を購入するリンクの生成
- 02INR で Polygon 上の USDC を購入するリンクの生成
- 03コインとネットワークの組み合わせに対応するルートの選択
MCP 対応
単一の MCP ツール `get_onramp_url` からスマートルーターを呼び出し、事業者とリンクを返します。事業者を直接指定するルートは REST 専用で、MCP ツールとしては提供されません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openfinance-tech/ skills --skill openfin-onrampインストール後、Claude Code で/openfin-onrampを入力して読み込まれたか確認します。
詳細
法定通貨オンランプ(Moonpay + Onramp.money)
公開元。 OpenFinance がすべて保守している OpenFinance スキルバンドル(openfin-setup、openfin-troubleshooting、openfin-hyperliquid、openfin-relay、openfin-onramp、openfin-polymarket、openfin-onchain)の一部です(https://openfinance.tech)。個別ではなく、セットでインストールしてください。
2 つのプロバイダーを、1 つのスマートルーターエンドポイントで利用できます。
| プロバイダー | 決済手段 | 最適な用途 | baseCurrency |
|---|---|---|---|
| Moonpay | カード、Apple Pay、Google Pay、SEPA、銀行振込 | グローバル/INR 以外 | usd、eur、gbp、… |
| Onramp.money | UPI、IMPS、銀行振込 | インド/INR | inr(のみ) |
エージェントがオンチェーン署名を行うことはありません。ユーザーが返された URL を開き、 KYC と支払いを完了します。
前提条件
openfin-setupを完了していること。- ユーザーの送金先チェーンのウォレットがプロビジョニングされていること(デフォルトは EVM。
chain=solana/currencyCode=*_solの場合は Solana を有効にする必要があります)。
エンドポイント
POST /agent/onramp — スマートルーター(デフォルト)
baseCurrency: "inr" → Onramp.money。それ以外(または省略時。
デフォルトは usd)→ Moonpay。リクエストボディには両方のプロバイダーのフィールドを指定でき、ルーターが
関連するフィールドのみを転送します。
| フィールド | 説明 |
|---|---|
baseCurrency | ルーティングキー(小文字)。デフォルトは "usd" です。 |
chain | ethereum / polygon / base / arbitrum / optimism / bsc / tron / solana。(Onramp.money は一部のみ対応しています。対応表を参照してください。) |
currency | 暗号資産のシンボル(usdc、usdt、eth、sol、btc、…)。 |
amount | ユーザーが支払う法定通貨額。 |
walletAddress | 省略可能。チェーンに対応する呼び出し元のウォレットがデフォルトになります。 |
redirectURL | 成功時にプロバイダーがリダイレクトする URL。 |
レスポンス:{ provider: "moonpay" | "onrampmoney", url: "https://…" }。
スマートルーターが chain + currency から Moonpay の currencyCode を導出する例:
Ethereum 上の eth/usdc → eth/usdc、Polygon/Base/Arbitrum/Optimism 上の usdc → usdc_polygon
/usdc_base/usdc_arbitrum/usdc_optimism、Solana の sol →
sol、Solana の usdc → usdc_sol。不明な場合は、スマートルーターに
currencyCode を直接指定して転送できます。
Moonpay 専用/Onramp.money 専用の REST ルート
(POST /agent/onramp/moonpay、POST /agent/onramp/onrampmoney)も、
ダッシュボードや API を直接利用するクライアント向けに引き続き存在しますが、MCP アクションとしては
公開されていません。baseCurrency: "inr" が正しく Onramp.money に送られるよう、エージェントは
常にスマートルーターを使用してください。以下のプロバイダー強制指定フィールドは、説明を完全にするために記載しています(REST 呼び出し元のみ)。
POST /agent/onramp/onrampmoney — REST 専用(ダッシュボード)
| フィールド | 説明 |
|---|---|
chain | ethereum / polygon / bsc / tron / solana。レガシーな network コードにマッピングされます。 |
network | レガシーコード(erc20 / matic20 / bep20 / trc20 / spl)。chain のマッピングより優先されます。 |
currency / coinCode | コイン(usdc、usdt、busd、matic、bnb、eth、sol)。 |
amount | INR(例:1000 = ₹1000)。 |
coinAmount | 暗号資産側の目標額。両方が送信された場合、amount より優先されます。 |
paymentMethod | 1 = UPI/即時決済(インドではデフォルト)、2 = IMPS/銀行振込。ユーザーが選べるようにする場合は省略してください。 |
walletAddress、redirectURL、addressTag | 省略可能です。 |
チェーン → Onramp の network:ethereum→erc20、polygon→matic20、
bsc→bep20、tron→trc20、solana→spl。
Onramp.money の対応(コイン × ネットワーク)表
この表にない組み合わせを呼び出すとエラーになります。対応する組み合わせを提案するか、 Moonpay に切り替えてください。
| コイン | ネットワーク |
|---|---|
usdt | bep20、matic20、erc20、trc20 |
usdc | bep20、matic20(erc20/solana は非対応) |
busd | bep20 |
matic | matic20 |
bnb | bep20 |
eth | erc20、matic20 |
sol | spl |
一見すると対応しているように見える組み合わせの代替案:
- 「Ethereum 上で INR を使って USDC を購入」→ Polygon(または Moonpay)を提案します。
- 「Solana 上で INR を使って USDC を購入」→ Polygon/BSC(または Moonpay)を提案します。
- 「Arbitrum/Base/Optimism 上で INR を使って ETH を購入」→ Eth/Polygon でオンランプし、
openfin-relayでブリッジするか、Moonpay を使用します。
ウォレットのデフォルト設定
walletAddress が省略された場合:EVM の chain → 呼び出し元の EVM アドレス;
chain=solana または currencyCode=*_sol → 呼び出し元の Solana アドレス。
ウォレットがない場合 → リクエストは失敗します。ユーザーに openfinance.tech を開くよう案内してください。
他のスキルとの組み合わせ
- オンランプの着金先がチェーン X で、ユーザーがチェーン Y で取引したい場合 →
openfin-relay経由でブリッジします。 - Arbitrum 上の USDC → Hyperliquid →
GET /agent/trading/deposit-addressを使用します。 Hyperliquid が受け付けるのは USDC のみです(USDT および USDC.e は不可)。 - INR → Hyperliquid:Onramp.money で INR を Polygon または BSC 上の USDC に交換 →
openfin-relayで Arbitrum にブリッジ → Hyperliquid の入金アドレス。 - Polygon 上の USDC → Polymarket → pUSD に交換し、入金ウォレットに送金します(
GET /agent/polymarket/deposit-wallet)。
例
USD → Base 上の USDC(Moonpay):
POST /agent/onramp
{ "chain": "base", "currency": "usdc", "amount": 100, "baseCurrency": "usd" }
→ { "provider": "moonpay", "url": "https://buy.moonpay.com/?…" }
INR → UPI 経由で Polygon 上の USDC(Onramp.money):
POST /agent/onramp
{ "baseCurrency": "inr", "chain": "polygon", "currency": "usdc",
"amount": 5000, "paymentMethod": 1 }
→ { "provider": "onrampmoney", "url": "https://onramp.money/app/?…" }
禁止事項
- INR 以外の法定通貨には Onramp.money を使用しないでください。INR 専用です。
- (コイン × ネットワーク)の対応表を無視しないでください。再試行するのではなく、対応している組み合わせを提案してください。
- カード情報や UPI の詳細を尋ねないでください。プロバイダーが独自の KYC UI で収集します。
- オンランプのステータスをポーリングしないでください。プロバイダーが資金をウォレットに直接送金します。
openfin-onchain(/balances)経由でオンチェーンの状態を確認してください。
MCP
ツールは 1 つです:get_onramp_url(スマートルーター)。POST /agent/onramp と同じ本文を受け取り、{ provider, url, … } を返します。プロバイダーを強制指定するルートは REST 専用です。get_moonpay_onramp_url または get_onrampmoney_onramp_url という MCP アクションはないため、すべてのオンランプ呼び出しはスマートルーター経由になります。INR を含むトリガー(「INR で USDT を購入」「₹1000 を入金」「UPI で USDC を取得」)は、自動的に Onramp.money にルーティングされます。