Decentralized data network
Web3 Analytics uses Ceramic for decentralized data storage. Ceramic is a decentralized and permissionless data streaming network built on top of IPFS. It provides DID authentication, immutable naming, and mutable streams in a decentralized manner.
When a new user arrives at your app, we auto-generate a secp256k1 keypair for the user we store in the browser. This keypair is used for DID authentication to Ceramic for writing analytics data. We store the entire analytics payload of every event in Ceramic and the data is cryptographically secured and belongs to the user. While anyone can read this anonymous data, only the user may delete or modify it using the keypair.
We created a secp256k1 adapter for Ceramic because it is the same curve used in Ethereum and Bitcoin. This is important because of the next component. Since our data is decentralized, we need a smart contract to keep track of it so we can find it again.