if-eth-then-that for smart contract events via the power of webhooks.

Some example usages:

  • track any usage of your cold storage wallet address in a contract event
  • send yourself an e-mail when an ENS domain name is released
  • listen for when kitties with special genes are born
  • compile a database on decentralized exchange data
  • trigger your IoT devices

What it does

Allows you to subscribe via webhook to ethereum smart contract events by address, method signature, or any indexed arguments, in any combination.

How we built it

Using serverless (SQS, SNS, Lambda, etc.) in combination with ethereumjs-blockstream, we built a scalable pipeline for listening to events on the blockchain and notifying a nearly unlimited number of subscribers.

Challenges we ran into

We challenged ourselves to allow subscribers to create rules of arbitrary complexity. The architecture to notify an unlimited number of subscribers for arbitrarily complex rules in constant time was challenging, and required a multi-step pipeline using dynamically scalable serverless solutions.

Accomplishments that we're proud of

Creating a much needed blockchain middleware in the span of 36 hours, complete with authentication via Auth0 and a web app to administer your subscriptions. Available for testing at

What we learned

  • serverless is awesome
  • SQS queues are awesome
  • create-react-app is king
  • love typescript

What's next for if-eth

  • Use contract ABIs to improve the usability of the web app and decode logs sent to the webhooks
  • Collect payments via a smart contract
  • Utilize efficient decentralized storage services e.g. storj to store webhook receipts
  • Use TLS notaries to prove webhooks were actually hit by our service
  • Decentralize the whole thing?! Micro-bounties for POSTing log events to subscribers...

Built With

  • api-gateway
  • auth0
  • es6
  • ethereum-blockstream
  • lambda
  • quiknode
  • react
  • serverless
  • typescript
Share this project: