Robinhood Chain 連携ガイド:RPC クライアント、デプロイ、イベント
viem または ethers で Robinhood Chain に接続し、Foundry または Hardhat でデプロイして、WebSocket のログや Webhook イベントを受信し、株式トークンの活動を照会します。
Robinhood Chain RPC を使って公開接続の確認や認証付きの読み取りを行い、対応するメインネットのデータセットには Data API を使用してください。開発者と AI エージェントは同じエンドポイントを使用します。メインネットとテストネットのリクエストは分けてください。
このガイドでできること
- viem または ethers で公開の読み取りを行って Robinhood Chain RPC を確認し、その後はキーを使って認証が必要なメソッドを利用します。
- テストネットで操作を行う前に
eth_chainIdを読み取り、テストネット RPC の接続を確認します。 - データセットの対応状況を確認したうえで、メインネットの Data API を使ってトークン化株式の活動を照会します。指標は株価ではなく、オンチェーン活動を表します。
RPC と WebSocket の利用
- 公開 RPC URL:Robinhood Chain のメインネットページまたはテストネットページで、キー不要のエンドポイント、対応する公開メソッド、レート制限を確認してください。
- API key を使う JSON-RPC:以下のエンドポイントと curl の例を使用してください。ログについては、eth_getLogs メソッドリファレンスとブロック範囲制限ガイドを参照してください。
- API key を使う WebSocket:以下の WebSocket エンドポイントを使用し、
newHeadsとlogsについては WebSocket 購読ガイドに従ってください。公開 RPC は HTTP JSON-RPC でのアクセスです。WebSocket 接続にはキーが必要です。
ネットワーク情報とエンドポイント
Robinhood Chain へのすべてのリクエストは、URL パス内のスラッグ robinhood_mainnet を使って対象ネットワークを明示します。JSON-RPC はパスによるキー認証とリクエストヘッダー認証(x-api-key)の両方に対応し、Data API は /v1/data/robinhood_mainnet/ 配下に REST エンドポイントを提供します。
以下のパラメーターとエンドポイントは、現在有効なネットワークパラメーターを反映しています。
| パラメータ / エンドポイント | 値 / テンプレート | 認証方式 |
|---|---|---|
| チェーン ID(EIP-155) | 4663 | — |
| JSON-RPC(パスに API key を指定) | POST https://api.blockvectra.com/v1/robinhood_mainnet/{api_key} | URL パスに API key を指定 |
| JSON-RPC(ヘッダーに API key を指定) | POST https://api.blockvectra.com/v1/robinhood_mainnet | ヘッダー x-api-key: {api_key} |
| WebSocket(パスに API key を指定) | wss://api.blockvectra.com/v1/robinhood_mainnet/{api_key} | URL パスに API key を指定 |
| WebSocket(ヘッダーに API key を指定) | wss://api.blockvectra.com/v1/robinhood_mainnet | ヘッダー x-api-key: {api_key} または Authorization: Bearer {api_key} |
| WebSocket 購読 | newHeads, logs | — |
| Data API ベース URL | GET https://api.blockvectra.com/v1/data/robinhood_mainnet/… | ヘッダー x-api-key: {api_key} |
| 公開ステータス | GET https://api.blockvectra.com/v1/status | 認証不要(公開) |
viem または ethers で接続する
開発者と AI エージェントは同じサーバー側の設定を使用できます。Node.js 24 以降、viem 2 または ethers 6 を使用し、公開の読み取りから始めてください。キーが必要なメソッドと WebSocket には、環境変数に BLOCKVECTRA_API_KEY を安全に設定してください。キーやキーを含む RPC URL を、ブラウザーのコード、ログ、バージョン管理に含めないでください。
次のコードを network.mjs として保存してください。テストネットから始め、メインネットに移行するには BLOCKVECTRA_CHAIN=robinhood_mainnet を設定してください。このコードは GET /v1/chains から chain_id とメソッドポリシーを読み取ります。キーなしの読み取りでは、カタログの public.url と、public.methods に記載されているメソッドだけを使用してください。公開 HTTP が利用可能でも、WebSocket を利用できるとは限りません。
const chainSlug = process.env.BLOCKVECTRA_CHAIN ?? 'robinhood_testnet';
const key = process.env.BLOCKVECTRA_API_KEY;
const catalogUrl = 'https://api.blockvectra.com/v1/chains';
const response = await fetch(catalogUrl, { signal: AbortSignal.timeout(15_000) });
if (!response.ok) throw new Error(`Chains HTTP ${response.status}`);
const catalog = await response.json();
export const chainInfo = catalog.chains.find(item => item.chain === chainSlug);
if (!chainInfo || !Number.isSafeInteger(chainInfo.chain_id) || chainInfo.chain_id <= 0) {
throw new Error('Missing chain or chain_id');
}
export function allows(method) {
const matches = pattern => pattern.endsWith('*')
? method.startsWith(pattern.slice(0, -1)) : pattern === method;
if (!key) return (chainInfo.public?.methods ?? []).some(matches);
return (chainInfo.methods?.allow ?? []).some(matches)
&& !(chainInfo.methods?.deny ?? []).some(matches);
}
if (!allows('eth_chainId')) throw new Error('eth_chainId is unavailable');
export const rpcUrl = key
? new URL(`./${chainSlug}/${encodeURIComponent(key)}`, catalogUrl).href
: chainInfo.public?.url;
if (!rpcUrl) throw new Error('Public RPC is unavailable; set BLOCKVECTRA_API_KEY');viem-client.mjs として保存し、npm install viem@2 でインストールしてから、node viem-client.mjs を実行してください。
import { createPublicClient, defineChain, http } from 'viem';
import { chainInfo, rpcUrl } from './network.mjs';
export const chain = defineChain({
id: chainInfo.chain_id,
name: chainInfo.name,
nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 },
rpcUrls: { default: { http: [rpcUrl] } },
});
export const client = createPublicClient({ chain, transport: http(rpcUrl) });
if (await client.getChainId() !== chain.id) throw new Error('RPC chain ID mismatch');
console.log(await client.getBlockNumber());ethers を使用する場合は、ethers-client.mjs として保存し、npm install ethers@6 でインストールしてから、node ethers-client.mjs を実行してください。
import { JsonRpcProvider } from 'ethers';
import { chainInfo, rpcUrl } from './network.mjs';
const provider = new JsonRpcProvider(rpcUrl, chainInfo.chain_id, { batchMaxCount: 1 });
const network = await provider.getNetwork();
if (network.chainId !== BigInt(chainInfo.chain_id)) throw new Error('RPC chain ID mismatch');
console.log(await provider.getBlockNumber());
provider.destroy();Foundry または Hardhat でデプロイする
まず、テストネットの Faucetでデプロイ用アカウントにテスト ETH を入金してください。メインネットのトランザクションには、メインネットの ETH が必要です。公式のネットワーク・デプロイガイドに、メインネットとテストネットのチェーン ID が記載されています(参照日:2026-10-07)。このページのエンドポイント表は /v1/chains を使用しています。
選択した URL とチェーン ID を network.mjs から取得してエクスポートしてください。ブロードキャスト前に、methods.allow と methods.deny で eth_sendRawTransaction を確認してください。
export RPC_URL="$(node --input-type=module -e "import { rpcUrl, allows } from './network.mjs'; if (!allows('eth_sendRawTransaction')) throw new Error('Broadcast unavailable'); console.log(rpcUrl)")"
export CHAIN_ID="$(node --input-type=module -e "import { chainInfo } from './network.mjs'; console.log(chainInfo.chain_id)")"Hello.sol、ツールの設定、ブロードキャスト、レシートの確認については、共通の Foundry または Hardhat によるデプロイチュートリアルに進んでください。
WebSocket でコントラクトイベントを受信する
watch-logs.mjs として保存し、LOG_ADDRESS にデプロイ済みコントラクト、または監視対象のトークンコントラクトを設定してください。node watch-logs.mjs を実行してください。このコードは logs を購読する前に、/v1/chains の ws と subscriptions を確認します。
import { createPublicClient, webSocket, isAddress } from 'viem';
import { chain } from './viem-client.mjs';
import { chainInfo, rpcUrl } from './network.mjs';
if (!process.env.BLOCKVECTRA_API_KEY) throw new Error('WebSocket requires BLOCKVECTRA_API_KEY');
const address = process.env.LOG_ADDRESS;
if (!chainInfo.ws || !chainInfo.subscriptions?.includes('logs')) {
throw new Error('WebSocket logs are unavailable; use HTTP backfill or webhook push');
}
if (!address || !isAddress(address)) throw new Error('Set LOG_ADDRESS');
const wsUrl = new URL(rpcUrl);
wsUrl.protocol = 'wss:';
const client = createPublicClient({ chain, transport: webSocket(wsUrl.href) });
const unwatch = client.watchEvent({
address, poll: false,
onLogs: logs => console.log(logs),
onError: error => console.error(error),
});
process.once('SIGINT', () => { unwatch(); process.exit(0); });リスナーが起動したら、エクスポートした同じデプロイ用変数を使って、別のターミナルから ping() トランザクションを送信してください。
cast send "$CONTRACT_ADDRESS" "ping()" --rpc-url "$RPC_URL" \
--private-key "$DEPLOYER_PRIVATE_KEY"最後に処理したブロックを永続化し、(blockHash, transactionHash, logIndex) で重複を排除してください。再接続後は、範囲を限定した eth_getLogs リクエストで取り逃したブロックをバックフィルし、チェーン再編で removed とマークされたログを照合してください。WebSocket 購読とブロック範囲制限を参照してください。
HTTPS 受信先に配信されるアドレスイベントについては、GET /v1/push/chains に対応チェーンと確認数の設定が記載されています。x-api-key ヘッダーを使用してください。購読、署名検証、重複排除、再送については、Webhook プッシュガイドに従ってください。メインネットの株式トークンの活動を照会するには、株式ガイドに進んでください。
curl による直接呼び出しの例
標準の HTTP クライアントを使って、すぐに JSON-RPC を呼び出せます。{api_key} を BlockVectra の API key に置き換えてください。
x-api-key リクエストヘッダーを使って、EIP-155 チェーン ID を照会します。
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H "Content-Type: application/json" \
-H "x-api-key: {api_key}" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'レスポンスの構造
レスポンスは JSON-RPC 2.0 仕様に従います。
- 成功:
jsonrpc: "2.0"、同じid、16 進数でエンコードされた数量を含むresult文字列を持つエンベロープを返します(eth_chainIdは 16 進数でエンコードされたチェーン ID を返し、eth_blockNumberは最新のブロック高を返します)。 - 許可されていないメソッド:ネットワークで許可されているメソッド以外をリクエストすると、JSON-RPC エラーコード
-32601(method not available、課金対象外)が返されます。 - 保持期間外の照会:状態の保持期間より前の過去の状態をリクエストすると、JSON-RPC エラーコード
-32011(課金対象外)が返されます。 - 無効なパラメーター:形式が不正、または許可されていないリクエストパラメーターには、JSON-RPC エラーコード
-32602(課金対象外)が返されます。
機能とメソッドポリシー
Robinhood Chain で利用可能な JSON-RPC メソッド、ログのブロック範囲制限、過去の状態の保持期間は、GET /v1/chains で動的に公開されています。実行トレース(debug_traceTransaction を含む debug_trace*)は、チェーンのメソッドポリシーに従います。
ネットワークパラメータと制限
- eth_getLogs のブロック範囲: リクエストあたり最大 1000 ブロック
- 過去の状態を照会できる範囲: 直近 900 ブロック(範囲外の照会は -32011 を返します)
- 実行トレース(debug_trace*): 対応(debug_traceTransaction、debug_traceCall、debug_traceBlockByNumber、debug_traceBlockByHash)
チェーンごとに利用可能なメソッド:対応チェーン
テストネット
トランザクション用のテスト ETH を取得するには、Robinhood Chain テストネット Faucet ガイドを参照してください。
Robinhood Chain Testnet(チェーン ID:46630)は、エンドポイント https://api.blockvectra.com/v1/robinhood_testnet でメインネットと同じ API key を使用し、x-api-key リクエストヘッダーで認証します。
テストネットのリクエストにはメインネットと同じ CU 重み付けが適用され、同じ残高と無料クレジットから差し引かれます。Robinhood Chain Testnet で利用可能な JSON-RPC メソッドと過去の状態の保持期間は、GET /v1/chains で動的に公開されています。
キーなしでテストネットを読み取り、WebSocket でログをストリーミングしてから、同じキーでメインネットに移行する、実行可能な 3 ステップの導入例については、Robinhood Chain Testnet スターターガイドを参照してください。
curl -s "https://api.blockvectra.com/v1/robinhood_testnet" \
-H "Content-Type: application/json" \
-H "x-api-key: {api_key}" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'期待されるレスポンス:
{"jsonrpc":"2.0","id":1,"result":"0xb626"}| パラメータ / エンドポイント | 値 / テンプレート | 認証方式 |
|---|---|---|
| チェーン ID(EIP-155) | 46630 | — |
| JSON-RPC(パスに API key を指定) | POST https://api.blockvectra.com/v1/robinhood_testnet/{api_key} | URL パスに API key を指定 |
| JSON-RPC(ヘッダーに API key を指定) | POST https://api.blockvectra.com/v1/robinhood_testnet | ヘッダー x-api-key: {api_key} |
| WebSocket(パスに API key を指定) | wss://api.blockvectra.com/v1/robinhood_testnet/{api_key} | URL パスに API key を指定 |
| WebSocket(ヘッダーに API key を指定) | wss://api.blockvectra.com/v1/robinhood_testnet | ヘッダー x-api-key: {api_key} または Authorization: Bearer {api_key} |
| WebSocket 購読 | newHeads, logs | — |
| Data API ベース URL | まだ利用できません | — |
| 公開ステータス | GET https://api.blockvectra.com/v1/status | 認証不要(公開) |
ネットワークパラメータと制限
- eth_getLogs のブロック範囲: リクエストあたり最大 1000 ブロック
- 過去の状態を照会できる範囲: 直近 1023 ブロック(範囲外の照会は -32011 を返します)
- 実行トレース(debug_trace*): 対応(debug_traceTransaction、debug_traceCall、debug_traceBlockByNumber、debug_traceBlockByHash)
チェーンごとに利用可能なメソッド:対応チェーン
トークン化株式データ
Robinhood Chain では、BlockVectra Data API が 2 つのエンドポイントを通じて、トークン化株式のオンチェーンの日次指標とメタデータを提供します。
- 日次ランキング(
GET /v1/data/robinhood_mainnet/stocks):指定した UTC 日付のトークン化株式の日次活動ランキングを、転送活動の多い順に返します。 - 1 つのトークン化株式を取得(
GET /v1/data/robinhood_mainnet/stocks/{token}):トークンアドレスを指定して、トークンコントラクトのメタデータと、直近最大 30 日分の日次指標を取得します。
リクエストパラメーター、レスポンスエンベロープ(StockDailyListEnvelope と StockTokenEnvelope)、ページネーションの注意点、CU 消費量の見積もりの詳細については、トークン化株式ガイドを参照してください。
完全なスターターテンプレート:blockvectra/robinhood-stock-tokens
利用開始と API key
新規アカウントは登録時に 30,000,000 CU を受け取れます。クレジットカードは不要です。まず、キー不要の公開エンドポイント https://api.blockvectra.com/v1/robinhood_mainnet/public を試せます(ウォレット向け JSON-RPC メソッドのみ。Data API にはキーが必要です。メソッドと制限は /v1/chains に従います)。より高いレート制限が必要な場合は、アカウントを登録してください。
- Web コンソール:Ethereum ウォレット署名で登録し、コンソールで API key を生成してください。設定の詳細はクイックスタートガイドを参照してください。
- プログラムによる登録:自律型 AI エージェント、自動化スクリプト、CI パイプラインは、ブラウザーを使わずに Ethereum ウォレット署名(EIP-191)でログインし、API key を発行できます。プログラムによる登録ガイドに従ってください。
- AI エージェント:自律型 AI エージェントは、公式の Model Context Protocol(MCP)サーバーを使って Robinhood Chain の機能を確認できます。AI エージェントを BlockVectra に接続するを参照してください。
- 制限の引き上げ:チャージ後は、アカウント全体の毎秒コール数制限が解除されます。各キーには引き続き Compute Unit(CU)のレート制限とバースト制限が適用されます。現在のレートと請求ユニットについては、料金ページを参照してください。
次のステップ
- データセットディレクトリを見ると、BlockVectra がインデックスしているすべてのデータセットを確認できます。
- 無料プランと料金を見ると、アカウントに含まれる内容を確認できます。
- コンソールにログインして、API key を作成してください。
最終更新: