CosmWasm Indexer
Why?
Rather than indexing the transactions and events that end up in a block like most indexers, this indexer only cares about the state in smart contracts.
Most indexers cannot access CW20 token balances. This one can.
This allows for:
- Contract-to-contract (submessage) support
- Blazing fast UI via contract query replacement
- Instant historical data
This indexer is the reason DAO DAO is so fast.
What?
This indexer supports:
- Current and historical smart contract state queries.
- Webhooks that fire when state changes.
- WebSockets that send real-time state updates to an app.
Try it out
Use the widget below to try querying state from a smart contract.
How?
The contract API is very straightforward and documented below.
To perform more complex queries or write custom formulas, such as aggregated contract state for a specific wallet (like cw20 token balances), contact me using one of the links above.
This indexer runs on Juno mainnet and testnet. It is accessible via:
When you create a key, you will be shown a one-time API key to put in the
header of your requests. Once you fund it with credits, it will work immediately.Contract API
/contract/
/itemThis endpoint takes either
or in its query string and returns the value from an or value at a specific key in a .is used to access state from a smart contract . The query that gets the value of the item with key from the smart contract with address would look like this:
/contract/
/item?key=is used to access state from a smart contract . The query that gets the value of the key in a map with key would look like this:
/contract/
/item?keys=/contract/
/mapThis endpoint takes either
or in its query string, as well as an optional field, and returns the entire contents of a .is used to access a single-keyed . The query that gets the map with key from the smart contract with address would look like this:
/contract/
/map?key=is used to access a multi-keyed . The query that gets the map at the key prefix in a multi-keyed map with key would look like this:
/contract/
/map?keys=tells the map decoder if the keys are numbers. If omitted or empty, the keys are treated as strings. If defined, the keys are treated as numbers. The query that gets the map with key whose keys are numeric IDs that map to objects would look like this:
/contract/
/map?key= &numeric=true