Cosmos-SDK LCD Extractor
Pricing
from $0.35 / 1,000 chain records
Cosmos-SDK LCD Extractor
Point at ANY Cosmos-SDK chain's LCD (REST) endpoint and extract validators, governance proposals, token supply, account balances, delegations, or inflation. Chain-agnostic across the Cosmos ecosystem; opaque next_key pagination, gov v1/v1beta1 fallback, big-int amounts kept as strings.
Pricing
from $0.35 / 1,000 chain records
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Point at any Cosmos-SDK chain's public LCD (REST / gRPC-gateway) endpoint and pull
structured data out of its core modules — no per-chain scraper, no RPC node to run. One actor
reads the whole ~60-chain Cosmos ecosystem because every Cosmos-SDK chain exposes the identical
/cosmos/<module>/<version>/… REST surface.
What it does
Give it a chain's LCD base URL (e.g. https://cosmos-rest.publicnode.com, or
https://rest.cosmos.directory/<chain> — swap <chain> for cosmoshub, osmosis, juno,
celestia, injective, …) and pick a module:
| Module | Endpoint | One row per |
|---|---|---|
validators | /cosmos/staking/v1beta1/validators | validator (moniker, tokens, commission, status, jailed, self-delegation) |
proposals | /cosmos/gov/v1/proposals (auto-falls back to v1beta1) | governance proposal (title, status, tally, deposit, type) |
supply | /cosmos/bank/v1beta1/supply | supply denom + amount |
balances | /cosmos/bank/v1beta1/balances/{address} | account balance denom + amount |
delegations | /cosmos/staking/v1beta1/delegations/{address} | delegation (validator, shares, balance) |
inflation | /cosmos/mint/v1beta1/inflation | the chain's current annual inflation (single value) |
balances and delegations require an address (a bech32 account for the target chain).
Why a generic runner works — and the gotchas it handles
Every Cosmos-SDK chain speaks the same module contract, but the server decides several details that break naive clients:
- Pagination is opaque
pagination.next_key(base64), not an offset. Andpagination.totalis very often"0"because chains disable the count for performance — so it is never used as a terminator. This actor loops purely onnext_key(with a looping-cursor guard). - Governance version drift. Newer chains serve
gov/v1(yes_count, top-leveltitle); older chains only servegov/v1beta1(yes,proposal_id, title nested undercontent). The actor tries v1, falls back to v1beta1, and normalises both into one row shape. - Amounts are big-integer strings.
tokens,delegator_shares, supply/balance amounts and tally counts routinely exceed float precision, so they are kept verbatim as strings. - Pruned / non-Cosmos hosts fail loud. An HTML/nginx error, a
501 not implementedfor a module the chain doesn't run, or a body missing the expected key → fail-fast (exit 91), never a fabricated empty result. A reachable, valid, genuinely-empty response (un-staked account, no open proposals) is an honest success with 0 rows.
Output
One flat row per record with a lossless _raw copy of the source object and
_module / _restUrl / _endpoint / _rowIndex provenance. All source-derived fields are
nullable, so the six record types share one schema and render cleanly in a table view.
Pricing
Pay-per-event: $0.0005 per record (one validator / proposal / supply denom / balance / delegation), with a subscription-tier volume discount.
Example input
{"restUrl": "https://cosmos-rest.publicnode.com","module": "validators","status": "BOND_STATUS_BONDED","maxRecords": 200}