Ledger Service Configuration
Ledger service configuration lets administrators define the behavior, constraints, and validations applied to transactions and wallets at the service level. These settings are not specific to any individual product, they act as global enforcement rules applied uniformly across every product built on this ledger service instance.
The rules are modular. Each one can be toggled on or off independently, and where the rule supports it, its parameters can be customized before the configuration is saved.
Accessing the Ledger Service Configuration
Log in to Console.
Navigate to Product configuration → Services.
Select the ledger service (
cac-ledger-svc), then the version you want to review or edit.
This opens a structured view of rule groups, each representing a different class of logic applied to transactions, wallets, or balances. As with other configuration surfaces on the platform, changes are made against a version — review the version's status before editing, since an active version may already be in effect for every product using this service.
Understanding Rulebooks
Each rule is defined by a small, consistent set of fields:
Rulebook name
The rulebook the rule belongs to. Every predefined rule observed uses BUILT-IN.
Trigger
The event that activates the rule — typically Instruction, or Wallet created for rules that fire at wallet-creation time rather than on a transaction.
Script language
The underlying implementation: INTRINSIC (platform-native logic) or JS (JavaScript-based, used for more advanced rules).
Script source
An internal, encoded reference to the rule's actual implementation. Not human-readable and not intended to be edited directly.
Enabled
Whether the rule is currently active.
Parameters
Editable fields that fine-tune the rule's behavior, where the rule supports them.
Rulebooks themselves are not edited directly from this interface — a rule's logic is fixed; what's configurable per rule is whether it's enabled and, where applicable, its parameters.
Categories of Rules
The configuration interface organizes rules into logical groups, each addressing a different operational or compliance objective.
Wallet Balance Limit Rules
Constraints on how much value a wallet or account can hold, or must maintain.
Minimum wallet balance limit
Prevents a wallet's available balance from falling negative
—
Maximum wallet balance limit
Prevents a wallet's available balance from exceeding a specified value
Balance limit
Minimum wallet balance limit (advanced)
Same purpose as the basic version, with additional logic covering movement states, wallet types, and fee handling
Minimum threshold
Maximum account balance limit
Prevents an account's balance from exceeding a threshold defined by account type and currency
— (scoped via script basis rather than a simple parameter)
Wallet Status Enforcement Rules
Control behavior based on a wallet's current lifecycle status, preventing operations against wallets that aren't in a valid state.
Reject on pending wallet
PENDING
Either wallet in the transaction
Reject on suspended wallet
SUSPENDED
Either wallet
Reject on suspended in wallet
SUSPENDED_IN
Target wallet only
Reject on suspended out wallet
SUSPENDED_OUT
Source wallet only
Reject on terminated wallet
TERMINATED
Either wallet
Reject on closed wallet
CLOSED
Either wallet
Every rule in this group includes the same exception: it blocks the transaction unless an explicit override is present.
Wallet Restriction Rules
A related but distinct group, governing wallets flagged with a restriction type rather than a lifecycle status.
Reject on block all wallet
BLOCK_ALL
Both incoming and outgoing
Reject on block incoming wallet
BLOCK_ALL or BLOCK_INCOMING
Incoming only
Reject on block outgoing wallet
BLOCK_ALL or BLOCK_OUTGOING
Outgoing only
Currency Rules
Ensure transactions align with wallet-defined currencies, or restrict which currencies a wallet can be created in.
Currency match check
Blocks a transaction when the source and target wallet currencies don't match
Wallet currency restriction
Restricts wallet creation to a defined set of currencies
The currency match check is generally treated as mandatory in multi-currency environments, to avoid cross-currency mismatches. Wallet currency restriction is used to enforce a product-level currency policy at the point a wallet is created — for example, restricting new wallets to EUR, GBP, or USD only.
Data and Control Rules
Rules aimed at observability and extensibility rather than blocking behavior.
Echo movement data
Echoes key movement attributes — group ID, payment ID, execution ID, and command — commonly used for audit or debugging pipelines
Using the Enablement Toggles
Each rule is independently toggleable. Enabling a rule includes its logic in the ledger's runtime behavior; disabling it excludes that rule entirely. Because these rules live at the service level, changes apply across every product built on this service version — not to a single product in isolation.
Not all rules are meant to be used together. Enabling overlapping rules — for example, more than one balance-limit rule with conflicting thresholds — can lead to redundant enforcement or unintended failures. Review the full set of enabled rules together, not just the one being changed.
Saving
After rules are configured:
Review every toggled rule and its parameter values.
Click Save to persist the configuration to this version.
Because this is a versioned configuration, changes can be reviewed and tested against a specific version before it becomes the one every product actually relies on — the same controlled-rollout pattern used elsewhere in product configuration.
Last updated

