Streaming Data Sources
This page lists all the data sources available for streaming. For details on how to subscribe to these, see the Quickstart guide.
Balance Change
Data source: BalanceChange
Balance changes for all accounts at a transaction level. Each transaction will have 0 or more balance changes.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
account | string | The account for which the balance change applies to. |
accountOwner | string | The owner of the account if this is a non-SOL account. For SOL balances, this is null. |
mint | string | Mint of the token that the balance is in. For SOL, this is null. |
decimals | number | Number of decimals the mint has. |
preBalance | number | The balance of the account before the update. |
postBalance | number | The balance of the account after the update. |
amount | number | The change of the balance (postBalance - preBalance). |
NFT Collection Listing Stats
Data source: NftCollectionListingStats
Listing stats for the NFT collection. This is at the collection level. Each collection is emitted at most once per block. If a block contains multiple instruction that modify the stats for a collection, this describes the last instruction.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
helloMoonCollectionId | string | The Hello Moon specific collection id. Use https://www.hellomoon.io/id?search=collection to find the helloMoonCollectionId. |
collectionName | string | The collection that this NFT belongs to. |
floorPrice | number | The price for the NFT in lamports. |
numListings | number | The number of active listings. |
NFT Primary Sales with Collection
Data source: NftPrimarySaleWithCollection
NFT tokens that are minted or sold from the collection to the first owner during the mint phase. These are not emitted in the order as they happen on-chain. To receive the events as they happen on-chain, use NftPrimarySaleWithoutCollection.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
programId | string | The account containing the program that performed the primary sale. |
instructionName | string | The name of the program instruction that was invoked. |
mint | string | Mint address per the SPL token program. |
helloMoonCollectionId | string | The Hello Moon specific collection id. Use https://www.hellomoon.io/collectionid to find the helloMoonCollectionId. |
collectionName | string | The collection that this NFT belongs to. |
payerAccount | string | The account that paid for the NFT. |
sellerAccount | string | The account that received the payment. |
price | number | The price for the NFT in lamports. |
isSmartMinter | boolean | Does HelloMoon consider this to have been minted by a "smart minter"? |
NFT Primary Sales without Collection
Data source: NftPrimarySaleWithoutCollection
NFT tokens that are minted or sold from the collection to the first owner during the mint phase. These are emitted in the order as they happen on-chain. To receive the events with the collection name, use NftPrimarySaleWithCollection.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
programId | string | The account containing the program that performed the primary sale. |
instructionName | string | The name of the program instruction that was invoked. |
mint | string | Mint address per the SPL token program. |
payerAccount | string | Public key of the account paying for the NFT. |
sellerAccount | string | Public key of the account receiving the payment for the NFT. |
price | number | The price for the NFT in lamports. |
isSmartMinter | boolean | Does HelloMoon consider this to have been minted by a "smart minter"? |
NFT Secondary Market Actions
Data source: NftMarketAction
Actions taken on secondary NFT markets, e.g. MagicEden. These are generally emitted in the order as they happen on-chain, but new collections may be delayed.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
programId | string | The account containing the program for the secondary market. |
instructionName | string | The name of the program instruction that was invoked. |
mint | string | Mint address per the SPL token program. |
helloMoonCollectionId | string | The Hello Moon specific collection id. Use https://www.hellomoon.io/id?search=collection to find the helloMoonCollectionId. |
collectionName | string | The collection that this NFT belongs to. |
marketName | string | The market that this action happened on, e.g. MEv2. |
marketActionType | string | The action that is being performed. One of: ASK, UPDATE_ASK, CANCEL_ASK, BID, UPDATE_BID, CANCEL_BID, or SALE. |
seller | string | The seller. This applies to ASK, UPDATE_ASK, CANCEL_ASK, and SALE. |
buyer | string | The buyer. This applies to BID, UPDATE_BID, CANCEL_BID, and SALE. |
price | number | The price for the NFT in lamports. This applies to ASK, UPDATE_ASK, BID, UPDATE_BID, and SALE. |
Token Price
Data source: TokenPrice
This stream emits events everytime Hello Moon determines a liquidity pool has changed the valuation of a token
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
mint | string | SPL Token address of mint price is being reported on. |
priceUsdc | double | Amount of USDC that a single unit of the token is worth. |
decimals | number | Number of decimals for the token. |
Token Swap
Data source: TokenSwap
This stream emits events anytime a token is swapped on a DEX that Hello Moon monitors.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
programId | string | The account containing the program performing the swap. |
programName | string | The name of the program performing the swap. |
instructionName | string | The name of the program instruction performing the swap. |
aggregator | string | The name of the aggregator that sent the instruction. |
srcMint | string | The mint of the source token. |
srcAmount | number | The amount going into the swap. |
srcTokenAccount | number | The account that holds the source tokens. |
srcOwnerAccount | number | The account that owns the source token account. |
dstMint | string | The mint of the destination token. |
dstAmount | number | The amount coming out of the swap. |
dstTokenAccount | number | The account that holds the destination tokens. |
Programs we parse and their ProgramIDs
Use these ProgramID's when filtering in TokenSwaps
Name | ProgramID |
---|---|
Serum 3 | 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin |
Saber Swap | SSwpMgqNDsyV7mAgN9ady4bDVu5ySjmmXejXvy2vLt1 |
Swap | SwaPpA9LAaLfeLi3a68M4DjnLqgtticKg6CnyNwgAC8 |
Sencha | SCHAtsf8mbjyjiv4LkhLKutTf6JnZAbdJKFkXQNMFHZ |
Step Swap | 22Y43yTVxuUkoRKdm9thyRhQ3SdgQS7c7kB6UNCiaczD |
Aldrin AMM V2 | CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4 |
Lifinity Swap | EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S |
Cykura | cysPXAjehMpVKUapzbMCCnpFxUFFryEWEaLgnb9NrR8 |
Orca Swap 2 | 9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP |
Penguin Finance | PSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP |
Cropper Finance | CTMAxxk34HjKWxQ3QLZK1HpaLXmBveao3ESePXbiyfzh |
Dooar Swap | Dooar9JkhdZ7J3LHN3A7YCuoGRUggXhQaG4kijfLGU2j |
Aldrin AMM | AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6 |
Saros Swap | SSwapUtytfBdBn1b9NUGG6foMVPtcWgpRU32HToDUZr |
Raydium Amm | 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 |
Mercurial | MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky |
Orca Swap 1 | DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1 |
Saber Swap | SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ |
Orca Whirlpool | whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc |
Token Transfer
Data source: TokenTransfer
Balance changes for all accounts at a transaction level. Each transaction will have 0 or more balance changes.
Name | DataType | Description |
---|---|---|
blockId | number | Numeric identifier of a block describing the slot that the block was produced in. |
blockTime | number | Unix epoch time (in seconds) of a block as calculated from validator votes. |
transactionId | string | First signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger. |
transactionPosition | number | Zero-indexed position of the transaction within the block. |
instructinPosition | number | Zero-indexed position of the instruction within the transaction. |
subInstructionPosition | number | Zero-indexed position of the sub-instruction within the instruction. |
instructionOrdinal | number | The zero-indexed position of an instruction - subinstruction combination in the context of the transaction. This is generated by flattening all instruction/subinstruction/sub-subinstruction/... and numbering them from 0. |
programId | string | The account of the program that performed the transfer. |
type | string | Type of token transfer. |
source | string | The account the token was transferred from. |
sourceOwner | string | The owner of the source account if this is a non-SOL transfer. For SOL transfers, this is null. |
destination | string | The account the token was transferred to. |
destinationOwner | string | The owner of the destination account if this is a non-SOL transfer. For SOL transfers, this is null. |
authority | string | The authority that signed the transfer. |
mint | string | Mint of the token that the transfer is in. For SOL, this is null. |
amount | number | The amount of the transfer (newDestinationBalance - oldDestinationBalance). |
sourcePreBalance | number | The balance of the source account before the update. |
destinationPreBalance | number | The balance of the destination account before the update. |
sourcePostBalance | number | The balance of the source account after the update. |
destinationPostBalance | number | The balance of the destination account after the update. |
Updated almost 2 years ago