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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
accountstringThe account for which the balance change applies to.
accountOwnerstringThe owner of the account if this is a non-SOL account. For SOL balances, this is null.
mintstringMint of the token that the balance is in. For SOL, this is null.
decimalsnumberNumber of decimals the mint has.
preBalancenumberThe balance of the account before the update.
postBalancenumberThe balance of the account after the update.
amountnumberThe 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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
helloMoonCollectionIdstringThe Hello Moon specific collection id. Use https://www.hellomoon.io/id?search=collection to find the helloMoonCollectionId.
collectionNamestringThe collection that this NFT belongs to.
floorPricenumberThe price for the NFT in lamports.
numListingsnumberThe 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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
programIdstringThe account containing the program that performed the primary sale.
instructionNamestringThe name of the program instruction that was invoked.
mintstringMint address per the SPL token program.
helloMoonCollectionIdstringThe Hello Moon specific collection id. Use https://www.hellomoon.io/collectionid to find the helloMoonCollectionId.
collectionNamestringThe collection that this NFT belongs to.
payerAccountstringThe account that paid for the NFT.
sellerAccountstringThe account that received the payment.
pricenumberThe price for the NFT in lamports.
isSmartMinterbooleanDoes 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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
programIdstringThe account containing the program that performed the primary sale.
instructionNamestringThe name of the program instruction that was invoked.
mintstringMint address per the SPL token program.
payerAccountstringPublic key of the account paying for the NFT.
sellerAccountstringPublic key of the account receiving the payment for the NFT.
pricenumberThe price for the NFT in lamports.
isSmartMinterbooleanDoes 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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
programIdstringThe account containing the program for the secondary market.
instructionNamestringThe name of the program instruction that was invoked.
mintstringMint address per the SPL token program.
helloMoonCollectionIdstringThe Hello Moon specific collection id. Use https://www.hellomoon.io/id?search=collection to find the helloMoonCollectionId.
collectionNamestringThe collection that this NFT belongs to.
marketNamestringThe market that this action happened on, e.g. MEv2.
marketActionTypestringThe action that is being performed. One of: ASK, UPDATE_ASK, CANCEL_ASK, BID, UPDATE_BID, CANCEL_BID, or SALE.
sellerstringThe seller. This applies to ASK, UPDATE_ASK, CANCEL_ASK, and SALE.
buyerstringThe buyer. This applies to BID, UPDATE_BID, CANCEL_BID, and SALE.
pricenumberThe 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

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
mintstringSPL Token address of mint price is being reported on.
priceUsdcdoubleAmount of USDC that a single unit of the token is worth.
decimalsnumberNumber 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.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructionOrdinalnumberThe 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.
programIdstringThe account containing the program performing the swap.
programNamestringThe name of the program performing the swap.
instructionNamestringThe name of the program instruction performing the swap.
aggregatorstringThe name of the aggregator that sent the instruction.
srcMintstringThe mint of the source token.
srcAmountnumberThe amount going into the swap.
srcTokenAccountnumberThe account that holds the source tokens.
srcOwnerAccountnumberThe account that owns the source token account.
dstMintstringThe mint of the destination token.
dstAmountnumberThe amount coming out of the swap.
dstTokenAccountnumberThe account that holds the destination tokens.
   

Programs we parse and their ProgramIDs

Use these ProgramID's when filtering in TokenSwaps

NameProgramID
Serum 39xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin
Saber SwapSSwpMgqNDsyV7mAgN9ady4bDVu5ySjmmXejXvy2vLt1
SwapSwaPpA9LAaLfeLi3a68M4DjnLqgtticKg6CnyNwgAC8
SenchaSCHAtsf8mbjyjiv4LkhLKutTf6JnZAbdJKFkXQNMFHZ
Step Swap22Y43yTVxuUkoRKdm9thyRhQ3SdgQS7c7kB6UNCiaczD
Aldrin AMM V2CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4
Lifinity SwapEewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S
CykuracysPXAjehMpVKUapzbMCCnpFxUFFryEWEaLgnb9NrR8
Orca Swap 29W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP
Penguin FinancePSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP
Cropper FinanceCTMAxxk34HjKWxQ3QLZK1HpaLXmBveao3ESePXbiyfzh
Dooar SwapDooar9JkhdZ7J3LHN3A7YCuoGRUggXhQaG4kijfLGU2j
Aldrin AMMAMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6
Saros SwapSSwapUtytfBdBn1b9NUGG6foMVPtcWgpRU32HToDUZr
Raydium Amm675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
MercurialMERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky
Orca Swap 1DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1
Saber SwapSSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ
Orca WhirlpoolwhirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
   

Token Transfer

Data source: TokenTransfer

Balance changes for all accounts at a transaction level. Each transaction will have 0 or more balance changes.

NameDataTypeDescription
blockIdnumberNumeric identifier of a block describing the slot that the block was produced in.
blockTimenumberUnix epoch time (in seconds) of a block as calculated from validator votes.
transactionIdstringFirst signature in a transaction, which can be used to uniquely identify the transaction across the whole ledger.
transactionPositionnumberZero-indexed position of the transaction within the block.
instructinPositionnumberZero-indexed position of the instruction within the transaction.
subInstructionPositionnumberZero-indexed position of the sub-instruction within the instruction.
instructionOrdinalnumberThe 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.
programIdstringThe account of the program that performed the transfer.
typestringType of token transfer.
sourcestringThe account the token was transferred from.
sourceOwnerstringThe owner of the source account if this is a non-SOL transfer. For SOL transfers, this is null.
destinationstringThe account the token was transferred to.
destinationOwnerstringThe owner of the destination account if this is a non-SOL transfer. For SOL transfers, this is null.
authoritystringThe authority that signed the transfer.
mintstringMint of the token that the transfer is in. For SOL, this is null.
amountnumberThe amount of the transfer (newDestinationBalance - oldDestinationBalance).
sourcePreBalancenumberThe balance of the source account before the update.
destinationPreBalancenumberThe balance of the destination account before the update.
sourcePostBalancenumberThe balance of the source account after the update.
destinationPostBalancenumberThe balance of the destination account after the update.