80/20 #4 — Building a notification app for BAYC transactions on ethereum

Oli Flynn
Coinmonks
3 min readMar 13, 2022

--

Goals

  • Last blog we wrote could not create a lottery app because the original design required the full history of buyers of a token of a smart which cannot easily be obtained from the contract. This project is an attempt to create a store of the transaction events in Kafka to solve for this general problem
  • Create a platform that can be used to solve this problem generally i.e. can connect to any smart contract and subscribe and store the emitted events in a kafka topic which can then be consumed in whatever way the client requires
  • To prove the concept we chose to use the platform to consume the BAYC transaction events, store them in Kafka and then publish those events to a Discord channel

Technologies

  • Flask to create admin app to manage which contracts we subscribe to
  • Infura to connect to the Ethereum blockchain to access emitted events
  • Kafka for storage of the events
  • Kowl UI to view the events that have been stored in Kafka
  • Discord API to publish events to Discord channel

Value prop

  • Enable accessible history of events to support many realtime event-based smart contract use cases
  • Consumers have flexibility to choose how they want to consume e.g. publish to database for product-based queries, analytics platform for analytical queries or consume the events directly e.g. our BAYC use case
  • If anything goes wrong in their downstream they can replay events

Github link with instructions to setup the Penrose App — https://github.com/olwflynn/penrose-app

Discord channel to receive Bored Ape Yacht Club transfer notifications — https://discord.gg/sfj2KjqS

Watch Demo — Making storing state easier in blockchains

https://www.loom.com/share/43192ad617774e39acb91063396f6c6a

User journey to subscribe to a new contract event

  • Add contract address (and ABI optionally) and event name in the admin UI. This will add the contract event to the platform but it will be inactive i.e. not listening to events
  • Click on subscribe button in order to start listening to the defined events
  • Successfully stored events for the chosen smart contract can then be viewed in the Kowl UI. These are accessible via the relevant Kafka topic.

Watch Demo — Subscribing to BAYC NFT notifications

https://www.loom.com/share/175a956f051a4cc0b62b2a39d86ca1c0

Join Coinmonks Telegram Channel and Youtube Channel learn about crypto trading and investing

Also, Read

--

--

Oli Flynn
Coinmonks

Product @ Meta. ML. Product. Data. Code. Views are my own.