Skip to main content

Helm Values Reference

This page documents all configurable values in the Cardano Rosetta Java Helm charts. For each value, the equivalent Docker Compose environment variable is shown where applicable.

Global Values

These values are shared across all subcharts via global.*.

ValueDefaultDocker Compose equivalentDescription
global.networkmainnetNETWORKBlockchain network: mainnet, preprod, preview
global.protocolMagic"764824073"PROTOCOL_MAGICCardano protocol magic number (always a quoted string to prevent scientific notation)
global.releaseVersion"2.1.0"RELEASE_VERSIONDocker image tag for API and indexer
global.cardanoNodeVersion"10.5.4"CARDANO_NODE_VERSIONCardano node image tag
global.pgVersionTagREL_18_0PG_VERSION_TAGPostgreSQL image tag
global.mithrilVersion2543.1-hotfixMITHRIL_VERSIONMithril client image tag
global.profilemidHardware profile: entry, mid, advanced
global.synctrueSYNCSet false for offline (API-only) mode

Database (global.db)

ValueDefaultDocker Compose equivalentDescription
global.db.namerosetta-javaDB_NAMEPostgreSQL database name
global.db.userrosetta_db_adminDB_USERPostgreSQL user
global.db.password"" (required)DB_SECRETPostgreSQL password — pass via --set or Sealed Secret
global.db.schemapublicDB_SCHEMAPostgreSQL schema
global.db.port5432DB_PORTPostgreSQL port
global.db.host""DB_HOSTOverride to use external PostgreSQL. Empty = use in-cluster service

Mithril (global.mithril)

ValueDefaultDocker Compose equivalentDescription
global.mithril.enabledtrueMITHRIL_SYNCDownload Mithril snapshot on first install
global.mithril.snapshotDigestlatestSNAPSHOT_DIGESTSpecific snapshot digest or latest
global.mithril.aggregatorEndpoint""AGGREGATOR_ENDPOINTCustom aggregator URL. Empty = use network default
global.mithril.genesisVerificationKey""GENESIS_VERIFICATION_KEYCustom genesis verification key
global.mithril.ancillaryVerificationKey""ANCILLARY_VERIFICATION_KEYCustom ancillary verification key

Storage (global.storage)

ValueDefaultDocker Compose equivalentDescription
global.storage.cardanoNode.size500GiCARDANO_NODE_DIR volumePVC size for blockchain data
global.storage.cardanoNode.storageClass""StorageClass name. Empty = cluster default
global.storage.postgresql.size200GiDB_PATH volumePVC size for PostgreSQL data
global.storage.postgresql.storageClass""StorageClass name. Empty = cluster default

Hardware Profiles

Set global.profile to one of: entry, mid, advanced.

Resource Requests / Limits

Profilecardano-nodepostgresqlyaci-indexerrosetta-api
entry req1 CPU / 6 Gi1 CPU / 6 Gi500m / 2 Gi250m / 1 Gi
entry lim4 CPU / 12 Gi4 CPU / 12 Gi2 CPU / 4 Gi1 CPU / 2 Gi
mid req2 CPU / 12 Gi2 CPU / 12 Gi1 CPU / 4 Gi500m / 2 Gi
mid lim8 CPU / 24 Gi8 CPU / 24 Gi4 CPU / 8 Gi2 CPU / 4 Gi
advanced req4 CPU / 24 Gi4 CPU / 24 Gi2 CPU / 8 Gi1 CPU / 4 Gi
advanced lim16 CPU / 48 Gi16 CPU / 48 Gi8 CPU / 16 Gi4 CPU / 8 Gi

PostgreSQL Tuning (per profile)

ParameterentrymidadvancedDocker Compose env
maxConnections120300600DB_POSTGRES_MAX_CONNECTIONS
sharedBuffers1GB4GB32GBDB_POSTGRES_SHARED_BUFFERS
effectiveCacheSize2GB8GB32GBDB_POSTGRES_EFFECTIVE_CACHE_SIZE
workMem16MB64MB96MBDB_POSTGRES_WORK_MEM
API poolMin12150100API_DB_POOL_MIN_COUNT
API poolMax12150550API_DB_POOL_MAX_COUNT

yaci-indexer Values

ValueDefaultDocker Compose equivalentDescription
yaci-indexer.env.removeSpentUtxostrueREMOVE_SPENT_UTXOSPrune spent UTXOs to save disk
yaci-indexer.env.removeSpentUtxosLastBlocksGraceCount129600REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNTBlocks to retain (~30 days)
yaci-indexer.env.removeSpentUtxosBatchSize3000REMOVE_SPENT_UTXOS_BATCH_SIZEPruning batch size
yaci-indexer.env.blockTransactionApiTimeoutSecs120BLOCK_TRANSACTION_API_TIMEOUT_SECSTimeout for block/tx API calls
yaci-indexer.env.searchLimit100SEARCH_LIMITMaximum search results
yaci-indexer.env.continueParsingOnErrortrueCONTINUE_PARSING_ON_ERRORContinue syncing on parse errors
yaci-indexer.env.peerDiscoveryfalsePEER_DISCOVERYEnable peer discovery
yaci-indexer.env.logLevelerrorLOGLog level: error, info, debug

rosetta-api Values

ValueDefaultDocker Compose equivalentDescription
rosetta-api.replicaCount1Number of API replicas
rosetta-api.env.httpConnectTimeoutSeconds5HTTP_CONNECT_TIMEOUT_SECONDSHTTP client connect timeout
rosetta-api.env.httpRequestTimeoutSeconds5HTTP_REQUEST_TIMEOUT_SECONDSHTTP client request timeout
rosetta-api.env.syncGraceSlotsCount100SYNC_GRACE_SLOTS_COUNTSlots behind tip before reporting out-of-sync
rosetta-api.env.removeSpentUtxostrueREMOVE_SPENT_UTXOSMust match yaci-indexer setting
rosetta-api.env.removeSpentUtxosLastBlocksGraceCount129600REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNTMust match yaci-indexer setting
rosetta-api.env.blockTransactionApiTimeoutSecs120BLOCK_TRANSACTION_API_TIMEOUT_SECSTimeout for block queries
rosetta-api.env.devkitEnabledfalseDEVKIT_ENABLEDEnable DevKit integration
rosetta-api.env.tokenRegistryEnabledfalseTOKEN_REGISTRY_ENABLEDEnable Cardano token registry
rosetta-api.env.tokenRegistryBaseUrl""TOKEN_REGISTRY_BASE_URLToken registry URL (leave empty = disabled)
rosetta-api.env.tokenRegistryCacheTtlHours12TOKEN_REGISTRY_CACHE_TTL_HOURSToken metadata cache TTL
rosetta-api.env.tokenRegistryLogoFetchfalseTOKEN_REGISTRY_LOGO_FETCHFetch token logos (bandwidth-intensive)
rosetta-api.env.tokenRegistryRequestTimeoutSeconds2TOKEN_REGISTRY_REQUEST_TIMEOUT_SECONDSToken registry request timeout

Ingress

rosetta-api:
ingress:
enabled: true
className: nginx
host: rosetta.example.com
tls:
- secretName: rosetta-tls
hosts:
- rosetta.example.com

Index Applier

ValueDefaultDescription
indexApplier.enabledtrueDeploy the index-applier Job
indexApplier.modeautomaticautomatic: plain Job (GitOps-friendly, no hooks). hook: legacy Helm post-install/post-upgrade hook.
indexApplier.pollInterval60Seconds between API readiness polls

In automatic mode the Job runs as part of the release (compatible with ArgoCD and --no-hooks). The Job is cleaned up 24 hours after completion via ttlSecondsAfterFinished.

In hook mode the Job is a Helm post-install/post-upgrade hook. Monitor it independently and never use --wait-for-jobs as it can run for up to 18 hours on mainnet.


Subchart Toggles

ValueDefaultDescription
cardano-node.enabledtrueDeploy the Cardano node
postgresql.enabledtrueDeploy in-cluster PostgreSQL
yaci-indexer.enabledtrueDeploy the Yaci indexer
rosetta-api.enabledtrueDeploy the Rosetta API

Using an External PostgreSQL

To use an external managed database (RDS, Cloud SQL, etc.):

# values-external-db.yaml
postgresql:
enabled: false

global:
db:
host: "my-rds-instance.cluster-xyz.us-east-1.rds.amazonaws.com"
name: "rosetta-java"
user: "rosetta_db_admin"
password: "" # pass via --set global.db.password=...
helm upgrade --install rosetta helm/cardano-rosetta-java \
-f helm/cardano-rosetta-java/values.yaml \
-f values-external-db.yaml \
--set global.db.password="${DB_PASSWORD}"

Example: Preprod on K3s (entry profile)

# values-preprod.yaml (already included in the chart)
global:
network: preprod
protocolMagic: "1"
profile: entry
storage:
cardanoNode:
size: 100Gi
storageClass: local-path
postgresql:
size: 50Gi
storageClass: local-path

yaci-indexer:
env:
removeSpentUtxos: false
peerDiscovery: true

rosetta-api:
env:
removeSpentUtxos: false
helm upgrade --install rosetta helm/cardano-rosetta-java \
-f helm/cardano-rosetta-java/values-k3s.yaml \
-f helm/cardano-rosetta-java/values-preprod.yaml \
--set global.db.password="${DB_PASSWORD}" \
-n cardano