概要
Ginco Nodes APIはブロックチェーンノードに標準実装されているAPIとブロックチェーンを使ったアプリケーションの開発に必要な独自APIを提供します。
認証
認証を確認するためには以下のコードをご使用ください。
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "net_version",
"id": 1,
"params": []
}'
以下のレスポンスがあれば認証は成功です。
{
"jsonrpc": "2.0",
"id": 1,
"result": "1"
}
Ginco NodesはAPIキーを使ってリクエストを認証します。
全てのリクエストにおいて、URIにAPIキーを含める必要があります。
エンドポイント
JSON-RPC
ブロックチェーン | ネットワーク | エンドポイント |
---|---|---|
Ethereum | Mainnet | https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY |
Ethereum | Ropsten | https://nodes.gincoapis.com/ethereum/ropsten/v1/API_KEY |
WebSocket
ブロックチェーン | ネットワーク | エンドポイント |
---|---|---|
Ethereum | Mainnet | wss://nodes.gincoapis.com/ethereum/mainnet/v1/ws/API_KEY |
Ethereum | Ropsten | wss://nodes.gincoapis.com/ethereum/ropsten/v1/ws/API_KEY |
Ethereum API 仕様
JSON-RPC
JSON は、軽量なデータフォーマットです。数値、文字列、配列、連想配列(map)を表現することができます。
JSON-RPC はステートレスかつ軽量な RPC (remote procedure call) プロトコルです。主にこの仕様ではいくつかのデータ構造とそれらの処理に関する規則を定義します。JSON-RPCは同プロセス内、ソケット通信、HTTP通信など、その他多くのさまざまな通信においてトランスポートに依存せず使用することができます。また、データフォーマットとしてJSON (RFC 4627) を使用しています。
16進数エンコーディング
主要なデータ型として数量とバイトデータがあります。どちらも16進数エンコーディングの string
で渡されますが、フォーマットが異なります。
数量
数量の例:
○ 0x41 # 10進数で65
○ 0x400 # 10進数で1024
× 0x # 少なくとも1個の数字が必要。0は"0x0"とする
× 0x0400 # 先頭の0埋めはしない
× ff # 0xのprefixは必須
16 進数としてエンコードし、先頭に "0x" のprefixを付けてください。
バイトデータ (byte arrays
, account addresses
, hashes
, bytecode arrays
)
バイトデータの例:
○ 0x41 # サイズ 1, 文字列 "A"
○ 0x004200 # サイズ 3, 文字列 "\0B\0"
○ 0x # サイズ 0, 空文字列 ""
× 0xf0f0f # 偶数桁でない
× 004200 # 0xのprefixは必須
1 バイト当たり 2 桁の 16 進数でエンコードし、先頭に "0x" の prefix を付けてください。
デフォルトブロックパラメータ
以下のメソッドでは追加でデフォルトブロックパラメータを指定することができます。
Ethereumの状態に基づいて動作する要求が行われると、デフォルトブロックパラメータによって指定されたブロック高でのデータを取得します。
デフォルトブロックパラメータには、以下のオプションがあります。
- 16進数文字列 - 指定ブロック高まで (例:
0x6F63A0
だとブロック高 7300000) - 文字列
earliest
- ジェネシスブロック - 文字列
latest
- 最新のブロックまで - 文字列
pending
- pending状態も含む
オブジェクト
ブロックオブジェクト
ブロックオブジェクト例:
{
"difficulty": "0x90c21c56929b2",
"extraData": "0x743132",
"gasLimit": "0x7a121d",
"gasUsed": "0x79fac5",
"hash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"logsBloom": "0x8584009c4dd8101162295d8604b1850200788d4c81f39044821155049d2c036a8a00d07f2a10383180984400b0290ba00293400c1d414a5018104a010220101909b918c601251215109755b90003c6a2c23490829e319a506281d9641ac39a840d3aa03e4a287900e0c09641594409a2010543016e966382c02040754030430e2d708316ec64008f0c0100c713b51f8004005bd48980143e08b22bf2262365b8b2658804a560f1028207666d10288144a5a14609a5bcb221280b13da2f4c8800d8422cc27126a46a04f08c00ca9004081d65cc75d10c62862256118481d2e881a993780808e0a00086e321a4602cb214c0044215281c2ccbca824aca00824a80",
"miner": "0xb2930b35844a230f00e51431acae96fe543a0347",
"mixHash": "0x94cd4e844619ee20989578276a0a9046877d569d37ba076bf2e8e34f76189dea",
"nonce": "0x4617a20003ba3f25",
"number": "0x4c4b40",
"parentHash": "0xcae4df80f5862e4321690857eded0d8a40136dafb8155453920bade5bd0c46c0",
"receiptsRoot": "0x6db67db55d5d972c59646a3bda26a39422e71fe400e4cdf9eb7f5c09b0efa7d0",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x5dd1",
"stateRoot": "0x6092dfd6bcdd375764d8718c365ce0e8323034da3d3b0c6d72cf7304996b86ad",
"timestamp": "0x5a70760d",
"totalDifficulty": "0x7be181d83d2d77d052",
"transactions": [
"0x569c5b35f203ca6db6e2cec44bceba756fad513384e2bd79c06a8c0181273379",
...
],
"transactionsRoot": "0x91dfce7cc2174482b5ebcf6f4beedce854641982eadb1a8cf538e3206abf7836",
"uncles": []
}
フィールド | 型 | 説明 |
---|---|---|
difficulty | string |
採掘難易度 |
extraData | string |
任意の情報 |
gasLimit | string |
許容する最大ガス |
gasUsed | string |
全トランザクションで使用したガス |
hash | string |
ブロックのハッシュ。チェーンに入っていない場合は null |
logsBloom | string |
ログのブルームフィルター。チェーンに入っていない場合は null |
miner | string |
採掘者のアドレス |
mixHash | string |
nonceと合わせて検証に使う値 |
nonce | string |
mixHashと合わせて検証に使う値。チェーンに入っていない場合は null |
number | string |
ブロックナンバー。チェーンに入っていない場合は null |
parentHash | string |
親ブロックのハッシュ |
receiptsRoot | string |
レシートのルートハッシュ |
sha3Uncles | string |
uncleブロックデータのハッシュ |
size | string |
ブロックのサイズ [byte] |
stateRoot | string |
ステートツリーのルートハッシュ |
timestamp | string |
取り込まれた時のUNIXタイムスタンプ |
totalDifficulty | string |
このブロックまでのチェーンの総難易度 |
transactions | array |
トランザクションオブジェクトの配列、またはトランザクションハッシュの配列 |
transactionsRoot | string |
トランザクションのルートハッシュ |
uncles | array |
uncleブロックのハッシュの配列 |
コールオブジェクト
コールオブジェクト例:
{
"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0",
"gasPrice": "0x9184e72a000",
"value": "0x9184e72a",
"data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}
フィールド | 型 | 説明 |
---|---|---|
from | string |
送信者のアドレス |
to | string |
宛先のアドレス |
gas | string |
送信者が提供したガス [wei] |
gasPrice | string |
送信者が決めたガスの値段 [wei] |
value | string |
転送された値 [wei] |
data | string |
4 bytes のメソッドIDとエンコードされたパラメータ。詳細については Ethereum Contract ABI を参照してください。 |
トランザクションオブジェクト
トランザクションオブジェクト例:
{
"blockHash": "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2",
"blockNumber": "0x5daf3b",
"from": "0xa7d9ddbe1f17865597fbd27ec712455208b6b76d",
"gas": "0xc350",
"gasPrice": "0x4a817c800",
"hash": "0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b",
"input": "0x68656c6c6f21",
"nonce": "0x15",
"r": "0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea",
"s": "0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c",
"to": "0xf02c1c8e6114b1dbe8937a39260b5b0a374432bb",
"transactionIndex": "0x41",
"v": "0x25",
"value": "0xf3dbb76162000"
}
フィールド | 型 | 説明 |
---|---|---|
blockHash | string |
ブロックハッシュ。ブロックに入っていない場合は null |
blockNumber | string |
ブロックナンバー。ブロックに入っていない場合は null |
from | string |
送信者のアドレス |
gas | string |
送信者が提供したガス |
gasPrice | string |
送信者が決めたガスの値段 [wei] |
hash | string |
トランザクションハッシュ |
input | string |
トランザクションに含まれたデータ |
nonce | string |
送信者がこのトランザクション以前に送信したトランザクションの数 |
r | string |
ECDSA署名の r |
s | string |
ECDSA署名の s |
to | string |
受信者のアドレス。コントラクト生成時は null |
transactionIndex | string |
ブロック内でのインデックス。ブロックに入っていない場合は null |
v | string |
ECDSA署名の recovery id |
value | string |
転送された値 [wei] |
トランザクションレシートオブジェクト
トランザクションレシートオブジェクト例:
{
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"contractAddress": null,
"cumulativeGasUsed": "0xeda3",
"from": "0x0681d8db095565fe8a346fa0277bffde9c0edbbf",
"gasUsed": "0x9b9b",
"logs": [
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"data": "0x00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"logIndex": "0x0",
"removed": false,
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000000681d8db095565fe8a346fa0277bffde9c0edbbf",
"0x000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c"
],
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000008000000000000000000000000000080000000000000000000000000000000000000000100000002000000000000000010000000000000000000400000000000040000100000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000",
"status": "0x1",
"to": "0xd850942ef8811f2a866692a623011bde52a462c1",
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
フィールド | 型 | 説明 |
---|---|---|
blockHash | string |
ブロックハッシュ |
blockNumber | string |
ブロックナンバー |
contractAddress | string |
コントラクトアドレス。コントラクト生成時以外は null |
cumulativeGasUsed | string |
このトランザクションが実行された時点でのブロック内で使用されたガスの総量 |
from | string |
送信者のアドレス |
gasUsed | string |
トランザクションで使われたガス [wei] |
logs | array |
ログオブジェクトの配列 |
logsBloom | string |
ログのブルームフィルター |
status | string |
ステータス。0x1 は成功、 0x0 は失敗 |
to | string |
受信者のアドレス。コントラクト生成時は null |
transactionHash | string |
トランザクションハッシュ |
transactionIndex | string |
ブロック内でのインデックス |
ログオブジェクト
ログオブジェクト例:
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"data": "0x00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"logIndex": "0x0",
"removed": false,
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000000681d8db095565fe8a346fa0277bffde9c0edbbf",
"0x000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c"
],
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
フィールド | 型 | 説明 |
---|---|---|
address | string |
このログが発生したアドレス |
blockHash | string |
ブロックハッシュ |
blockNumber | string |
ブロックナンバー |
data | string |
indexed ではない引数の値 |
logIndex | string |
ブロック内のログのインデックス |
removed | boolean |
reorgによってログが削除された場合は true 、有効なログの場合は false |
topics | array |
トピックデータの配列 |
transactionHash | string |
トランザクションハッシュ |
transactionIndex | string |
ブロック内でのインデックス |
フィルターオブジェクト
フィルターオブジェクト例:
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockhash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
]
}
フィールド | 型 | デフォルト | 説明 |
---|---|---|---|
address | string | array |
アドレス、またはアドレスの配列 | |
blockhash | string |
ブロックのハッシュ | |
fromBlock | string |
latest |
開始ブロック。デフォルトブロックパラメータ |
toBlock | string |
latest |
終了ブロック。デフォルトブロックパラメータ |
topics | array |
トピックデータの配列 |
RPC PUB SUB
例:
// サブスクリプションの作成
>> {"id": 1, "method": "eth_subscribe", "params": ["newHeads", {}]}
<< {"jsonrpc":"2.0","id":1,"result":"0xcd0c3e8af590364c09d0fa6a1210faf5"}
// 受信通知
<< {"jsonrpc":"2.0","method":"eth_subscription","params":{"subscription":"0xcd0c3e8af590364c09d0fa6a1210faf5","result":{"difficulty":"0xd9263f42a87",<...>, "uncles":[]}}}
<< {"jsonrpc":"2.0","method":"eth_subscription","params":{"subscription":"0xcd0c3e8af590364c09d0fa6a1210faf5","result":{"difficulty":"0xd90b1a7ad02", <...>, "uncles":["0x80aacd1ea4c9da32efd8c2cc9ab38f8f70578fcd46a1a4ed73f82f3e0957f936"]}}}
// サブスクリプションのキャンセル
>> {"id": 1, "method": "eth_unsubscribe", "params": ["0xcd0c3e8af590364c09d0fa6a1210faf5"]}
<< {"jsonrpc":"2.0","id":1,"result":true}
JSON-RPC 2.0の仕様で定義されているようにサブスクリプションを使用して pub/sub を利用できます。 これにより、クライアントはイベントをポーリングする代わりにイベントを待つことができます。
特定のイベントをサブスクライブすることで利用できます。 ノードはサブスクライブIDを返します。 一致するイベントごとに、関連データを含む通知がサブスクライブIDと共に送信されます。
考慮事項
- 通知は現在のイベントに対して送信され、過去のイベントに対しては送信されません。
- サブスクリプションはWebSocketで提供しています。
- サブスクリプションはコネクションに紐付いています。 コネクションが閉じられると、このコネクションを介して作成されたすべてのサブスクリプションが削除されます。
- 通知は内部バッファに格納され、このバッファからクライアントに送信されます。 クライアントが対応できず、バッファされた通知の数が制限(現在は10k)に達すると、コネクションは閉じられます。 いくつかのイベントをサブスクライブすると、ノードが同期を開始したときにすべてのログ/ブロックをリッスンするなど、大量の通知が発生する可能性があることに注意してください。
Ethereum JSON-RPC
web3_clientVersion
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "web3_clientVersion",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "Parity-Ethereum//v2.2.9-stable-5d5b372-20190203/x86_64-linux-gnu/rustc1.31.1"
}
ノードのバージョンを返します。
params
無し
result
型 | 説明 |
---|---|
string |
ノードのバージョン |
net_version
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "net_version",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "1"
}
ネットワークIDを返します。
ネットワーク | ネットワークID |
---|---|
Olympic Testnet (廃止) | 0 |
Ethereum Mainnet | 1 |
Morden Testnet (廃止) | 2 |
Ropsten Testnet | 3 |
Rinkeby Testnet | 4 |
Kovan Testnet | 42 |
params
無し
result
型 | 説明 |
---|---|
string |
ネットワークID |
net_peerCount
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "net_peerCount",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x64"
}
接続しているピアの数を返します。
params
無し
result
型 | 説明 |
---|---|
string |
接続しているピアの数 |
net_listening
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "net_listening",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
ネットワーク接続がアクティブかどうかを返します。
params
無し
result
型 | 説明 |
---|---|
boolean |
アクティブの場合は true 、それ以外は false |
eth_protocolVersion
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_protocolVersion",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "63"
}
プロトコルバージョンを返します。
params
無し
result
型 | 説明 |
---|---|
string |
プロトコルバージョン |
eth_syncing
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_syncing",
"id": 1,
"params": []
}'
レスポンス例 (同期中):
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"currentBlock": "0x4f3104",
"highestBlock":"0x6edbac",
"startingBlock":"0x0"
}
}
レスポンス例 (同期済):
{
"jsonrpc": "2.0",
"id": 1,
"result": false
}
同期状態を返します。
params
無し
result (同期中)
フィールド | 型 | 説明 |
---|---|---|
startingBlock | string |
インポートが開始されたブロックナンバー |
currentBlock | string |
現在のブロックナンバー |
highestBlock | string |
推定された最新ブロックナンバー |
result (同期済)
型 | 説明 |
---|---|
boolean |
false |
eth_gasPrice
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_gasPrice",
"params": [],
"id": 1
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x342770c00"
}
現在のGas Priceを返します。
params
無し
result
型 | 説明 |
---|---|
string |
Gas Price [wei] |
eth_blockNumber
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"id": 1,
"params": []
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x6edbcb"
}
最新のブロックナンバーを返します。
params
無し
result
型 | 説明 |
---|---|
string |
ブロックナンバー |
eth_getBalance
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"id": 1,
"params": [
"0x3f17f1962B36e491b30A40b2405849e597Ba5FB5",
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x8b2deac5eb3c0a09"
}
指定したアドレスの残高を返します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | アドレス |
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
残高 [wei] |
eth_getStorageAt
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getStorageAt",
"id": 1,
"params": [
"0x06012c8cf97BEaD5deAe237070F9587f8E7A266d",
"0x0",
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x000000000000000000000000af1e54b359b0897133f437fc961dd16f20c045e1"
}
指定したアドレスのストレージポジションから値を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | アドレス |
string |
✓ | ストレージポジション |
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
ストレージポジションにある値 |
eth_getTransactionCount
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getTransactionCount",
"id": 1,
"params": [
"0xc94770007dda54cF92009BFF0dE90c06F603a09f",
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1d7"
}
指定したアドレスの送信済みトランザクションの数を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | アドレス |
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
トランザクションの数 |
eth_getBlockTransactionCountByHash
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getBlockTransactionCountByHash",
"id": 1,
"params": [
"0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x6d"
}
指定したブロックハッシュのブロックに含まれるトランザクションの数を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
result
型 | 説明 |
---|---|
string |
トランザクションの数 |
eth_getBlockTransactionCountByNumber
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getBlockTransactionCountByNumber",
"id": 1,
"params": [
"0x4c4b40"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x6d"
}
指定したブロックナンバーのブロックに含まれるトランザクションの数を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
トランザクションの数 |
eth_getUncleCountByBlockHash
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getUncleCountByBlockHash",
"id": 1,
"params": [
"0x48c4f178862ad6228a4058af0d64a908c09a5e1305cf54ef66cc71ac35d70276"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x2"
}
指定したブロックハッシュのブロックのuncleブロックの数を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
result
型 | 説明 |
---|---|
string |
uncleブロックの数 |
eth_getUncleCountByBlockNumber
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getUncleCountByBlockNumber",
"id": 1,
"params": [
"0x4f4387"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x2"
}
指定したブロックナンバーのブロックのuncleブロックの数を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
uncleブロックの数 |
eth_getCode
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getCode",
"id": 1,
"params": [
"0x06012c8cf97bead5deae237070f9587f8e7a266d",
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x6060604052600436106102a55763ffff..."
}
指定したコントラクトアドレスのコードを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | コントラクトアドレス |
string |
✓ | デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
コンパイルされたコード |
eth_sendRawTransaction
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"id": 1,
"params": [
"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id":1,
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}
署名済みトランザクションをブロードキャストします。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | 署名済みトランザクション |
result
型 | 説明 |
---|---|
string |
トランザクションハッシュ |
eth_call
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_call",
"id": 1,
"params": [{
"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0",
"gasPrice": "0x9184e72a000",
"value": "0x9184e72a",
"data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
},
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id":1,
"result": "0x"
}
ブロックチェーンに追加されないコールまたはトランザクションを作成し新規のメッセージを呼び出します。
params
型 | 必須 | 説明 |
---|---|---|
object |
✓ | コールオブジェクト |
string |
デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
トランザクションハッシュ |
eth_estimateGas
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_estimateGas",
"id": 1,
"params": [{
"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0",
"gasPrice": "0x9184e72a000",
"value": "0x9184e72a",
"data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
},
"latest"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id":1,
"result": "0x5cec"
}
ブロックチェーンに追加されないコールまたはトランザクションを作成し、gasUsed
を返します。これは gasUsed
の推定に使用できます。
params
型 | 必須 | 説明 |
---|---|---|
object |
✓ | コールオブジェクト |
string |
デフォルトブロックパラメータ |
result
型 | 説明 |
---|---|
string |
Gas Used [wei] |
eth_getBlockByHash
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getBlockByHash",
"id": 1,
"params": [
"0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
true
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"difficulty": "0x90c21c56929b2",
"extraData": "0x743132",
"gasLimit": "0x7a121d",
"gasUsed": "0x79fac5",
"hash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"logsBloom": "0x8584009c4dd8101162295d8604b1850200788d4c81f39044821155049d2c036a8a00d07f2a10383180984400b0290ba00293400c1d414a5018104a010220101909b918c601251215109755b90003c6a2c23490829e319a506281d9641ac39a840d3aa03e4a287900e0c09641594409a2010543016e966382c02040754030430e2d708316ec64008f0c0100c713b51f8004005bd48980143e08b22bf2262365b8b2658804a560f1028207666d10288144a5a14609a5bcb221280b13da2f4c8800d8422cc27126a46a04f08c00ca9004081d65cc75d10c62862256118481d2e881a993780808e0a00086e321a4602cb214c0044215281c2ccbca824aca00824a80",
"miner": "0xb2930b35844a230f00e51431acae96fe543a0347",
"mixHash": "0x94cd4e844619ee20989578276a0a9046877d569d37ba076bf2e8e34f76189dea",
"nonce": "0x4617a20003ba3f25",
"number": "0x4c4b40",
"parentHash": "0xcae4df80f5862e4321690857eded0d8a40136dafb8155453920bade5bd0c46c0",
"receiptsRoot": "0x6db67db55d5d972c59646a3bda26a39422e71fe400e4cdf9eb7f5c09b0efa7d0",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x5dd1",
"stateRoot": "0x6092dfd6bcdd375764d8718c365ce0e8323034da3d3b0c6d72cf7304996b86ad",
"timestamp": "0x5a70760d",
"totalDifficulty": "0x7be181d83d2d77d052",
"transactions": [
{
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"from": "0xd6cb6744b7f2da784c5afd6b023d957188522198",
"gas": "0x1d8a8",
"gasPrice": "0x1f3305bc00",
"hash": "0x569c5b35f203ca6db6e2cec44bceba756fad513384e2bd79c06a8c0181273379",
"input": "0x",
"nonce": "0xfef",
"r": "0x5df5034c46551b630553201581bd690e021c13b3134f37d14eb19ea971292a39",
"s": "0x4f263a9ef7b6e6d18d1b6c120f051e51aa737e12aabcf9466377779eb60656a9",
"to": "0x88a690553913a795c3c668275297635b903a29e5",
"transactionIndex": "0x0",
"v": "0x25",
"value": "0x2c250d4240020400"
},
{...}
],
"transactionsRoot": "0x91dfce7cc2174482b5ebcf6f4beedce854641982eadb1a8cf538e3206abf7836",
"uncles": []
}
}
指定したブロックハッシュのブロック情報を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
boolean |
✓ | トランザクションオブジェクトを含めるかどうか |
result
型 | 説明 |
---|---|
object |
ブロックオブジェクト。存在しない場合は null |
eth_getBlockByNumber
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getBlockByNumber",
"id": 1,
"params": [
"0x4c4b40",
false
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"difficulty": "0x90c21c56929b2",
"extraData": "0x743132",
"gasLimit": "0x7a121d",
"gasUsed": "0x79fac5",
"hash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"logsBloom": "0x8584009c4dd8101162295d8604b1850200788d4c81f39044821155049d2c036a8a00d07f2a10383180984400b0290ba00293400c1d414a5018104a010220101909b918c601251215109755b90003c6a2c23490829e319a506281d9641ac39a840d3aa03e4a287900e0c09641594409a2010543016e966382c02040754030430e2d708316ec64008f0c0100c713b51f8004005bd48980143e08b22bf2262365b8b2658804a560f1028207666d10288144a5a14609a5bcb221280b13da2f4c8800d8422cc27126a46a04f08c00ca9004081d65cc75d10c62862256118481d2e881a993780808e0a00086e321a4602cb214c0044215281c2ccbca824aca00824a80",
"miner": "0xb2930b35844a230f00e51431acae96fe543a0347",
"mixHash": "0x94cd4e844619ee20989578276a0a9046877d569d37ba076bf2e8e34f76189dea",
"nonce": "0x4617a20003ba3f25",
"number": "0x4c4b40",
"parentHash": "0xcae4df80f5862e4321690857eded0d8a40136dafb8155453920bade5bd0c46c0",
"receiptsRoot": "0x6db67db55d5d972c59646a3bda26a39422e71fe400e4cdf9eb7f5c09b0efa7d0",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x5dd1",
"stateRoot": "0x6092dfd6bcdd375764d8718c365ce0e8323034da3d3b0c6d72cf7304996b86ad",
"timestamp": "0x5a70760d",
"totalDifficulty": "0x7be181d83d2d77d052",
"transactions": [
"0x569c5b35f203ca6db6e2cec44bceba756fad513384e2bd79c06a8c0181273379",
...
],
"transactionsRoot": "0x91dfce7cc2174482b5ebcf6f4beedce854641982eadb1a8cf538e3206abf7836",
"uncles": []
}
}
指定したブロックナンバーのブロック情報を取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックナンバー |
boolean |
✓ | トランザクションオブジェクトを含めるかどうか |
result
型 | 説明 |
---|---|
object |
ブロックオブジェクト。存在しない場合は null |
eth_getTransactionByHash
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getTransactionByHash",
"id": 1,
"params": [
"0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2",
"blockNumber": "0x5daf3b",
"from": "0xa7d9ddbe1f17865597fbd27ec712455208b6b76d",
"gas": "0xc350",
"gasPrice": "0x4a817c800",
"hash": "0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b",
"input": "0x68656c6c6f21",
"nonce": "0x15",
"r": "0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea",
"s": "0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c",
"to": "0xf02c1c8e6114b1dbe8937a39260b5b0a374432bb",
"transactionIndex": "0x41",
"v": "0x25",
"value": "0xf3dbb76162000"
}
}
指定したトランザクションハッシュのトランザクションオブジェクトを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | トランザクションハッシュ |
result
型 | 説明 |
---|---|
object |
トランザクションオブジェクト。存在しない場合は null |
eth_getTransactionByBlockHashAndIndex
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getTransactionByBlockHashAndIndex",
"id": 1,
"params": [
"0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"0x1"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"from": "0x0681d8db095565fe8a346fa0277bffde9c0edbbf",
"gas": "0x13736",
"gasPrice": "0x174876e800",
"hash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"input": "0xa9059cbb000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"nonce": "0x361d7",
"r": "0x52a8b9e9bceeb6b2b50b863fb4b5ab529bf79db271df1d30381544e93b9393f4",
"s": "0x1e1f0fefea2741ab67c0ce795c0dff5c0faed8c5d32e03acc963119cdc84d41f",
"to": "0xd850942ef8811f2a866692a623011bde52a462c1",
"transactionIndex": "0x1",
"v": "0x26",
"value": "0x0"
}
}
指定したブロックハッシュとインデックスからトランザクションオブジェクトを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
string |
✓ | トランザクションインデックス |
result
型 | 説明 |
---|---|
object |
トランザクションオブジェクト。存在しない場合は null |
eth_getTransactionByBlockNumberAndIndex
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getTransactionByBlockNumberAndIndex",
"id": 1,
"params": [
"0x4c4b40",
"0x1"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"from": "0x0681d8db095565fe8a346fa0277bffde9c0edbbf",
"gas": "0x13736",
"gasPrice": "0x174876e800",
"hash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"input": "0xa9059cbb000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"nonce": "0x361d7",
"r": "0x52a8b9e9bceeb6b2b50b863fb4b5ab529bf79db271df1d30381544e93b9393f4",
"s": "0x1e1f0fefea2741ab67c0ce795c0dff5c0faed8c5d32e03acc963119cdc84d41f",
"to": "0xd850942ef8811f2a866692a623011bde52a462c1",
"transactionIndex": "0x1",
"v": "0x26",
"value": "0x0"
}
}
指定したブロックハッシュとインデックスからトランザクションオブジェクトを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
string |
✓ | トランザクションインデックス |
result
型 | 説明 |
---|---|
object |
トランザクションオブジェクト。存在しない場合は null |
eth_getTransactionReceipt
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getTransactionReceipt",
"id": 1,
"params": [
"0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"contractAddress": null,
"cumulativeGasUsed": "0xeda3",
"from": "0x0681d8db095565fe8a346fa0277bffde9c0edbbf",
"gasUsed": "0x9b9b",
"logs": [
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"data": "0x00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"logIndex": "0x0",
"removed": false,
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000000681d8db095565fe8a346fa0277bffde9c0edbbf",
"0x000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c"
],
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000008000000000000000000000000000080000000000000000000000000000000000000000100000002000000000000000010000000000000000000400000000000040000100000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000",
"status": "0x1",
"to": "0xd850942ef8811f2a866692a623011bde52a462c1",
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
}
指定したトランザクションハッシュのトランザクションレシートを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | トランザクションハッシュ |
result
型 | 説明 |
---|---|
object |
トランザクションレシートオブジェクト。存在しない場合は null |
eth_getUncleByBlockHashAndIndex
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getUncleByBlockHashAndIndex",
"id": 1,
"params": [
"0x48c4f178862ad6228a4058af0d64a908c09a5e1305cf54ef66cc71ac35d70276",
"0x1"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"difficulty": "0xb32a9b416c0b1",
"extraData": "0x6e616e6f706f6f6c2e6f7267",
"gasLimit": "0x7a121d",
"gasUsed": "0x43f8b3",
"hash": "0x657780948b9241f1f731a0e9b5e2577e2348ca7bcccc063c1f5620c3c14fc45f",
"logsBloom": "0x00220080000080002001000000000000000000000100000101000240180080000c0200000000000010040020000002000000400080000000000000900048000000000000480000000080000a00040000000000000000000008000010000000000c00000800021400004000000080080802000000000000000000001000400204004100001004028000400000010000000000000000000200000028000000041000000000020200000010000004008000040000200000000000401000002040000001000300000080020400000888000000c010000000040019000000000000010400001000000000040000000880008040000810001000000800020202000100",
"miner": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5",
"mixHash": "0x741731b07ca14ce9a9e2b170bd94a2f5c6a36ccd1daa9493eedb9e6c6b2a261f",
"nonce": "0xddd54d400c8126cb",
"number": "0x4f4386",
"parentHash": "0x0fd3a20ca8d2282f679d9c3276139f6738b9ec6b0f07deb748593e071edbd1d9",
"receiptsRoot": "0x9b59e36b092f00f0a3f334d19ed25bf8ee6680f9a4afddc3b7ee709eb96403db",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x215",
"stateRoot": "0x473de79d08133c04b4a3330297e42169b1275d2577b9a9ed0b76e943d704a68c",
"timestamp": "0x5a9bd63f",
"totalDifficulty": null,
"transactionsRoot": "0x6e819170132f55e8cac7ad2d4d99c01d9dd42fffe9fcd2eb09c21154352a4db3",
"uncles": []
}
}
指定したブロックハッシュとインデックスからuncleブロックを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックハッシュ |
string |
✓ | uncleインデックス |
result
型 | 説明 |
---|---|
object |
ブロックオブジェクト。存在しない場合は null |
eth_getUncleByBlockNumberAndIndex
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getUncleByBlockNumberAndIndex",
"id": 1,
"params": [
"0x4f4387",
"0x1"
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"difficulty": "0xb32a9b416c0b1",
"extraData": "0x6e616e6f706f6f6c2e6f7267",
"gasLimit": "0x7a121d",
"gasUsed": "0x43f8b3",
"hash": "0x657780948b9241f1f731a0e9b5e2577e2348ca7bcccc063c1f5620c3c14fc45f",
"logsBloom": "0x00220080000080002001000000000000000000000100000101000240180080000c0200000000000010040020000002000000400080000000000000900048000000000000480000000080000a00040000000000000000000008000010000000000c00000800021400004000000080080802000000000000000000001000400204004100001004028000400000010000000000000000000200000028000000041000000000020200000010000004008000040000200000000000401000002040000001000300000080020400000888000000c010000000040019000000000000010400001000000000040000000880008040000810001000000800020202000100",
"miner": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5",
"mixHash": "0x741731b07ca14ce9a9e2b170bd94a2f5c6a36ccd1daa9493eedb9e6c6b2a261f",
"nonce": "0xddd54d400c8126cb",
"number": "0x4f4386",
"parentHash": "0x0fd3a20ca8d2282f679d9c3276139f6738b9ec6b0f07deb748593e071edbd1d9",
"receiptsRoot": "0x9b59e36b092f00f0a3f334d19ed25bf8ee6680f9a4afddc3b7ee709eb96403db",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x215",
"stateRoot": "0x473de79d08133c04b4a3330297e42169b1275d2577b9a9ed0b76e943d704a68c",
"timestamp": "0x5a9bd63f",
"totalDifficulty": null,
"transactionsRoot": "0x6e819170132f55e8cac7ad2d4d99c01d9dd42fffe9fcd2eb09c21154352a4db3",
"uncles": []
}
}
指定したブロックナンバーとインデックスからuncleブロックを取得します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | ブロックナンバー |
string |
✓ | uncleインデックス |
result
型 | 説明 |
---|---|
object |
ブロックオブジェクト。存在しない場合は null |
eth_getLogs
リクエスト例:
curl -X "POST" "https://nodes.gincoapis.com/ethereum/mainnet/v1/API_KEY" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"id": 1,
"params": [
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockhash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
]
}
]
}'
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"address": "0xd850942ef8811f2a866692a623011bde52a462c1",
"blockHash": "0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382",
"blockNumber": "0x4c4b40",
"data": "0x00000000000000000000000000000000000000000000009a41e07a74a99ec000",
"logIndex": "0x0",
"removed": false,
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000000681d8db095565fe8a346fa0277bffde9c0edbbf",
"0x000000000000000000000000f53354a8dc35416d28ab2523589d1b44843e025c"
],
"transactionHash": "0x696a35492b283624ccf4ae9438ae2d5d5e84a4a00798155b568d1eb52606d829",
"transactionIndex": "0x1"
}
]
}
指定したフィルターオブジェクトにマッチした全てのログを取得します。
params
型 | 必須 | 説明 |
---|---|---|
object |
✓ | フィルターオブジェクト |
result
型 | 説明 |
---|---|
array |
ログオブジェクトの配列 |
Ethereum WebSocket
eth_newBlockFilter
リクエスト例:
{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":1}
レスポンス例:
{
"jsonrpc":"2.0",
"id":1,
"result":"0xfe704947a3cd3ca12541458a4321c869"
}
新しいブロックが生成されたことを通知するために、フィルターを作成します。 状態が変化したかどうかを確認するには、eth_getFilterChangesを呼び出します。
params
無し
result
型 | 説明 |
---|---|
string |
フィルターID |
eth_newFilter
リクエスト例:
{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}],"id":1}
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x779717975044a8ff47ef01fe12417e34"
}
状態が変化したことを通知するために、フィルターオブジェクトを作成します。 状態が変化したかどうかを確認するには、eth_getFilterChangesを呼び出します。
フィルターの指定に関する注意
トピックは順序に依存します。トピックが[A、B]のログを持つトランザクションは、次のトピックフィルターによって照合されます。
[]
なんでも[A]
最初のポジションのA(およびその後の何か)[null, B]
最初の位置にあるものと2番目の位置にあるもの(そしてその後のもの)[A, B]
最初の位置にA、2番目の位置にB(そしてそれ以降のもの)[[A, B], [A, B]]
(A OR B)が最初の位置にあり、(A OR B)が2番目の位置にある(およびそれ以降のすべてのもの)
params
型 | 必須 | 説明 |
---|---|---|
object |
✓ | フィルターオブジェクト |
result
型 | 説明 |
---|---|
string |
フィルターID |
eth_newPendingTransactionFilter
リクエスト例:
{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":1}
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0xb6e3d833c758ee5ccfaf69defa1014b8"
}
新しい保留中のトランザクションが到着したことを通知するために、フィルターを作成します。 状態が変化したかどうかを確認するには、eth_getFilterChangesを呼び出します。
params
無し
result
型 | 説明 |
---|---|
string |
フィルターID |
eth_getFilterChanges
リクエスト例:
{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x779717975044a8ff47ef01fe12417e34"],"id":1}
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"address": "0x8e766f57f7d16ca50b4a0b90b88f6468a09b0439",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x000000000000000000000000c5341278a92e2bd8203ab931c6780c15d367713f",
"0x00000000000000000000000064ed0ecd77b74ed7fef52a191d1223830cc680b1"
],
"data": "0x000000000000000000000000000000000000000000000075819c035188d50000",
"blockNumber": "0x76a647",
"transactionHash": "0x6baf33d5c2c4aac8324da4599b8bac45553fbbbcf57319eff271e9601e221ba5",
"transactionIndex": "0x70",
"blockHash": "0x2d9bd7a14784bd2b1bf30aea0fb3f8ca04e4c01c26cbe1116f9563522c79acd6",
"logIndex": "0x77",
"removed": false
},
{
"address": "0xc4ef2b203ba462c7e52b8ff8c7115aafe96486d7",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000003cb485c930765709b62f0727aa87e25a98b39d97",
"0x00000000000000000000000091341a850b9131e4db37ee904a0a5b68caf914ff"
],
"data": "0x0000000000000000000000000000000000000000000000000000000001201600",
"blockNumber": "0x76a647",
"transactionHash": "0xb39aae726371c014892296c89d8db533e568773542684d1b8ea111f143a1ee2b",
"transactionIndex": "0x71",
"blockHash": "0x2d9bd7a14784bd2b1bf30aea0fb3f8ca04e4c01c26cbe1116f9563522c79acd6",
"logIndex": "0x78",
"removed": false
}
]
}
前回のリクエスト以降に発生したログの配列を返します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | フィルターID |
result
eth_newBlockFilter
で作成されたフィルターの場合
型 | 説明 |
---|---|
array |
ブロックハッシュの配列 |
eth_newPendingTransactionFilter
で作成されたフィルターの場合
型 | 説明 |
---|---|
array |
トランザクションハッシュの配列 |
eth_newFilter
で作成されたフィルターの場合
型 | 説明 |
---|---|
array |
ログオブジェクトの配列、前回のリクエスト以降変化がない場合は空の配列 |
eth_uninstallFilter
フィルターを削除します。
リクエスト例:
{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0x779717975044a8ff47ef01fe12417e34"],"id":1}
レスポンス例:
{
"jsonrpc":"2.0",
"id":1,
"result":true
}
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | フィルターID |
result
型 | 説明 |
---|---|
boolean |
フィルターのアンインストールの成否 |
eth_subscribe
リクエスト例:
{"id": 1, "method": "eth_subscribe", "params": ["newHeads", {"includeTransactions": true}]}
レスポンス例:
{"jsonrpc":"2.0","id":1,"result":"0xf17365919bc66dc7eac3a0da003e7b4f"}
サブスクリプション名を最初のパラメーターとして使用して、通常のRPC呼び出しで作成されます。 成功した場合はサブスクリプションを返します。
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | サブスクリプション名 |
object |
✓ | オプション |
newHeads
newHeads 例:
>> {"id": 1, "method": "eth_subscribe", "params": ["newHeads"]}
<< {"jsonrpc":"2.0","id":1,"result":"0xc740b2530d362d9d97103f77c06c9a94"}
<< {
"jsonrpc": "2.0",
"method": "eth_subscription",
"params": {
"subscription": "0xc740b2530d362d9d97103f77c06c9a94",
"result": {
"parentHash": "0x49e4536811cd9c2f5ec3acdf06e6eff00a108f0b10eeb5946152f13c25ae8efe",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"miner": "0xea674fdde714fd979de3edf0f56aa9716b898ec8",
"stateRoot": "0xaee5516769d1277a6464e6d7c95663d30d839713c50298d7e258d5cdb520b08c",
"transactionsRoot": "0xd3c4bf5a7a0559352bc90225e6eaab51279491f561f42821640567e20bd15774",
"receiptsRoot": "0x7f3affabad533541fb8650500e7dfdc08e44a3ab0c2e5529843b8c7b0c81269f",
"logsBloom": "0x80400000800240080208100806221c02001002080800080862109020220104200308220000884041004024e012024108234006502280018108b2812070b40080000481a021040120400208088011008904022406c20400440002240201000401088a01408a014002114851400544680110883000080004000860619804a0040480024228080424040104040c8140f48041a00111410024020480104202000120068102008004000110002600205004201100080aa40a608048000090180104084004036390000108010000003e001004888a00461019490020000048014870890810200010000280100080008500200019b08880000200001004102c00820014",
"difficulty": "0x75b043325cbf8",
"number": "0x76a656",
"gasLimit": "0x7a1e98",
"gasUsed": "0x7a1b11",
"timestamp": "0x5cde44f9",
"extraData": "0x505059452d65746865726d696e652d6575312d34",
"mixHash": "0xe285a1b3e09b6c751df07c8456ee6a366df9dd79a1ec45747afff3eb02ff87da",
"nonce": "0xc8feb598052ac19a",
"hash": "0xf4687bbe9d1a1b2786f34b684c397a757f6896f4b96f5c494ab70d473ed93d7c"
}
}
}
チェーンのreorgを含め、新しいヘッダーがチェーンに追加されるたびに通知を発行します。 ブルームフィルターを使用して、必要なログがブロックに含まれているかどうかを判断できます。
チェーンが再編成された場合、サブスクリプションは新しいチェーン用のすべての新しいヘッダーを発行します。 そのため、サブスクリプションは同じブロック高に複数のヘッダーを発行できます。
オプション
無し
logs
logs 例:
>> {"id": 1, "method": "eth_subscribe", "params": ["logs", {"address": "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", "topics": ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]}
<< {"jsonrpc":"2.0","id":1,"result":"0x6ffd944960311ba3cee4723508f9944c"}
<< {
"jsonrpc": "2.0",
"method": "eth_subscription",
"params": {
"subscription": "0x6ffd944960311ba3cee4723508f9944c",
"result": {
"address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
],
"data": "0x000000000000000000000000b1690c08e213a35ed9bab7b318de14420fb57d8c000000000000000000000000aaa13ad94f8489dcb399c33f9cbec49c3a22a060000000000000000000000000000000000000000000000000000000000015621b",
"blockNumber": "0x76a65c",
"transactionHash": "0x6ca6109c5836a47b0437010b521dd332f00a6923e79f67eb374bbac8eae95052",
"transactionIndex": "0x55",
"blockHash": "0x13f7d01f2aa5255dccc02d1fdf4a3d882cb3984f72463679e284a58849d051ba",
"logIndex": "0x2b",
"removed": false
}
}
}
新しくインポートされたブロックに含まれていて、指定されたフィルター条件に一致するログを返します。
チェーンの再編成の場合、古いチェーン上にある前に送信されたログは、removedプロパティーをtrueに設定して再送されます。 新しいチェーンになったトランザクションからのログが発行されます。 そのため、サブスクリプションは同じトランザクションのログを複数回発行することがあります。
オプション
型 | 必須 | 説明 |
---|---|---|
string |
アドレスまたはアドレスの配列、これらのアドレスから作成されたログのみが返されます | |
array |
トピック、指定されたトピックと一致するログのみが返されます |
newPendingTransactions
newPendingTransactions 例:
>> {"id": 1, "method": "eth_subscribe", "params": ["newPendingTransactions"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x39ad93e3fc9ca45c19af18588cd537ff"}
<< {
"jsonrpc": "2.0",
"method": "eth_subscription",
"params": {
"subscription": "0x39ad93e3fc9ca45c19af18588cd537ff",
"result": "0x881e6847b63bc4104939616de9e487d803dd929627114240cd21b652656d33d1"
}
}
すべての保留中のトランザクションのハッシュを返します。
以前に正規チェーンの一部であったトランザクションが、reorg後に新しい正規チェーンの一部ではなくなった場合、再度発行されます。
オプション
無し
syncing
syncing 例:
>> {"id": 1, "method": "eth_subscribe", "params": ["syncing"]}
<< {"jsonrpc":"2.0","id":2,"result":"0xe2ffeb2703bcf602d42922385829ce96"}
<< {
"subscription": "0xe2ffeb2703bcf602d42922385829ce96",
"result": {
"syncing": true,
"status": {
"startingBlock": 674427,
"currentBlock": 67400,
"highestBlock": 674432,
"pulledStates": 0,
"knownStates": 0
}
}
}
ノードの同期状況を取得します。 結果は、同期が開始したこと(true)、終了したこと(false)を示すブール値、またはさまざまな進行状況インジケーターを持つオブジェクトになります。
オプション
無し
result
型 | 説明 |
---|---|
string |
サブスクリプションID |
eth_unsubscribe
サブスクリプションを中止します。
リクエスト例:
{"jsonrpc":"2.0", "id": 1, "method": "eth_unsubscribe", "params": ["0x864ce0d407b875dfb195b0b02a05c865"]}
レスポンス例:
{
"jsonrpc": "2.0",
"id": 1,
"result": true
}
params
型 | 必須 | 説明 |
---|---|---|
string |
✓ | サブスクリプションID |
result
型 | 説明 |
---|---|
boolean |
サブスクリプション中止の成否 |