Ethereum in real-time: Dagger

1 min read

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
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.

Here is an example to store every outgoing Aragon Multisig Wallet transaction into Airtable.

Here are useful links:

Dagger examples:
Javascript library:

Let us know how we can make Dagger better for developers to help them make better DApps.

Stay in touch with us by following us on Twitter.

[mc4wp_form id="317"]