Category: webapp
Entity: Ledger
Base URL: ${webappBaseUrl} (default: http://localhost:8080, public guild webapp: http://crew.oh.energy)
Last Updated: May 13, 2026
| Method | Path | Description | Auth Required |
|---|---|---|---|
| GET | /api/ledger/player/{player_id}/page/{page} |
Get ledger page for a player | Yes |
| GET | /api/ledger/player/{player_id}/count |
Get ledger count for a player | Yes |
| GET | /api/ledger/{tx_id} |
Get ledger entry by transaction ID | Yes |
| GET | /api/ledger/list/all/page/{page} |
List every ledger entry on the chain | Yes |
| GET | /api/ledger/list/player/{player_id}/page/{page} |
Catalog list of ledger entries for a player | Yes |
| GET | /api/ledger/list/address/{address}/page/{page} |
List ledger entries for a Cosmos address | Yes |
The /api/ledger/list/... family is the catalog read interface and is namespaced under /list/ so it does not shadow the single-entry GET /api/ledger/{tx_id} route.
/api/ledger/player/{player_id}/page/{page}Get ledger page for player.
webapp-ledger-player-page| Name | Type | Required | Format | Description |
|---|---|---|---|---|
player_id |
string | Yes | player-id | Player identifier |
page |
integer | Yes | – | Page number |
/api/ledger/player/{player_id}/countGet ledger count for player.
webapp-ledger-player-count| Name | Type | Required | Format | Description |
|---|---|---|---|---|
player_id |
string | Yes | player-id | Player identifier |
/api/ledger/{tx_id}Get ledger entry by transaction ID.
webapp-ledger-by-tx| Name | Type | Required | Format | Description |
|---|---|---|---|---|
tx_id |
string | Yes | transaction-hash | Transaction identifier |
/api/ledger/list/all/page/{page}List every ledger entry on the chain, paginated.
webapp-ledger-list-all| Name | Type | Required | Format | Description |
|---|---|---|---|---|
page |
integer | Yes | \d+ |
Page number, 1-indexed |
/api/ledger/list/player/{player_id}/page/{page}Catalog list of ledger entries for a player. This is the catalog-read variant — use it when you need consistent paging metadata across entity types.
webapp-ledger-list-by-player| Name | Type | Required | Format | Description |
|---|---|---|---|---|
player_id |
string | Yes | player-id | Player identifier |
page |
integer | Yes | \d+ |
Page number |
/api/ledger/list/address/{address}/page/{page}List ledger entries for a Cosmos address.
webapp-ledger-list-by-address| Name | Type | Required | Format | Description |
|---|---|---|---|---|
address |
string | Yes | bech32 | Cosmos address (e.g. structs1...) |
page |
integer | Yes | \d+ |
Page number |
All ledger endpoints — catalog and bespoke — use the shared { "success", "errors", "data" } envelope (see protocols/webapp-api-protocol.md):
/api/ledger/list/... and /api/ledger/player/{player_id}/page/{page} → data is a flat array of ledger rows (page size 100; fetch the next page when data.length === 100)./api/ledger/player/{player_id}/count → data is a single object { "count": N }./api/ledger/{tx_id} → data is a single ledger row object (or null).The /list/ path prefix is required so the catalog routes don’t shadow GET /api/ledger/{tx_id}.