moralis-streams-api について
Moralis Streams API 連携の実装を支援するスキルです。開発者向けに EVM、Solana、Bitcoin、共通エンドポイントの操作と、ファミリー別のリクエスト規則や配信上の注意点を案内します。
主な機能
- 01EVM、Solana、Bitcoin のストリーム操作
- 02ファミリー別のエンドポイントとペイロード案内
- 03アドレスと Bitcoin xpub の管理
- 04Webhook 履歴、再送、統計
- 05API キーと配信のトラブル対応
活用シーン
- 01ブロックチェーン活動モニターの作成
- 02ストリーム設定と状態の管理
- 03Webhook 配信の確認または再送
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ novnski/ onchain-skills --skill moralis-streams-apiインストール後、Claude Code で/moralis-streams-apiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/BitcoinStreams.mdCommonPitfalls.mdDeliveryGuarantees.mdErrorHandling.mdFAQ.mdFilterStreams.mdHistoricalJobs.mdListenToAllAddresses.mdMonitorMultipleAddresses.mdReliabilityAndLifecycle.mdReplayFailedWebhooks.mdSolanaStreams.mdStreamConfiguration.mdTriggers.mdTutorials.mdUsefulStreamOptions.mdWebhookResponseBody.mdWebhookSecurity.mdrules/AddAddressToStream.mdbitcoinBlockToWebhook.mdbitcoinGetBlockByNumber.mdbitcoinStreamsAddAddresses.mdbitcoinStreamsAddXpub.mdbitcoinStreamsCreate.mdbitcoinStreamsDelete.mdbitcoinStreamsDeleteAddresses.mdbitcoinStreamsDeleteXpub.mdbitcoinStreamsGet.mdbitcoinStreamsGetAddresses.mdbitcoinStreamsGetAll.md詳細
重要:実装前にルールファイルを読む
Streams のバグが発生する最大の原因は、ストリームのファミリーやリクエスト形式を取り違えることです。
すべてのエンドポイントで、次の手順を実行してください。
rules/{EndpointName}.mdを読む- まずファミリーを確認する:
- EVM:
/streams/evm - Solana:
/streams/solana - Bitcoin:
/streams/bitcoin - ユーティリティ:
/history、/historical-jobs、/settings、/stats
- EVM:
- HTTP メソッドを慎重に確認する(作成は
PUT、更新/ステータス/リプレイはPOST、削除はDELETE) - ストリーム ID がハッシュやアドレスではなく、UUID であることを確認する
- ファミリーに合った設定形式を使用する:
- EVM:
chainIds、topic0、abi、advancedOptions - Solana:
network、programIds、mintAddresses、allAddresses - Bitcoin:
network、includeInputs、includeOutputs、allAddresses、xpub
- EVM:
参照する順序:
- この
SKILL.md rules/内のエンドポイントルールreferences/StreamConfiguration.md- エッジケースに関するファミリー固有のリファレンス
セットアップ
API キー
ユーザーにチャットへ API キーを貼り付けるよう求めないでください。 代わりに、次の手順を実行してください。
MORALIS_API_KEYが設定されているか確認する:[ -n "$MORALIS_API_KEY" ] && echo "API key is set" || echo "API key is NOT set"- 設定されていない場合は、
MORALIS_API_KEY=を記述したローカルの.envを作成することを提案する .envを開いて、自分でキーを追加するようユーザーに伝える- キーがないと Moralis Streams の呼び出しやテストができないことを説明する
キーが必要な場合は、admin.moralis.com/register を案内してください。Free プランは2026 年 9 月 1 日に廃止されました。利用には有料プランが必要です。Starter、Pro、Business の月額料金については、プラン料金を参照し、最新の料金ページで確認してください。無料の未確認 Webhook があっても、Free サブスクリプションプランがあることにはなりません。
キーを確認する
curl "https://api.moralis-streams.com/streams/evm?limit=10" \
-H "X-API-Key: $MORALIS_API_KEY"
ベース URL
https://api.moralis-streams.com
すべてのリクエストには X-API-Key: $MORALIS_API_KEY が必要です。
ストリームのファミリー
| ファミリー | 主なフィルター | 追加項目 | 備考 |
|---|---|---|---|
| EVM | chainIds、topic0、abi、ストリームアドレス | advancedOptions、includeContractLogs、includeNativeTxs、includeInternalTxs、triggers、getNativeBalances | 0x1、0x89 のような 16 進数のチェーン ID を使用 |
| Solana | network、programIds、mintAddresses、ストリームアドレス | allAddresses、ブロックリプレイ用ヘルパー | chainIds、topic0、EVM ABI デコードは使用しない |
| Bitcoin | network、ストリームアドレス、allAddresses | includeInputs、includeOutputs、xpub エンドポイント、ブロックリプレイ用ヘルパー | コントラクトトピックではなく、アドレスと xpub を監視 |
| ユーティリティ | 履歴、リプレイ、履歴ジョブ、設定、統計 | アカウントレベルの操作 | 履歴ジョブのタイムスタンプ単位とファミリーの対象範囲は確認が必要 |
EVM
サポート対象の EVM メインネットチェーンで、コントラクトイベント、ERC20/ERC721/ERC1155 の転送、承認、ネイティブトランザクション、内部トランザクションを扱う場合は、EVM ストリームを使用してください。
ストリームの種類:
| 種類 | 説明 |
|---|---|
tx | ネイティブトランザクション |
log | コントラクトイベントログ |
erc20transfer | ERC20 トークンの転送 |
erc20approval | ERC20 の承認 |
nfttransfer | NFT の転送 |
internalTx | 内部トランザクション |
Solana
ユーザーが mainnet 上のプログラム、ミント、またはアドレスのアクティビティを求めている場合は、Solana ストリームを使用してください。
- 主なフィルターは
programIdsとmintAddressesです networkは["mainnet"]にする必要があります- EVM 形式の
topic0、abi、chainIdsはありません - Solana のアドレスは base58 形式で大文字と小文字を区別します。小文字に変換しないでください
- Solana のペイロードでは、EVM のイベント配列の代わりに
transactions[].signature、accountKeys、instructions、innerInstructions、トークン残高の前後値が使用されます
references/SolanaStreams.md を参照してください。
Bitcoin
アドレスまたは xpub ベースの監視には、Bitcoin ストリームを使用します。
- 主なフィルターは、監視対象のアドレスまたは xpub です
networkは配列ですincludeInputsとincludeOutputsでペイロードの詳細を制御しますnetworkは["mainnet"]である必要があります
["mainnet"] を使用してください。
references/BitcoinStreams.mdを参照してください。
クイックリファレンス
ストリーム ID の形式
// WRONG
"0x1234567890abcdef"
// CORRECT
"YOUR_STREAM_ID"
EVM チェーン ID
"0x1" // Ethereum
"0x89" // Polygon
"0x38" // BSC
"0xa4b1" // Arbitrum
"0xa" // Optimism
"0x2105" // Base
Solana ネットワーク
["mainnet"]
Bitcoin ネットワーク
["mainnet"]
Bitcoin Streams は mainnet のみをサポートします。
ステータス値
"active"
"paused"
"error"
"terminated"
更新リクエストでは、active または paused のみを送信してください。
配信モデル
- Moralis は作成時と更新時に、必須のテスト用 Webhookを送信します。エンドポイントは
2xxを返す必要があります。 - ストリームは少なくとも1回配信されます。冪等性のあるコンシューマーを構築してください。
- EVM と Solana の Webhook フローでは、
confirmed: falseの後にconfirmed: trueが送信されます。 - Bitcoin では、1つの
txidに対して最大3回のライフサイクル通知が配信されることがあります。メンプール(block.hash: "mempool"、block.height: "0")、ブロック内だが未承認(confirmed: false)、その後、2ブロックの承認深度に達してリオーグの影響を受けなくなった状態(confirmed: true)です。 - Webhook の配信失敗が続くと、ストリームは
errorになり、その後terminatedになることがあります。
references/DeliveryGuarantees.md、references/ErrorHandling.md、references/WebhookSecurity.mdを参照してください。
EVM 専用機能
以下は EVM ストリーム専用です。
triggersadvancedOptionsincludeContractLogsincludeNativeTxsincludeInternalTxs(サポート対象は EVM の mainnet チェーンのみです。テストネットは対象外です)includeAllTxLogs(Pro プラン以上で利用できます)getNativeBalancesfilterPossibleSpamAddressestopic0/ABI ベースのフィルタリング
references/UsefulStreamOptions.md、references/Triggers.md、references/ListenToAllAddresses.mdを参照してください。
簡単なトラブルシューティング
| 問題 | 考えられる原因 | 解決方法 |
|---|---|---|
400 Bad Request | リクエスト形式が混在しています | エンドポイントのルールで、ファミリー固有のフィールドを再確認してください |
404 Not Found | ストリーム ID が間違っています | UUID 形式のストリーム ID を使用してください |
Method Not Allowed | メソッドが間違っています | 作成には PUT、更新/ステータス変更/再送には POST を使用してください |
Missing limit | リストエンドポイントです | ?limit=100 を追加してください |
| ストリームが有効にならない | テスト用 Webhook が失敗しました | Webhook エンドポイントから 2xx を返してください |
エンドポイント一覧
EVM、Solana、Bitcoin、および共通ユーティリティにわたる、Streams API の全47エンドポイントの一覧です。
EVM ストリーム
ブロックの再生ヘルパーを含む、EVM ストリームの作成、更新、削除、シミュレーションを行います。
| エンドポイント | 説明 |
|---|---|
| CreateStream | ストリームを作成します |
| DeleteStream | ストリームを削除します |
| DuplicateStream | ストリームを複製します |
| GetStream | 特定の EVM ストリームを取得します。 |
| GetStreamBlockDataByNumber | 指定したストリーム設定を使用して、ブロック番号に対応する Webhook データを取得します |
| GetStreamBlockDataToWebhookByNumber | ストリーム設定とアドレスを使用して、特定のブロック番号に基づき Webhook を送信します。 |
| GetStreams | ストリームを取得します |
| UpdateStream | ストリームを更新します |
| UpdateStreamStatus | ストリームのステータスを更新します |
EVM アドレス
EVM ストリームのアドレスリストを管理します。
| エンドポイント | 説明 |
|---|---|
| AddAddressToStream | アドレスをストリームに追加します |
| DeleteAddressFromStream | アドレスをストリームから削除します |
| GetAddresses | ストリームのアドレスを取得します |
| ReplaceAddressFromStream | ストリームのアドレスを置き換えます |
Solana ストリーム
ブロックの再生ヘルパーを含む、Solana ストリームの作成、更新、削除、シミュレーションを行います。
| エンドポイント | 説明 |
|---|---|
| solanaBlockToWebhook | ブロック番号を指定して Solana の Webhook データを送信 |
| solanaGetBlockByNumber | ブロック番号を指定して Solana の Webhook データを取得 |
| solanaStreamsCreate | Solana ストリームを作成 |
| solanaStreamsDelete | Solana ストリームを削除 |
| solanaStreamsGet | ID で Solana ストリームを取得 |
| solanaStreamsGetAll | Solana ストリームを取得 |
| solanaStreamsUpdate | Solana ストリームを更新 |
| solanaStreamsUpdateStatus | Solana ストリームのステータスを更新 |
Solana アドレス
Solana ストリームのアドレスリストを管理します。
| エンドポイント | 説明 |
|---|---|
| solanaStreamsAddAddresses | Solana ストリームにアドレスを追加 |
| solanaStreamsDeleteAddresses | Solana ストリームからアドレスを削除 |
| solanaStreamsGetAddresses | Solana ストリームのアドレスを取得 |
Bitcoin ストリーム
ブロックの再生ヘルパーを含む、Bitcoin ストリームの作成、更新、削除、シミュレーションを行います。
| エンドポイント | 説明 |
|---|---|
| bitcoinBlockToWebhook | ブロック番号を指定して Bitcoin の Webhook データを送信 |
| bitcoinGetBlockByNumber | ブロック番号を指定して Bitcoin の Webhook データを取得 |
| bitcoinStreamsCreate | Bitcoin ストリームを作成 |
| bitcoinStreamsDelete | Bitcoin ストリームを削除 |
| bitcoinStreamsGet | ID で Bitcoin ストリームを取得 |
| bitcoinStreamsGetAll | Bitcoin ストリームを取得 |
| bitcoinStreamsUpdate | Bitcoin ストリームを更新 |
| bitcoinStreamsUpdateStatus | Bitcoin ストリームのステータスを更新 |
Bitcoin アドレス
Bitcoin ストリームのアドレスリストを管理します。
| エンドポイント | 説明 |
|---|---|
| bitcoinStreamsAddAddresses | Bitcoin ストリームにアドレスを追加 |
| bitcoinStreamsDeleteAddresses | Bitcoin ストリームからアドレスを削除 |
| bitcoinStreamsGetAddresses | Bitcoin ストリームのアドレスを取得 |
Bitcoin xpub
ストリームに関連付けられた Bitcoin xpub を管理します。
| エンドポイント | 説明 |
|---|---|
| bitcoinStreamsAddXpub | Bitcoin ストリームに xpub を追加 |
| bitcoinStreamsDeleteXpub | Bitcoin ストリームから xpub を削除 |
| bitcoinStreamsGetXpubs | Bitcoin ストリームの xpub を取得 |
プロジェクト設定
プロジェクトレベルのストリーム設定を読み取り、更新します。
| エンドポイント | 説明 |
|---|---|
| GetSettings | プロジェクト設定を取得 |
| SetSettings | プロジェクト設定を設定 |
統計
全体およびストリームごとの統計を確認します。
| エンドポイント | 説明 |
|---|---|
| GetStats | プロジェクトの統計を取得 |
| GetStatsByStreamId | Stream ID でプロジェクトの統計を取得 |
履歴
配信履歴やログを一覧表示し、失敗した Webhook 配信を再生します。
| エンドポイント | 説明 |
|---|---|
| GetHistory | 履歴を取得 |
| GetLogs | ログを取得 |
| ReplayHistory | 履歴を再生 |
履歴ジョブ
履歴ストリームジョブを作成し、内容を確認します。本番環境で使用する前に、タイムスタンプの単位とサポートされているストリームファミリーを確認してください。
| エンドポイント | 説明 |
|---|---|
| CreateJob | 履歴ストリームジョブを作成 |
| GetJobs | 履歴ストリームジョブを取得 |
例:EVM ERC20 Transfer モニターを作成
curl -X PUT "https://api.moralis-streams.com/streams/evm" \
-H "X-API-Key: $MORALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhookUrl": "https://your-server.com/webhook",
"description": "Monitor ERC20 transfers",
"tag": "erc20-monitor",
"topic0": ["Transfer(address,address,uint256)"],
"allAddresses": true,
"chainIds": ["0x1", "0x89"],
"advancedOptions": [
{
"topic0": "Transfer(address,address,uint256)",
"includeNativeTxs": true
}
]
}'
例:Solana プログラムストリームを作成
curl -X PUT "https://api.moralis-streams.com/streams/solana" \
-H "X-API-Key: $MORALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhookUrl": "https://your-server.com/webhook",
"description": "Monitor Solana program activity",
"tag": "solana-monitor",
"network": ["mainnet"],
"programIds": ["YOUR_SOLANA_PROGRAM_ID"],
"mintAddresses": ["YOUR_SOLANA_MINT"],
"allAddresses": false
}'
例:Bitcoin アドレスストリームを作成
curl -X PUT "https://api.moralis-streams.com/streams/bitcoin" \
-H "X-API-Key: $MORALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhookUrl": "https://your-server.com/webhook",
"description": "Monitor Bitcoin transactions",
"tag": "bitcoin-monitor",
"network": ["mainnet"],
"includeInputs": true,
"includeOutputs": true,
"allAddresses": false
}'
例:Bitcoin Xpub を追加
curl -X POST "https://api.moralis-streams.com/streams/bitcoin/YOUR_STREAM_ID/xpub" \
-H "X-API-Key: $MORALIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"xpub": "YOUR_XPUB"
}'
ページネーション
一覧エンドポイントではカーソルページネーションを使用します。
# First page
curl "...?limit=100" -H "X-API-Key: $MORALIS_API_KEY"
# Next page
curl "...?limit=100&cursor=<cursor>" -H "X-API-Key: $MORALIS_API_KEY"
サポート対象チェーン
- EVM ストリーム:最新のサポート対象チェーンのドキュメントと 16 進数 ID を使用してください。Moonbeam、Moonriver、Lisk は 2026 年 9 月 25 日に削除される予定です。
- Solana ストリーム:
mainnetのみ - Bitcoin ストリーム:
mainnetのみ
Moralis の最新ドキュメントでは、EVM ストリーム専用のサポート対象チェーンのページも公開されています。
リファレンスドキュメント
- references/BitcoinStreams.md - Bitcoin ストリームの設定、xpub、ペイロードに関する注意点
- references/SolanaStreams.md - Solana のネットワーク、プログラム、ミント、アドレスストリームに関するガイダンス
- references/StreamConfiguration.md - ファミリー間のリクエスト形式に関するリファレンス
- references/CommonPitfalls.md - よくあるミスとデバッグのチェックリスト
- references/DeliveryGuarantees.md - 配信、確認、再試行
- references/ErrorHandling.md - エラー状態、復旧、再生ワークフロー
- references/FAQ.md - ストリームに関する FAQ
- references/HistoricalJobs.md - 履歴ジョブのリクエスト形式と対象範囲に関する注意点
- references/FilterStreams.md - EVM フィルター式
- references/ListenToAllAddresses.md - EVM の全アドレス監視
- references/MonitorMultipleAddresses.md - アドレスリストのパターン
- references/ReplayFailedWebhooks.md - 失敗した Webhook 配信の再生
- references/ReliabilityAndLifecycle.md - 確認、冪等性、ライフサイクル、レート制限、再編成への対応
- references/Triggers.md - EVM の読み取り専用コントラクト呼び出しによるエンリッチメント
- references/Tutorials.md - 実例
- references/UsefulStreamOptions.md - EVM 専用の高度なオプション
- references/WebhookResponseBody.md - Webhook ペイロードの構造
- references/WebhookSecurity.md - 署名の検証
関連項目
- エンドポイントのルール:
rules/*.md - Data API:過去または現在のブロックチェーンの状態を取得するには
@moralis-data-apiを使用してください