Synternet Blockchain Streams - Google PubSub Topics
Welcome to Synternet's public blockchain data streams. We offer access to real-time data across various blockchain networks, powered by Google Cloud's Pub/Sub service. This documentation will guide you through setting up your subscriptions and accessing the blockchain data streams we provide.
Overview
Synternet is known for powering various blockchain analytics applications. To empower the broader community and provide more customized outcomes, we're opening our upstream layers of data pipelines via public PubSub Topics.
These topics allow you to subscribe to real-time blockchain events such as transactions and blocks across multiple chains. All topics are publicly accessible and designed to support a wide range of applications, from data analytics to blockchain monitoring.
Prerequisites
- A Google Cloud account.
- Cloud Pub/Sub API enabled.
- Sufficient permissions in your GCP project to create new Pub/Sub subscriptions.
Available Topics
The following blockchain data streams are available through Pub/Sub:
- projects/gcp-public-data-pubsub/topics/synternet-arbitrum_mainnet_block
- projects/gcp-public-data-pubsub/topics/synternet-arbitrum_mainnet_transactions
- projects/gcp-public-data-pubsub/topics/synternet-bitcoin_block
- projects/gcp-public-data-pubsub/topics/synternet-bitcoin_transactions
- projects/gcp-public-data-pubsub/topics/synternet-dydx_mainnet_block
- projects/gcp-public-data-pubsub/topics/synternet-dydx_mainnet_transactions
- projects/gcp-public-data-pubsub/topics/synternet-osmosis_mainnet_block
- projects/gcp-public-data-pubsub/topics/synternet-osmosis_mainnet_transactions
- projects/gcp-public-data-pubsub/topics/synternet-injective_mainnet_block
- projects/gcp-public-data-pubsub/topics/synternet-injective_mainnet_transactions
- projects/gcp-public-data-pubsub/topics/synternet-ethereum_mainnet_block
- projects/gcp-public-data-pubsub/topics/synternet-ethereum_mainnet_transactions
Each topic follows the format:
synternet-<blockchain>_<network>_<data_type>
Where:
blockchain
: The name of the blockchain network (e.g.,arbitrum
,bitcoin
,ethereum
, etc.).network
: The specific network of the blockchain (e.g.,mainnet
,testnet
).data_type
: The type of data being streamed (e.g.,transactions
,block
).
Supported Blockchains
- Ethereum Mainnet
- Arbitrum Mainnet
- Bitcoin
- dYdX Mainnet
- Osmosis Mainnet
- Injective Mainnet
Subscriptions
You can create your own Pub/Sub subscriptions using either the Google Cloud Console or your preferred infrastructure-as-code tool. Below are the steps to create a subscription and listen to blockchain data using Python or Golang.
Create a Custom PubSub Subscription
To create a new subscription:
- Choose one of the public topics listed above.
- Define a delivery type (e.g., stream data to BigQuery, Cloud Storage, or an external API).
Example Code
Python Example
The following Python example shows how to subscribe to the synternet-ethereum_mainnet_transactions
topic using Google Cloud's Pub/Sub client.
from concurrent.futures import TimeoutError
from google.cloud import pubsub_v1
# Define Google Cloud project and Pub/Sub subscription
project_id = "gcp-public-data-pubsub"
subscription_id = "synternet-ethereum_mainnet_transactions"
timeout = None # No timeout for receiving messages
# Create a Pub/Sub subscriber client
subscriber = pubsub_v1.SubscriberClient()
# Get the full subscription path
subscription_path = subscriber.subscription_path(project_id, subscription_id)
# Define a callback function that handles received messages
def callback(message: pubsub_v1.subscriber.message.Message) -> None:
print(f"Received {message}.") # Print the message
message.ack() # Acknowledge the message
# Subscribe to the subscription and pass the callback function
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)
print(f"Listening for messages on {subscription_path}..\n")
# Keep the subscriber running and handle exceptions
with subscriber:
try:
streaming_pull_future.result(timeout=timeout) # Keep receiving messages
except TimeoutError:
# If a timeout occurs, cancel the future and wait for it to finish
streaming_pull_future.cancel()
streaming_pull_future.result() # Wait until the subscription is canceled
Golang Example
Below is a GoLang example that listens to the synternet-ethereum_mainnet_block
topic.
package main
import (
"context"
"fmt"
"log"
"sync"
"time"
"cloud.google.com/go/pubsub"
)
func main() {
// Define Google Cloud project and Pub/Sub subscription
projectID := "gcp-public-data-pubsub"
subscriptionID := "synternet-ethereum_mainnet_block"
// Create a context for managing the lifetime of the subscription
ctx := context.Background()
// Create a new Pub/Sub client for the given project
client, err := pubsub.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Error creating Pub/Sub client: %v", err)
}
// Get the subscription from the Pub/Sub client
sub := client.Subscription(subscriptionID)
// Mutex to ensure safe access to shared resources across goroutines
var mu sync.Mutex
received := 0 // Count how many messages are received
// Start receiving messages from the subscription
err = sub.Receive(ctx, func(ctx context.Context, msg *pubsub.Message) {
// Lock the shared resource while processing the message
mu.Lock()
defer mu.Unlock() // Unlock the resource when done
received++ // Increment the received message counter
// Print the received message data
fmt.Printf("Received message: %q\n", string(msg.Data))
// Acknowledge (ack) that the message was successfully processed
msg.Ack()
// Stop receiving messages after 10 messages
if received == 10 {
// Call cancel to stop the receiving process (needs a proper context with cancel)
cancel()
}
})
// Handle any errors that occur during message reception
if err != nil {
log.Fatalf("Error receiving messages: %v", err)
}
}
Schemas
- EVM block
- EVM Txs
- Osmosis Blocks
- Osmosis Txs
- dYdX Blocks
- dYdX Txs
- Injective Blocks
- Injective Txs
- Bitcoin Blocks
- Bitcoin Txs
EVM Blocks
name | type | description |
---|---|---|
blockHash | STRING | The hash of the block where this transaction was included. |
blockNumber | INTEGER | The block number where this transaction was included. |
time | TIMESTAMP | Timestamp when the block was added to the blockchain. |
nonce | INTEGER | The nonce of the block. |
transactionIds | ARRAY<STRING> | List of transaction hashes included in the block. |
transactionsCount | INTEGER | The number of transactions included in the block. |
EVM Transactions
name | type | description |
---|---|---|
blockHash | STRING | Hash of the block where the transaction was included. |
hash | STRING | Transaction hash. |
value | STRING | Amount transferred in Wei. |
gas | INTEGER | Gas provided by the sender. |
gasPrice | INTEGER | Price per gas unit in Wei. |
v | INTEGER | ECDSA recovery id (v value). |
r | FLOAT | ECDSA signature parameter 'r'. |
s | FLOAT | ECDSA signature parameter 's'. |
nonce | INTEGER | The nonce of the transaction. |
from | STRING | Sender's address. |
to | STRING | Recipient's address. |
input | STRING | Data sent along with the transaction. |
timeStamp | STRING | Timestamp when the block was added to the blockchain. |
Osmosis Blocks
name | mode | type | description |
---|---|---|---|
nonce | REQUIRED | STRING | A unique identifier or number for this block, typically used to maintain the state of the block. |
block.header.version.block | REQUIRED | INTEGER | Version of the block protocol. |
block.header.version.app | REQUIRED | INTEGER | Version of the application protocol. |
block.header.chain_id | REQUIRED | STRING | Chain identifier for the Osmosis blockchain network. |
block.header.height | REQUIRED | INTEGER | The height of the block, which indicates its position in the blockchain. |
block.header.time | REQUIRED | STRING | ISO 8601 formatted timestamp of when the block was created. |
block.header.last_block_id.hash | REQUIRED | STRING | Hash of the previous block's ID. |
block.header.last_block_id.part_set_header.total | REQUIRED | INTEGER | Total number of parts in the set header for the previous block. |
block.header.last_block_id.part_set_header.hash | REQUIRED | STRING | Hash of the part set header for the previous block. |
block.header.last_commit_hash | REQUIRED | STRING | Hash of the last commit in the blockchain. |
block.header.data_hash | REQUIRED | STRING | Hash of the block's transaction data. |
block.header.validators_hash | REQUIRED | STRING | Hash of the current validators set. |
block.header.next_validators_hash | REQUIRED | STRING | Hash of the next validators set. |
block.header.consensus_hash | REQUIRED | STRING | Hash of the consensus protocol. |
block.header.app_hash | REQUIRED | STRING | Hash of the application-specific state. |
block.header.last_results_hash | REQUIRED | STRING | Hash of the last block results. |
block.header.evidence_hash | REQUIRED | STRING | Hash of the evidence included in the block (if any). |
block.header.proposer_address | REQUIRED | STRING | Address of the block proposer. |
block.data.txs | REQUIRED | ARRAY | Array of transaction strings (Base64 encoded). |
block.evidence.evidence | REQUIRED | ARRAY | Array of evidence data (empty if no evidence is present). |
block.last_commit.height | REQUIRED | INTEGER | Height of the block that was last committed. |
block.last_commit.block_id.hash | REQUIRED | STRING | Hash of the block ID of the last committed block. |
block.last_commit.block_id.part_set_header.total | REQUIRED | INTEGER | Total number of parts in the set header for the last committed block. |
block.last_commit.block_id.part_set_header.hash | REQUIRED | STRING | Hash of the part set header for the last committed block. |
block.last_commit.signatures | REQUIRED | ARRAY | Array of validator signatures for the last commit. |
block.last_commit.signatures[].block_id_flag | REQUIRED | INTEGER | Block ID flag (indicates if the block ID is part of the commit). |
block.last_commit.signatures[].validator_address | REQUIRED | STRING | Address of the validator that signed the last commit. |
block.last_commit.signatures[].timestamp | REQUIRED | STRING | ISO 8601 formatted timestamp of when the validator signed the last commit. |
block.last_commit.signatures[].signature | REQUIRED | STRING | Base64 encoded signature of the validator. |
Osmosis Transactions
name | type | description |
---|---|---|
nonce | STRING | The nonce of the transaction. |
raw | STRING | The raw transaction data. |
code | INTEGER | The result code of the transaction. |
tx_id | STRING | The unique transaction identifier (hash). |
tx.auth_info.fee.amount | ARRAY<OBJECT> | The amount of fee paid, including denomination and amount. |
tx.auth_info.fee.gas_limit | STRING | The gas limit for the transaction. |
tx.auth_info.fee.granter | STRING | The account that authorized the transaction (if any). |
tx.auth_info.fee.payer | STRING | The account responsible for paying the transaction fees. |
tx.auth_info.signer_infos | ARRAY<OBJECT> | Information about signers, including public key and sequence. |
tx.body.memo | STRING | Any optional memo field included with the transaction. |
tx.body.messages | ARRAY<OBJECT> | The list of messages included in the transaction. |
tx.body.timeout_height | STRING | The height at which the transaction expires. |
tx.signatures | ARRAY<STRING> | The list of signatures corresponding to the signers of the transaction. |
tx_result.height | INTEGER | The block height where the transaction was included. |
tx_result.index | INTEGER | The index of the transaction in the block. |
tx_result.tx | STRING | Base64-encoded transaction data. |
tx_result.result.code | INTEGER | The result code of the transaction execution. |
tx_result.result.log | STRING | The log of the transaction result. |
tx_result.result.gas_wanted | STRING | The gas limit that was specified for the transaction. |
tx_result.result.gas_used | STRING | The actual amount of gas used by the transaction. |
tx_result.result.events | ARRAY<OBJECT> | The events emitted during the transaction execution, including attributes. |
metadata | OBJECT | Additional metadata related to the transaction. |
dYdX Blocks
name | type | description |
---|---|---|
nonce | STRING | The nonce of the block. |
block.header.version.block | INTEGER | The version of the block. |
block.header.chain_id | STRING | The chain ID for the network (e.g., "dydx-mainnet-1"). |
block.header.height | INTEGER | The height of the block. |
block.header.time | TIMESTAMP | Timestamp of when the block was created. |
block.header.last_block_id.hash | STRING | The hash of the last block. |
block.header.last_block_id.part_set_header.total | INTEGER | Total number of parts in the last block's part set header. |
block.header.last_block_id.part_set_header.hash | STRING | The hash of the last block's part set header. |
block.header.last_commit_hash | STRING | Hash of the last commit in the block. |
block.header.data_hash | STRING | Hash of the transaction data in the block. |
block.header.validators_hash | STRING | Hash of the validator set. |
block.header.next_validators_hash | STRING | Hash of the next validator set. |
block.header.consensus_hash | STRING | Hash of the consensus parameters. |
block.header.app_hash | STRING | Hash of the application's state. |
block.header.last_results_hash | STRING | Hash of the results from the last block. |
block.header.evidence_hash | STRING | Hash of the evidence set in the block. |
block.header.proposer_address | STRING | Address of the proposer of the block. |
block.data.txs | ARRAY<STRING> | List of transactions in the block (base64-encoded). |
block.evidence.evidence | ARRAY<OBJECT> | List of evidence in the block (empty if no evidence). |
block.last_commit.height | INTEGER | The height of the last commit. |
block.last_commit.block_id.hash | STRING | The hash of the last committed block. |
block.last_commit.block_id.part_set_header.total | INTEGER | Total number of parts in the last committed block's part set header. |
block.last_commit.block_id.part_set_header.hash | STRING | The hash of the last committed block's part set header. |
block.last_commit.signatures | ARRAY<OBJECT> | List of signatures for the last commit, including validator addresses and timestamps. |
dYdX Transactions
name | type | description |
---|---|---|
nonce | STRING | The nonce of the transaction. |
raw | STRING | Raw transaction data. |
code | INTEGER | The result code of the transaction execution. |
tx_id | STRING | The transaction ID (hash). |
tx.auth_info.fee.amount | ARRAY<OBJECT> | Fee amount for the transaction. |
tx.auth_info.fee.gas_limit | STRING | Gas limit for the transaction. |
tx.auth_info.fee.granter | STRING | The granter of the fee (if applicable). |
tx.auth_info.fee.payer | STRING | The payer of the fee (if applicable). |
tx.auth_info.signer_infos.mode_info.single.mode | STRING | The signing mode used by the sender. |
tx.auth_info.signer_infos.public_key["@type"] | STRING | Type of public key used by the sender. |
tx.auth_info.signer_infos.public_key.key | STRING | Public key of the signer. |
tx.auth_info.signer_infos.sequence | STRING | Sequence number of the signer. |
tx.auth_info.tip | OBJECT or NULL | Tip info for the transaction, if any. |
tx.body.extension_options | ARRAY<OBJECT> | List of extension options for the transaction. |
tx.body.memo | STRING | Memo field of the transaction. |
tx.body.messages | ARRAY<OBJECT> | Array of messages associated with the transaction. |
tx.body.messages["@type"] | STRING | The message type (e.g., "/dydxprotocol.clob.MsgPlaceOrder"). |
tx.body.messages.order.client_metadata | INTEGER | Client metadata for the order. |
tx.body.messages.order.condition_type | STRING | The condition type for the order. |
tx.body.messages.order.conditional_order_trigger_subticks | STRING | Trigger subticks for conditional orders. |
tx.body.messages.order.good_til_block_time | INTEGER | Good-till block time for the order. |
tx.body.messages.order.order_id.client_id | INTEGER | Client ID for the order. |
tx.body.messages.order.order_id.clob_pair_id | INTEGER | Clob pair ID for the order. |
tx.body.messages.order.order_id.order_flags | INTEGER | Order flags. |
tx.body.messages.order.order_id.subaccount_id.number | INTEGER | Subaccount number. |
tx.body.messages.order.order_id.subaccount_id.owner | STRING | Owner of the subaccount. |
tx.body.messages.order.quantums | STRING | Quantums of the order. |
tx.body.messages.order.reduce_only | BOOLEAN | Indicates if the order is reduce-only. |
tx.body.messages.order.side | STRING | Side of the order (e.g., "SIDE_SELL"). |
tx.body.messages.order.subticks | STRING | Subticks for the order. |
tx.body.messages.order.time_in_force | STRING | Time-in-force condition for the order. |
tx.body.non_critical_extension_options | ARRAY<OBJECT> | Non-critical extension options for the transaction. |
tx.body.timeout_height | STRING | Timeout height for the transaction. |
tx.signatures | ARRAY<STRING> | Signatures associated with the transaction. |
tx_result.height | INTEGER | Block height at which the transaction was included. |
tx_result.index | INTEGER | Index of the transaction in the block. |
tx_result.tx | STRING | Base64-encoded transaction data. |
tx_result.result.code | INTEGER | Result code of the transaction execution. |
tx_result.result.data | STRING | Result data (base64-encoded). |
tx_result.result.log | STRING | Log output of the transaction (if any). |
tx_result.result.info | STRING | Additional information about the transaction result. |
tx_result.result.gas_wanted | STRING | Gas wanted for the transaction execution. |
tx_result.result.gas_used | STRING | Gas used for the transaction execution. |
tx_result.result.events | ARRAY<OBJECT> | Events emitted by the transaction. |
tx_result.result.events.type | STRING | Type of the event (e.g., "tx", "message"). |
tx_result.result.events.attributes | ARRAY<OBJECT> | Attributes associated with the event. |
tx_result.result.events.attributes.key | STRING | Key of the attribute (e.g., "acc_seq", "signature"). |
tx_result.result.events.attributes.value | STRING | Value of the attribute. |
metadata | OBJECT or NULL | Additional metadata for the transaction. |
short_term_orders | ARRAY<OBJECT> | Array of short-term orders (empty in this case). |
Injective Blocks
Name | Type | Description |
---|---|---|
header | OBJECT | Block header details |
header.version.block | STRING | Block version number |
header.chain_id | STRING | Chain ID (e.g., injective-1 ) |
header.height | STRING | Block height |
header.time | STRING | Timestamp in ISO8601 format (UTC) |
header.last_block_id.hash | STRING | Hash of the previous block |
header.last_block_id.parts.total | INTEGER | Total number of parts in the previous block |
header.last_block_id.parts.hash | STRING | Hash of the parts in the previous block |
header.last_commit_hash | STRING | Hash of the last commit of the previous block |
header.data_hash | STRING | Data hash for the block |
header.validators_hash | STRING | Validators hash |
header.next_validators_hash | STRING | Next validators hash |
header.consensus_hash | STRING | Consensus hash |
header.app_hash | STRING | Application-specific hash |
header.last_results_hash | STRING | Hash of the results of the last block |
header.evidence_hash | STRING | Evidence hash (usually empty if no evidence) |
header.proposer_address | STRING | Address of the block proposer |
data | OBJECT | Transactions data |
data.txs | ARRAY<OBJECT> | Array of transactions |
data.txs[].nonce | STRING | Transaction nonce |
data.txs[].raw | STRING | Raw transaction data |
data.txs[].code | INTEGER | Transaction result code (0 if successful) |
data.txs[].tx_id | STRING | Transaction ID (hash) |
data.txs[].tx.auth_info.fee.amount | ARRAY<OBJECT> | Fee amount for the transaction |
data.txs[].tx.auth_info.fee.amount[].amount | STRING | Fee amount (denominated in inj ) |
data.txs[].tx.auth_info.fee.amount[].denom | STRING | Denomination of the fee (e.g., inj ) |
data.txs[].tx.auth_info.fee.gas_limit | STRING | Gas limit for the transaction |
data.txs[].tx.auth_info.fee.granter | STRING | Fee granter (if any) |
data.txs[].tx.auth_info.fee.payer | STRING | Fee payer (if any) |
data.txs[].tx.auth_info.signer_infos | ARRAY<OBJECT> | Information about the transaction signer |
data.txs[].tx.auth_info.signer_infos[].mode_info.single.mode | STRING | Signature mode (e.g., SIGN_MODE_DIRECT ) |
data.txs[].tx.auth_info.signer_infos[].public_key["@type"] | STRING | Type of public key (e.g., /injective.crypto.v1beta1.ethsecp256k1.PubKey ) |
data.txs[].tx.auth_info.signer_infos[].public_key.key | STRING | Public key of the signer |
data.txs[].tx.auth_info.signer_infos[].sequence | STRING | Sequence number for the transaction |
data.txs[].tx.body.memo | STRING | Memo field (optional) |
data.txs[].tx.body.messages | ARRAY<OBJECT> | Array of messages associated with the transaction |
data.txs[].tx.body.messages[].@type | STRING | Message type (e.g., /injective.exchange.v1beta1.MsgBatchUpdateOrders ) |
data.txs[].tx.body.messages[].sender | STRING | The sender address of the message |
data.txs[].tx.body.messages[].msgs | ARRAY<OBJECT> | Array of internal messages for batch execution |
data.txs[].tx.body.messages[].msgs[].cid | STRING | Client ID of the order |
data.txs[].tx.body.messages[].msgs[].market_id | STRING | Market ID for the order |
data.txs[].tx.body.messages[].msgs[].order_mask | INTEGER | Order mask |
data.txs[].tx.body.messages[].msgs[].subaccount_id | STRING | Subaccount ID |
data.txs[].signatures | ARRAY<STRING> | Array of signatures for the transaction |
evidence.evidence | ARRAY<OBJECT> | Array of evidence (usually empty) |
last_commit.height | STRING | Height of the last commit |
last_commit.round | INTEGER | Round number of the last commit |
last_commit.block_id.hash | STRING | Hash of the last committed block |
last_commit.block_id.parts.total | INTEGER | Total number of parts in the last block |
last_commit.block_id.parts.hash | STRING | Hash of the parts of the last block |
last_commit.signatures | ARRAY<OBJECT> | Array of signatures for the last commit |
last_commit.signatures[].block_id_flag | INTEGER | Block ID flag (indicates the block's validity) |
last_commit.signatures[].validator_address | STRING | Address of the validator |
last_commit.signatures[].timestamp | STRING | Timestamp of the signature (ISO8601 format) |
last_commit.signatures[].signature | STRING | Validator's signature for the block |
Injective Transactions
Name | Type | Description |
---|---|---|
nonce | STRING | Transaction nonce (optional, empty in this case) |
raw | STRING | Raw transaction data (optional, empty in this case) |
code | INTEGER | Result code of the transaction (0 means successful) |
tx_id | STRING | Transaction ID (hash) |
tx.auth_info | OBJECT | Authorization information |
tx.auth_info.fee | OBJECT | Fee details |
tx.auth_info.fee.amount | ARRAY<OBJECT> | Array of fee amounts |
tx.auth_info.fee.amount[].amount | STRING | Fee amount (denominated in inj ) |
tx.auth_info.fee.amount[].denom | STRING | Fee denomination (e.g., inj ) |
tx.auth_info.fee.gas_limit | STRING | Gas limit for the transaction |
tx.auth_info.fee.granter | STRING | Granter of the fee (empty string if not applicable) |
tx.auth_info.fee.payer | STRING | Payer of the fee (empty string if not applicable) |
tx.auth_info.signer_infos | ARRAY<OBJECT> | Array of signer information |
tx.auth_info.signer_infos[].mode_info.single.mode | STRING | Signature mode (e.g., SIGN_MODE_DIRECT ) |
tx.auth_info.signer_infos[].public_key["@type"] | STRING | Type of public key (e.g., /injective.crypto.v1beta1.ethsecp256k1.PubKey ) |
tx.auth_info.signer_infos[].public_key.key | STRING | Public key of the signer |
tx.auth_info.signer_infos[].sequence | STRING | Sequence number of the signer |
tx.auth_info.tip | OBJECT | Tip details (optional, null if not applicable) |
tx.body | OBJECT | Body of the transaction |
tx.body.extension_options | ARRAY<OBJECT> | Extension options (empty array if none) |
tx.body.memo | STRING | Memo field (optional, empty string) |
tx.body.messages | ARRAY<OBJECT> | Array of messages associated with the transaction |
tx.body.messages[].@type | STRING | Message type (e.g., /cosmos.authz.v1beta1.MsgExec ) |
tx.body.messages[].grantee | STRING | Grantee of the message |
tx.body.messages[].msgs | ARRAY<OBJECT> | Array of internal messages |
tx.body.messages[].msgs[].@type | STRING | Internal message type (e.g., /injective.exchange.v1beta1.MsgBatchUpdateOrders ) |
tx.body.messages[].msgs[].binary_options_market_ids_to_cancel_all | ARRAY<STRING> | Binary options market IDs to cancel all orders |
tx.body.messages[].msgs[].binary_options_orders_to_cancel | ARRAY<OBJECT> | Binary options orders to cancel |
tx.body.messages[].msgs[].binary_options_orders_to_create | ARRAY<OBJECT> | Binary options orders to create |
tx.body.messages[].msgs[].derivative_market_ids_to_cancel_all | ARRAY<STRING> | Derivative market IDs to cancel all orders |
tx.body.messages[].msgs[].derivative_orders_to_cancel | ARRAY<OBJECT> | Derivative orders to cancel |
tx.body.messages[].msgs[].derivative_orders_to_cancel[].cid | STRING | Client ID of the derivative order to cancel |
tx.body.messages[].msgs[].derivative_orders_to_cancel[].market_id | STRING | Market ID of the order |
tx.body.messages[].msgs[].derivative_orders_to_cancel[].order_hash | STRING | Order hash (empty if not specified) |
tx.body.messages[].msgs[].derivative_orders_to_cancel[].order_mask | INTEGER | Order mask |
tx.body.messages[].msgs[].derivative_orders_to_cancel[].subaccount_id | STRING | Subaccount ID |
tx.body.messages[].msgs[].derivative_orders_to_create | ARRAY<OBJECT> | Derivative orders to create |
tx.body.messages[].msgs[].derivative_orders_to_create[].margin | STRING | Margin amount |
tx.body.messages[].msgs[].derivative_orders_to_create[].market_id | STRING | Market ID for the derivative order |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info | OBJECT | Order information |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info.cid | STRING | Client ID for the order |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info.fee_recipient | STRING | Fee recipient address |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info.price | STRING | Price of the order |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info.quantity | STRING | Quantity of the order |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_info.subaccount_id | STRING | Subaccount ID |
tx.body.messages[].msgs[].derivative_orders_to_create[].order_type | STRING | Order type (e.g., BUY_PO ) |
tx.body.messages[].msgs[].derivative_orders_to_create[].trigger_price | STRING | Trigger price (null if not applicable) |
tx.body.messages[].sender | STRING | Address of the sender |
tx.body.spot_market_ids_to_cancel_all | ARRAY<STRING> | Spot market IDs to cancel all orders |
tx.body.spot_orders_to_cancel | ARRAY<OBJECT> | Spot orders to cancel |
tx.body.spot_orders_to_create | ARRAY<OBJECT> | Spot orders to create |
tx.body.subaccount_id | STRING | Subaccount ID (optional, empty string) |
tx.body.non_critical_extension_options | ARRAY<OBJECT> | Non-critical extension options (empty array) |
tx.body.timeout_height | STRING | Timeout height (optional, default 0 ) |
tx.signatures | ARRAY<STRING> | Array of signatures for the transaction |
tx_result | OBJECT | Transaction result (null if not executed yet) |
metadata | OBJECT | Transaction metadata (null if not available) |
Bitcoin Transactions
Name | Type | Description |
---|---|---|
hash | STRING | The block hash, a double SHA-256 hash of the block header. |
version | INTEGER | The block version number, which indicates the block format rules. |
prevblock | STRING | The hash of the previous block in the blockchain, creating the chain structure. |
merkleroot | STRING | The root of the Merkle tree for all transactions included in the block. |
time | INTEGER | Unix timestamp of when the block was mined. |
bits | INTEGER | The current difficulty target for proof of work in compact format. |
nonce | INTEGER | The nonce value used by miners to find the valid block hash. |
tx[] | ARRAY<STRING> | An array of transaction IDs (txid) included in the block. |
Bitcoin Transactions
Name | Type | Description |
---|---|---|
txid | STRING | Transaction ID (hash of the transaction) |
hash | STRING | Hash of the transaction (double SHA-256 hash) |
version | INTEGER | Transaction version number |
size | INTEGER | Total size of the transaction in bytes |
vsize | INTEGER | Virtual size of the transaction (vBytes) |
weight | INTEGER | Weight of the transaction (weight units) |
locktime | INTEGER | Locktime (when the transaction can be added to the blockchain) |
vin | ARRAY<OBJECT> | Array of transaction inputs (references to previous outputs) |
vin[].txid | STRING | Transaction ID of the previous output |
vin[].vout | INTEGER | Index of the output in the previous transaction |
vin[].scriptSig | OBJECT | ScriptSig (signature script, empty in this case) |
vin[].scriptSig.asm | STRING | ScriptSig in assembly format |
vin[].scriptSig.hex | STRING | ScriptSig in hexadecimal format |
vin[].txinwitness | ARRAY<STRING> | Witness data for SegWit transactions (list of witness components) |
vin[].sequence | INTEGER | Sequence number (used for Replace-by-Fee (RBF) and locktime purposes) |
vout | ARRAY<OBJECT> | Array of transaction outputs |
vout[].value | FLOAT | Value of the output in BTC |
vout[].n | INTEGER | Index of the output in the transaction |
vout[].scriptPubKey | OBJECT | ScriptPubKey (locking script) for the output |
vout[].scriptPubKey.asm | STRING | ScriptPubKey in assembly format |
vout[].scriptPubKey.desc | STRING | Description of the ScriptPubKey |
vout[].scriptPubKey.hex | STRING | ScriptPubKey in hexadecimal format |
vout[].scriptPubKey.address | STRING | Bitcoin address associated with the output |
vout[].scriptPubKey.type | STRING | Output type (e.g., witness_v1_taproot ) |
Feedback
We are continuously working to improve data quality and expand our supported blockchain networks. If you encounter any issues or have suggestions for new topics or chains, please reach out to us.
Happy Streaming!