80/20 #4 — Building a notification app for BAYC transactions on ethereum
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
- 3Commas Review | Pionex Review | Coinrule review
- Ledger vs Ngrave | Ledger nano s vs x | Binance Review
- Bybit Exchange Review | Bityard Review | Jet-Bot Review
- 3Commas vs Cryptohopper | Earn crypto interest
- The Best Bitcoin Hardware wallet | BitBox02 Review
- BlockFi vs Celsius | Hodlnaut Review | KuCoin Review