███████╗████████╗██╗ ██╗██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗ ██╔════╝╚══██╔══╝██║ ██║██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║ █████╗ ██║ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║ ██╔══╝ ██║ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║ ███████╗ ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
EthWatch is a decentralized distribution network for EVM smart contract events. It allows apps to listen to events in a scalable and secure way, instead of polling a blockchain node via RPC or other centralized API.
EthWatch is great for oracles, bridges, and other blockchain-adjacent backends, as well as DEXes, DeFi pools, and other dapp frontends that wish to improve UX by displaying chain events in realtime.
EthWatch is currently in alpha testnet phase. Please be mindful when using it for anything valuable.
Install the JS client library from npm:
npm install ethwatch-client
Use it in your app:
import { EthWatch } from 'ethwatch-client' const ethWatch = new EthWatch({ chain: 'ethereum' }) ethWatch.watch(contractAddress, abi).then((contract) => { contract.on('event', (event) => { console.log(event.parsed) }) })
For more examples, see the ethwatch-client readme.
EthWatch is essentially a peer-to-peer content delivery network for EVM events. A community-curated set of independent seed nodes listen to smart contract events via normal RPC, and then publish the events over the decentralized and scalable Streamr protocol for everyone to enjoy without the need for RPC.
Since every event is published by every seed node independently, apps can wait for a quorum of seed nodes (by default, 50%) to confirm an event before accepting it - making EthWatch secure, fault tolerant, and trustless. As the seed nodes sign each confirmation with their private key, the events are tamper-proof and can be securely attributed to each seed node.
Pros:
Cons:
EthWatch is currently looking for volunteers in the web3 space to join as Founding Seed Nodes. Please fill out this short form to signal your interest.