# Indexers configuration

Use this page to understand the ledger fields used by blockchain indexers in Ripple Custody. The example shows one possible configuration shape; node endpoints, credentials, providers, and indexer resource values depend on your deployment.

This page applies to on-premise deployments only. For current defaults and the full supported schema, use the configuration packaged with your release.

## What this config controls

Indexers connect to blockchain nodes, index on-chain data, and expose APIs used by Ripple Custody to query transaction history, balances, and blockchain state.

Ledger connection fields are configured under `harmonize.ledgers`. Indexer deployment settings, where exposed, are configured under `indexers`. Internal image references, ports, and environment variables are managed by the release package unless explicitly exposed in your values.

## Common ledger fields

| Field | Type | Default | Description |
|  --- | --- | --- | --- |
| `enabled` | boolean | `false` | Enables the ledger/network entry. |
| `uri` | string | `""` | Node or indexer URI for integrations that use one endpoint field. |
| `url` | string | `""` | Node or indexer URL for integrations that use URL plus optional credential fields. |
| `nodeEndpoint` | string | `""` | Node endpoint used by Bitcoin-family indexer configuration. |
| `user` | string | `""` | Username for endpoint authentication. |
| `password` | string | `""` | Password for endpoint authentication. |
| `fallbackFeeRate` | integer | `100` | Bitcoin-family fallback fee rate in satoshi/vByte. |
| `ws` | string | `""` | WebSocket endpoint. |
| `sidecar` | string | `""` | Substrate sidecar URL. Also accepts `ws_sidecar_url` or `ws_sidecar` where supported. |
| `passphrase` | string | `""` | Network passphrase for ledgers that require one. |
| `http` | string | `""` | HTTP endpoint. |


## Indexer field patterns

| Indexer | Configuration location | Ledger/network entries | Ledger fields |
|  --- | --- | --- | --- |
| NBXplorer | `indexers.nbxplorer` | `bitcoin`, `litecoin`, `dogecoin`, `dash`; `regtest-1`, `testnet`, `mainnet` | `enabled`, `nodeEndpoint`, `url`, `user`, `password`, `fallbackFeeRate` |
| ETH Indexer | `indexers.ethindexer` | `ethereum`, `polygon`, `avalanche-c-chain`, `bsc`; see [Blockchain nodes configuration](/products/custody/deployment/reference/blockchain-nodes) for network names | `enabled`, `uri` |
| XRP Indexer | `indexers.xrplindexer` | `xrpl`; `regtest-1`, `devnet`, `testnet`, `mainnet` | `enabled`, `uri` |
| Tezos Indexer | `indexers.xtzindexer` | `tezos`; `sandbox`, `testnet`, `mainnet` | `enabled`, `uri` |
| Substrate Indexer | `indexers.substrate-indexer` | `substrate`; `dev`, `polkadot`, `kusama`, `westend` | `enabled`, `ws`, `sidecar` |
| Stellar Indexer | `indexers.stellar-indexer` | `stellar`; `devnet`, `mainnet` | `enabled`, `url`, `passphrase` |
| Solana Indexer | `indexers.solana-indexer` | `solana`; `devnet`, `mainnet` | `enabled`, `url`, `passphrase` |
| Cardano Indexer | `indexers.cardano` | `cardano`; `preprod`, `preview`, `testnet`, `mainnet` | `enabled`, `http`, `ws` |
| Hedera Indexer | `indexers.hederaindexer` | `hedera`; `testnet`, `mainnet` | `enabled`, `http` |
| Algorand Indexer | `indexers.algorandindexer` | `algorand`; `testnet`, `mainnet` | `enabled`, `http` |


## Constraints and relationships

- Enabled ledger entries need the endpoint fields required by that ledger/indexer pattern.
- Bitcoin-family ledgers can use NBXplorer.
- EVM-compatible ledgers use the ETH Indexer pattern.
- Substrate ledgers require both WebSocket and sidecar-style connectivity.
- If a ledger supports `network.indexerUrl`, you can point it at a separately deployed indexer. See [Blockchain nodes configuration](/products/custody/deployment/reference/blockchain-nodes).


## Example

This example shows a deployment values file with several indexer field patterns:


```yaml
harmonize:
  ledgers:
    bitcoin:
      mainnet:
        enabled: true
        nodeEndpoint: "bitcoin-rpc.internal:8332"
        url: "https://bitcoin-indexer.example.com"
        user: "<rpc-user>"
        password: "<rpc-password>"
        fallbackFeeRate: 100

    ethereum:
      mainnet:
        enabled: true
        uri: "https://ethereum-node.example.com"

    substrate:
      polkadot:
        enabled: true
        ws: "wss://substrate-ws.example.com"
        sidecar: "https://substrate-sidecar.example.com"

    cardano:
      mainnet:
        enabled: true
        http: "https://cardano-node.example.com"
        ws: "wss://cardano-ws.example.com"
```

## Related topics

- [Blockchain nodes configuration](/products/custody/deployment/reference/blockchain-nodes)
- [Ledgers configuration](/products/custody/deployment/reference/ledgers)
- [Telemetry configuration](/products/custody/deployment/reference/telemetry-configuration)