Fetching on-chain data from Ceramic

Hello everyone,

I’m quite new to Ceramic and ComposeDB, but I’m quite interested in the concept of decentralized storage.
My use-case is storing web2 data on-chain (part1) and make it queryable from EVM smart contracts (part2).
I understand one can use ComposeDB to storage data in tabular format in a decentralized way (fulfilling part 1) but I don’t know if it’s queryable from other smart contracts, within the Clay testnet, for example.
Any pointers much appreciated!

Hey @GabrielFior, great to have you here! :slight_smile:
One thing I wanted to clarify is that ComposeDB is designed to enable developers to store data that doesn’t need to be on-chain. For that, Ceramic is using IPFS. With native indexing and GraphQL interface you can write queries, perform mutations and write new data in a fast and efficient way.

The only on-chain state from Ceramic is the smart contract used by the anchor service, which just includes the merkle root of a merkle tree containing all writes written to Ceramic. The actual merkle tree itself lives on IPFS though, not on-chain.

I’m be curious to learn more about your use case. Can you tell me more about what kind of data you’d like to store on Ceramic?

Thanks for the detailed reply @Justina !
My questions:

  • So let’s assume I have weather data which I want to persist on-chain. Do I understand correctly that ComposeDB would store my data on IPFS under-the-hood and make this data easily queryable for my smart contracts?
  • My use-case is actually basketball (storing e.g. the latest game results), which is useful for diff scenarios like gaming, e-sports, etc. My requirement is for this data to be easily queried on-chain by smart contracts (ideally EVM).

Please note that Ceramic (and IPFS) is its own network, independent of any blockchain. Data from Ceramic will not be accessible on a smart-contract based blockchain like ethereum, unless you use something like an oracle service to read that data off of Ceramic and put it on-chain.