Developer Fundamentals
6. Ultra-Efficient Beats
Use Beats/Bloom for quick activity checks; test data too.
Prerequisites
Beats & Bloom
Minimal pulses! ⚡ Beats (/beat2) every block.
import { bloomUtils } from '@vechain/sdk-core'; const wsUrl = subscriptions.getBeatSubscriptionUrl('https://mainnet.vechain.org'); const ws = new WebSocket(wsUrl); ws.onmessage = (msg) => { const beat = JSON.parse(msg.data); const addrTest = '0x000...0000'; if (bloomUtils.isAddressInBloom(beat.bloom, beat.k, addrTest)) { console.log('Addr active! Fetch block.'); } // VTHO data: const dataTest = '0x456e65726779'; // "Energy" if (bloomUtils.isInBloom(beat.bloom, beat.k, dataTest)) { /* Alert */ } };
import { bloomUtils } from '@vechain/sdk-core'; const wsUrl = subscriptions.getBeatSubscriptionUrl('https://mainnet.vechain.org'); const ws = new WebSocket(wsUrl); ws.onmessage = (msg) => { const beat = JSON.parse(msg.data); const addrTest = '0x000...0000'; if (bloomUtils.isAddressInBloom(beat.bloom, beat.k, addrTest)) { console.log('Addr active! Fetch block.'); } // VTHO data: const dataTest = '0x456e65726779'; // "Energy" if (bloomUtils.isInBloom(beat.bloom, beat.k, dataTest)) { /* Alert */ } };
import { bloomUtils } from '@vechain/sdk-core'; const wsUrl = subscriptions.getBeatSubscriptionUrl('https://mainnet.vechain.org'); const ws = new WebSocket(wsUrl); ws.onmessage = (msg) => { const beat = JSON.parse(msg.data); const addrTest = '0x000...0000'; if (bloomUtils.isAddressInBloom(beat.bloom, beat.k, addrTest)) { console.log('Addr active! Fetch block.'); } // VTHO data: const dataTest = '0x456e65726779'; // "Energy" if (bloomUtils.isInBloom(beat.bloom, beat.k, dataTest)) { /* Alert */ } };
Covers gas payers/events/transfers. Lightning scans!
REMEMBER!
Bloom can bring up false positives—always confirm with full fetch.
Join our Telegram