Ethereum in real-time: Dagger — Simple engine to get Ethereum transactions, receipts and events in real-time

Somedays ago, someone sent random transaction to Parity Wallet and accidentally locked funds. No one knew about it until that person informed the team on Github. Currently there is no way to receive transaction (filtered) events from Ethereum and process them.

Etherscan sends you an email whenever anyone deposits to your accounts. But we need more ways to get informed whenever something happens on contracts. Simple example: getting a slack message or mobile notification when someone withdraws more than 10ETH or 1000 Tokens from your Multi-sig wallet?

To make that possible, we have created Dagger. We at Matic Network aim to make current decentralized eco-system more usable and easy for users and we believe Dagger helps developers to achieve that.


Dagger is a simple development tool to get blocks, transactions or events triggered by Ethereum blockchain.

It uses pub/sub mechanism (MQTT protocol). Once you subscribe particular topic, you will start receiving messages that matches subscribed topic.

You can subscribe as many as topics you want.

We have already created javascript library which you use on Node and browser as well. You can use one of any available MQTT libraries to interact with Dagger.

var Dagger = require('eth-dagger'); // connect to Dagger ETH main network (network id: 1) over web socket var dagger = new Dagger('ws://'); // dagger server // Use mqtt protocol for node (socket) // var dagger = new Dagger('mqtt://'); // dagger server // get new block as soon as it gets created dagger.on('latest:block', function(result) { console.log("New block created: ",; }); // get only block number (as it gets created) dagger.on('latest:block.number', function(result) { console.log("Current block number: ",; });
Get latest Ethereum block using Dagger ?

Use cases

Here are some use-cases (not limited)

Send emails to your DApp users when their contracts get created and they are ready to use

Watch ERC20 token transfer from particular address

// web3 contract var web3Contract = new web3.eth.Contract(abi, address); // dagger contract var contract = dagger.contract(web3Contract); var filter ={filter: {from: ‘0x123456...’}, room: ‘latest’}); // watch, removed){ // : address to which it has been transferred to // data.returnValues.value : value which has been transferred }); // watch only once filter.watchOnce(function(data, removed){ // : address to which it has been transferred to // data.returnValues.value : value which has been transferred }); // stop watching filter.stopWatching();
Watch ERC20 token transfer from mentioned address ?

Receive slack messages when someone withdraws 1000 tokens

Automatically send broadcast new transaction when future block ‘X’ gets created

… and many more …

You can connect Dagger with any third party services using IFTTT or Zapier.

Source : blog.polygon

Leave a Reply

Your email address will not be published. Required fields are marked *