---
title: "The commit-ledger contract, its ABI and the conventions needed to replay it"
method: GET
path: "/ledger/contract"
tags: ["Ledger"]
---

# The commit-ledger contract, its ABI and the conventions needed to replay it

`GET /ledger/contract`

## Request

- Base URL: `https://kellian.app/api/v1`
- URL: `https://kellian.app/api/v1/ledger/contract`
- Auth: none required

## Response `200`

Success

- LedgerContractDocument: Everything an outside reader needs to replay this venue's commit ledger off Base: the contract, its ABI, the state reads, the tree conventions and the replay rule. Facts only.
  - `chainId` integer, required: Compiled protocol release chain ID (Base 8453).
  - `address` string, required: Checksummed or lowercase 20-byte EVM address (0x + 40 hex).
  - `explorerUrl` string, uri
  - `abi` object[], required: ABI for the batch call, the state read functions and the events. Published because this venue does not verify its contracts on block explorers, so a reader needs the ABI to decode a batch's calldata. An ABI is a description of an interface, not source.
  - `reads` object[], required: The view calls that answer "where is the ledger now".
    - `name` string, required
    - `returns` string, required
    - `description` string, required
  - `root` object, required: The leaf and tree conventions, in full. They are OpenZeppelin `MerkleProof` conventions, so a proof from this venue verifies in Solidity with no library of ours.
    - `leaves` string, required
    - `order` string, required
    - `hashing` string, required
    - `empty` string, required
  - `replay` string, required: One sentence: how to recompute every balance from Base and nothing else.
  - `assets` object, required: How the ledger numbers its assets and names its mint/burn counterparty.
    - `collateral` string, required
    - `shares` string, required
    - `supply` string, required: Checksummed or lowercase 20-byte EVM address (0x + 40 hex).
  - `decoder` object: The open-source decoder for the journal payloads, when published.
    - `npm` string, required: The published decoder package.
    - `install` string, required
    - `command` string, required: One command that decodes and checks a batch with any Base RPC.

## Other responses

- `500`: Error: one of INTERNAL_ERROR
- `default`: Error response (RFC 9457 Problem Details for HTTP APIs)

---

[API](https://skmtc.dev/problee/apis/kellian-consumer-api.md) · [All operations](https://skmtc.dev/problee/apis/kellian-consumer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/problee/apis/kellian-consumer-api/revisions/2b8254b0ec57?raw)
