Skip to content

Configuration reference

Yano X plugins declare their configuration as typed metadata, not as prose. That metadata is what makes appchain config validate and appchain explain work, and it is what this page is generated from at documentation build time.

Source: tooling/devtools/src/main/resources/appchain-dx/v1alpha1/appchain-first-party-metadata.json.

PolicyWhat it means
NEW_CHAIN_REQUIREDThe value is part of chain identity. Changing it on a live chain is not an upgrade; it is a different chain. Use a governed profile activation, or bootstrap fresh.

Anything genesis-selected — a commitment profile, a state encoding, a proof subject descriptor, an enabled state index — falls into this class. See Consensus rules for plugins.

Each property reports how well its constraints are known:

  • FULL — the constraint is verified against the runtime.
  • PARTIAL — derived, but not exhaustively verified. Treat third-party plugin metadata as PARTIAL unless Yano reports FULL, and verify the signed metadata and its runtime-manifest binding before trusting it.
PropertyTypeDefaultAllowedScopeChange policyDescription
yano.app-chain.machines.approvals.on-approved-effect.enabledBOOLEANfalseCONSENSUS_SHAREDGOVERNED_ACTIVATIONEmit one generic deterministic effect when a proposal is approved
yano.app-chain.machines.approvals.on-approved-effect.expiry-blocksLONGCONSENSUS_SHAREDGOVERNED_ACTIVATIONGeneric on-approved effect expiry in app-chain blocks
yano.app-chain.machines.approvals.on-approved-effect.gateSTRINGchain-default, app-final, l1-anchored, zk-settledCONSENSUS_SHAREDGOVERNED_ACTIVATIONFinality gate for the generic on-approved effect
yano.app-chain.machines.approvals.on-approved-effect.typeSTRINGCONSENSUS_SHAREDGOVERNED_ACTIVATIONExact executor routing type emitted after approval
yano.app-chain.machines.balances.minterSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDOptional 32-byte hexadecimal member identity allowed to mint balances
yano.app-chain.machines.kv-registry.value-formatSTRINGrawraw, cbor, utf8CONSENSUS_SHAREDNEW_CHAIN_REQUIREDEncoding accepted by the packaged key-value registry state machine
PropertyTypeDefaultAllowedScopeChange policyDescription
yano.app-chain.machines.composite.evidence-capacity-per-blockINTEGER8CONSENSUS_SHAREDNEW_CHAIN_REQUIREDMaximum evidence workflows evaluated in one block
yano.app-chain.machines.composite.presetSTRINGevidence-v1-gatedevidence-v1, evidence-v1-gated, role-evidence-v1CONSENSUS_SHAREDNEW_CHAIN_REQUIREDPackaged deterministic composite profile preset
yano.app-chain.machines.composite.profile-governance.max-epochsINTEGER1024CONSENSUS_SHAREDGOVERNED_ACTIVATIONMaximum retained composite profile epochs
yano.app-chain.machines.composite.profile-governance.min-activation-lagINTEGER20CONSENSUS_SHAREDGOVERNED_ACTIVATIONMinimum blocks between profile approval and activation
yano.app-chain.machines.composite.profile-governance.proposal-ttl-blocksINTEGER600CONSENSUS_SHAREDGOVERNED_ACTIVATIONLifetime of a composite profile proposal
yano.app-chain.machines.composite.profile-modeSTRINGfixedfixed, governedCONSENSUS_SHAREDGOVERNED_ACTIVATIONFixed or governed composite profile evolution
yano.app-chain.machines.composite.roles.maximum-mutation-lifetime-blocksINTEGER1000CONSENSUS_SHAREDGOVERNED_ACTIVATIONMaximum lifetime of role-governance mutations
PropertyTypeDefaultAllowedScopeChange policyDescription
yano.app-chain.machines.eutxo.bridge.confirmation-observer-idSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDConfigured exact stable withdrawal-confirmation observer instance
yano.app-chain.machines.eutxo.bridge.epochLONG0CONSENSUS_SHAREDNEW_CHAIN_REQUIREDBridge migration epoch bound into every withdrawal claim
yano.app-chain.machines.eutxo.bridge.max-pending-withdrawalsINTEGER1024CONSENSUS_SHAREDNEW_CHAIN_REQUIREDMaximum committed pending withdrawal claims
yano.app-chain.machines.eutxo.bridge.max-withdrawal-lovelaceLONG45000000000000000CONSENSUS_SHAREDNEW_CHAIN_REQUIREDHard per-claim lovelace withdrawal limit
yano.app-chain.machines.eutxo.bridge.observer-idSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDConfigured exact vault-deposit observer instance
yano.app-chain.machines.eutxo.bridge.vault-addressSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDExact Cardano vault address accepted by the EUTxO ledger
yano.app-chain.machines.eutxo.bridge.vault-script-hashSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDPinned 28-byte bridge vault script hash
yano.app-chain.machines.eutxo.bridge.withdrawal-addressSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDL2 sink address whose signed outputs become irrevocable withdrawal claims
yano.app-chain.machines.eutxo.bridge.withdrawals-pausedBOOLEANfalseCONSENSUS_SHAREDNEW_CHAIN_REQUIREDFail-closed consensus switch for new withdrawal claims
yano.app-chain.observers.bridge-deposits.typeSTRINGeutxo-vault-deposit-v1eutxo-vault-deposit-v1CONSENSUS_SHAREDNEW_CHAIN_REQUIREDExact accepted-vault deposit observer type
yano.app-chain.observers.bridge-withdrawals.typeSTRINGeutxo-withdrawal-confirmation-v1eutxo-withdrawal-confirmation-v1CONSENSUS_SHAREDNEW_CHAIN_REQUIREDExact stable Cardano withdrawal-confirmation observer type
PropertyTypeDefaultAllowedScopeChange policyDescription
yano.app-chain.machines.eutxo.bridge.params.fallback-delay-slotsLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis fallback arming delay in L1 slots (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.fee-basis-pointsLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis basis-point executor bounty (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.fee-flat-lovelaceLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis flat executor bounty (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.min-withdrawal-lovelaceLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis minimum withdrawal payout (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.rooting-blocksLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis rooting cadence in L2 blocks (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.rooting-secondsLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis rooting cadence in seconds (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.bridge.params.soft-batch-capLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDGenesis soft settlement batch cap (governed thereafter) (ADR-UTXO-009, v3 profiles only)
yano.app-chain.machines.eutxo.expected-profile-digestSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDExpected digest of every consensus-relevant EUTxO profile field
yano.app-chain.machines.eutxo.genesis.addressSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDTestnet address receiving the first no-real-funds genesis allocation
yano.app-chain.machines.eutxo.genesis.inline-datum-hexSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDOptional canonical lowercase Plutus datum CBOR for genesis output zero
yano.app-chain.machines.eutxo.genesis.l2-addressSTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDKey-controlled L2 address registered without creating virtual funds
yano.app-chain.machines.eutxo.genesis.l2-key-epochLONG1CONSENSUS_SHAREDNEW_CHAIN_REQUIREDInitial consensus key epoch for the registered L2 Jubjub key
yano.app-chain.machines.eutxo.genesis.l2-public-keySTRINGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDLowercase 32-byte Jubjub public key registered for the initial L2 address
yano.app-chain.machines.eutxo.genesis.lovelaceLONGCONSENSUS_SHAREDNEW_CHAIN_REQUIREDPositive no-real-funds lovelace allocated to genesis output zero
yano.app-chain.machines.eutxo.profileSTRINGyano-eutxo-v2-plutus-v3yano-eutxo-v1, yano-eutxo-v2-plutus-v3, yano-eutxo-v3-bridge-settlementCONSENSUS_SHAREDNEW_CHAIN_REQUIREDPinned deterministic EUTxO ledger profile
PropertyTypeDefaultAllowedScopeChange policyDescription
yano.app-chain.machines.evidence-registry.issuersSTRING_LISTCONSENSUS_SHAREDNEW_CHAIN_REQUIREDMember public keys allowed to issue evidence
yano.app-chain.machines.evidence-registry.notification-expiry-blocksLONG0CONSENSUS_SHAREDGOVERNED_ACTIVATIONEvidence notification effect expiry in app-chain blocks
yano.app-chain.machines.evidence-registry.notify-sendersSTRING_LISTCONSENSUS_SHAREDNEW_CHAIN_REQUIREDMember public keys allowed to emit notifications
yano.app-chain.machines.evidence-registry.storage-expiry-blocksLONG0CONSENSUS_SHAREDGOVERNED_ACTIVATIONEvidence storage effect expiry in app-chain blocks
yano.app-chain.machines.evidence-registry.storage-gateSTRINGapp-finalapp-final, l1-anchored, app_final, l1_anchoredCONSENSUS_SHAREDGOVERNED_ACTIVATIONFinality gate required before evidence storage execution

The properties above are the ones Yano X plugins own. Core app-chain configuration — chain id, members, threshold, sequencing, block cadence, storage, API authentication, anchoring, effects caps, retention — belongs to the Yano host and is documented in section 7 of the app-chain user guide.

Frequently needed host values:

PropertyNotes
yano.app-chain.chain-id1–128 valid UTF-8 bytes. One group of participants = one chain id.
yano.app-chain.state-machineThe selected machine or profile id. Consensus-shared.
yano.plugins.directoryWhere bundles are loaded from. Not yaci.plugins.directory.
yano.app-chain.effects.*Enablement and deterministic caps. All consensus-shared — see Effects.
yano.app-chain.anchor.*Anchor leader only — see Cardano anchoring.
yano.app-chain.message.enforce-sender-seqConsensus-visible when on; all members must agree.
Terminal window
# Validate a project's blueprint and its resolved configuration.
./yano.sh appchain config validate --mode project <project>
# Redacted effective configuration, and per-property explanation.
./yano.sh appchain config explain <project> --key <property>
# Compare a project against running nodes.
./yano.sh appchain drift <project> --peer <node-identity-url>

Edit only appchain.yaml; generated runtime files are derived output.

Five secret classes, five blast radii — keep them separate:

  1. member signing keys,
  2. business-actor keys,
  3. API keys,
  4. effect and connector credentials, and
  5. anchor wallet funds.

Never place a credential in consensus-shared configuration or in a replicated effect payload — both are visible to every member and provable to anyone holding a proof. Use node-local overlays or a secret provider, and refer to secrets by documented environment-variable or provider names only.

For private per-node connector configuration, the cluster launcher supports a strictly validated overlay directory (YANO_CLUSTER_NODE_CONFIG_DIR) with chmod 600 files at a fixed precedence ordinal — see the cluster launcher README.