Skip to content

This section explains how to deploy indexers to your Ripple Custody infrastructure with the Helm package manager. This section only applies to on-premise deployments.

Prerequisites

Before you deploy indexers, you need a basic understanding of the following:

In addition, you need one or more suitable distributed ledger network nodes on the blockchain ledger.

Networks

Possible IndexersNetwork NameLedgerDescription
Bitcoin Regression Testing Networkregtest-1BitcoinOften used for local testing.
Bitcoin Testing NetworktestnetBitcoinUsed for testing purposes.
Bitcoin Main NetworkmainnetBitcoinActual network.
Litecoin Regression Testing Networkregtest-1Litecoin (Bitcoin fork)Often used for local testing.
Litecoin Testing NetworktestnetLitecoin (Bitcoin fork)Used for testing purposes.
Litecoin Main NetworkmainnetLitecoin (Bitcoin fork)Actual network.
Dogecoin Regression Testing Networkregtest-1Dogecoin (Bitcoin fork)Often used for local testing.
Dogecoin Testing NetworktestnetDogecoin (Bitcoin fork)Used for testing purposes.
Dogecoin Main NetworkmainnetDogecoin (Bitcoin fork)Actual network.
Dash Regression Testing Networkregtest-1Dash (Bitcoin fork)Often used for local testing.
Dash Testing NetworktestnetDash (Bitcoin fork)Used for testing purposes.
Dash Main NetworkmainnetDash (Bitcoin fork)Actual network.
Go Ethereum Private Development Networkgeth-devEthereumDevelopment environment.
Ethereum Parity Technologies Development Networkparity-devEthereumDevelopment environment.
Ethereum Holesky Test Networktestnet-holeskyEthereumUsed for testing purposes.
Ethereum Sepolia Test Networktestnet-sepoliaEthereumUsed for testing purposes.
Ethereum Main NetworkmainnetEthereumActual network.
Ethereum PoW Main Networkpow-mainnetEthereumActual network.
Polygon Amoy Test Networktestnet-amoyPolygon (formerly MATIC) (EVM compatible)Used for testing purposes.
Polygon Main NetworkmainnetPolygon (formerly MATIC) (EVM compatible)Actual network.
Avalanche C Chain Fuji Test Networktestnet-fujiAvalanche C Chain (EVM compatible)Used for testing purposes.
Avalanche C Chain Main NetworkmainnetAvalanche C Chain (EVM compatible)Actual network.
Binance Smart Chain Test NetworktestnetBinance Smart Chain (EVM compatible)Used for testing purposes.
Binance Smart Chain Main NetworkmainnetBinance Smart Chain (EVM compatible)Actual network.
XRP Ledger Development NetworkdevnetXRP LedgerDevelopment environment.
XRP Ledger Regression Testing Networkregtest-1XRP LedgerOften used for local testing.
XRP Ledger Testing NetworktestnetXRP LedgerUsed for testing purposes.
XRP Ledger Main NetworkmainnetXRP LedgerActual network.
Tezos Sandbox NetworksandboxTezosOften used for local testing.
Tezos Testing NetworktestnetTezosUsed for testing purposes.
Tezos Main NetworkmainnetTezosActual network.
Substrate Development NetworkdevSubstrate (Parity Technologies)Development environment.
Substrate Testing Network (Westend)westendSubstrate (Parity Technologies)Often used for local testing.
Substrate Staging Network (Kusama)kusamaSubstrate (Parity Technologies)Used for testing purposes.
Substrate Main Network (Polkadot)polkadotSubstrate (Parity Technologies)Development environment.
Stellar Development NetworkdevnetStellarDevelopment environment.
Stellar Main NetworkmainnetStellarActual network.
Solana Development NetworkdevnetSolanaDevelopment environment.
Solana Main NetworkmainnetSolanaActual network.
Cardano Testing NetworktestnetCardanoActual network.
Cardano Preview NetworkpreviewCardanoOften used for local testing.
Cardano Pre-Prod NetworkpreprodCardanoPre-Production network.
Cardano Main NetworkmainnetCardanoActual network.
Hedera Testing NetworktestnetHederaUsed for testing purposes.
Hedera Main NetworkmainnetHederaActual network.
Algorand Testing NetworktestnetAlgorandUsed for testing purposes.
Algorand Main NetworkmainnetAlgorandActual network.

Helm configuration

To deploy an indexer, you need to create and update a values.yaml file.

Use this empty template to help you get started:


ledgers:
  bitcoin:
    regtest-1:
      enabled: false
      nodeEndpoint:
      url:
      user:
      password:
      fallbackFeeRate:
    testnet:
      enabled: false
      nodeEndpoint:
      url:
      user:
      password:
      fallbackFeeRate:
    mainnet:
      enabled: false
      nodeEndpoint:
      url:
      user:
      password:
      fallbackFeeRate:

Each network appears as a separate object under the ledger name object, for example regtest-1 in the template example. Enable or disable the deployment of an indexer for each network by modifying its enabled field.

Each network has its own configuration structure, but we can group them into the following families.

Configuration 1 - Bitcoin and its forks

  • bitcoin
    • regtest-1
    • testnet
    • mainnet
  • litecoin
    • regtest-1
    • testnet
    • mainnet
  • dogecoin
    • regtest-1
    • testnet
    • mainnet
  • dash
    • regtest-1
    • testnet
    • mainnet
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether the indexer for the specific network is active.
nodeEndpointStringURL in a valid format, for example, <hostname>:<port>Empty stringThe URL for the Bitcoin node that the indexer will connect to.
urlStringURLEmpty stringThe URL for the indexer.
userStringAlphanumericEmpty stringThe username for authenticating with the indexer.
passwordStringAlphanumericEmpty stringThe password for authenticating with the indexer.
fallbackFeeRateIntegerSatoshi/vByte100The fallback fee rate to use when the indexer cannot retrieve the fee rate from the node.

The following example shows a values.yaml file for deploying a Bitcoin indexer for the mainnet:

harmonize:
  ledgers:
      bitcoin:
        mainnet:
          enabled: true
          nodeEndpoint: NODEURL:PORT
          url: https://NODEUR?auth=TOKEN
          user: <user>
          password: <password>
          fallbackFeeRate: 100

In the example, you need to replace <user> and <password> with your actual username and password for the indexer.

Configuration 2 - EVM, XRPL, & Tezos

  • ethereum
    • geth-dev
    • testnet-holesky
    • testnet-sepolia
    • parity-dev
    • mainnet
    • pow-mainnet
  • polygon
    • testnet-amoy
    • mainnet
  • avalanche-c-chain
    • testnet-fuji
    • mainnet
  • bsc
    • testnet
    • mainnet
  • xrpl
    • regtest-1
    • devnet
    • testnet
    • mainnet
  • tezos
    • sandbox
    • testnet
    • mainnet
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether or not the indexer for the specific network is active.
uriStringURLEmpty stringThe URL for the indexer.

The following example shows a values.yaml file for deploying an Ethereum indexer for the testnet:

harmonize:
  ledgers:
    ethereum:
      testnet-holesky:
        enabled: true
        uri: 'https://test-holesky-node.bdnodes.net?auth=uamvQornmOiUr0Dg7nbf48jjnPt'

Configuration 3 - Polkadot ecosystem

  • substrate
    • dev
    • polkadot
    • kusama
    • westend
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether or not the indexer for the specific network is active.
wsStringURLEmpty stringWebSocket connection URL.
sidecar (or ws_sidecar_url/ws_sidecar)StringURLEmpty StringSidecar URL.

The following example shows a values.yaml file for deploying a Polkadot indexer for the mainnet:

harmonize:
  ledgers:
    substrate:
      polkadot:
        enabled: true
        ws: ws://my-web-socket-server.com
        sidecar: mySuperSecretPassphrase

Configuration 4 - Stellar & Solana

  • stellar
    • devnet
    • mainnet
  • solana
    • devnet
    • mainnet
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether or not the indexer for the specific network is active.
urlStringURLEmpty stringThe URL for the indexer.
passphraseStringAlphanumericEmpty stringThe passphrase for authenticating with the indexer.

The following example shows a values.yaml file for deploying a Solana indexer for the mainnet:

harmonize:
  ledgers:
    solana:
      mainnet:
        enabled: true
        url: 'https://test-solana-node.bdnodes.net?auth=uamvQornmOiUr0Dg7nbf48jjnPt'
        passphrase: mySuperSecretPassphrase

Configuration 5 - Cardano ecosystem

  • cardano
    • preprod
    • preview
    • testnet
    • mainnet
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether or not the indexer for the specific network is active.
httpStringURLEmpty stringHTTP connection URL.
wsStringURLEmpty stringWebSocket connection URL.

The following example shows a values.yaml file for deploying a Cardano indexer for the mainnet:

harmonize:
  ledgers:
    cardano:
      mainnet:
        enabled: true
        http: 'https://test-cardano-node.bdnodes.net?auth=uamvQornmOiUr0Dg7nbf48jjnPt'
        ws: ws://my-web-socket-server.com

Configuration 6 - Hedera & Algorand

  • hedera
    • testnet
    • mainnet
  • algorand
    • testnet
    • mainnet
Field NameTypeFormatDefaultDescription
enabledBooleantrue or falsefalseSpecifies whether or not the indexer for the specific network is active.
httpStringURLEmpty stringHTTP

The following example shows a values.yaml file for deploying a Hedera indexer for the mainnet:

harmonize:
  ledgers:
    hedera:
      mainnet:
        enabled: true
        http: 'https://test-hedera-node.bdnodes.net?auth=uamvQornmOiUr0Dg7nbf48jjnPt'

Deployment

To deploy your indexer, run the following Helm command:

helm install <my-release-name> <helm-chart-repository> -f my-custom-values.yaml

Where <my-release-name> is the name of your Helm release, <helm-chart-repository> is the chart you want to install, and my-custom-values.yaml is the file you completed with your configuration.


Next step