Utila’s Transaction Policy is a flexible, rule-based engine that governs outbound transactions across your workspace wallets. It gives your organization complete control over how transactions are authorized, who can initiate or approve them, and under what conditions.
How the transaction policy works
Every transaction initiated from a Utila wallet is evaluated against your defined set of policy rules. These rules are applied in order of priority, from top to bottom. The first rule that matches a transaction is the one that determines its outcome. For instance, if you configure a rule based on transaction thresholds, such as transfers exceeding a specific amount (e.g., $500), this rule is triggered only if the transaction exceeds the set amount. Transactions below this amount remain unaffected by the rule.
First-match principle
Utila uses a first-match principle when evaluating policy rules:
Rules are listed in a specific order (top = highest priority).
For every transaction, the policy engine checks the rules from top to bottom.
The first rule that matches all the conditions is applied. However, rule conflicts can arise when a lower-priority rule unintentionally overrides a higher-priority rule, leading to unexpected outcomes. Verify rule priorities and conditions to avoid such conflicts.
The evaluation of each transaction is done against an ordered set of policies. Each rule contains a matching criteria and followed action. For example, a rule could specify that only token transfers initiated by certain users or transactions below specific thresholds are allowed.
The criteria can contains details such as:
What type of transaction is this? Is it a token transfer? DeFi operation?
Who initiated the transaction?
What is the transaction amount, and how does that compare to funds recently spent?
What blockchain and assets are involved in this transaction?
It’s important to carefully order your rules. A more generic rule placed above a specific one may unintentionally override it.
Best practices for configuring transaction rules
Define clear policy purposes and conditions.
Regularly review and update policies to prevent misconfigurations.
Strategically group related wallets to streamline permissions.
Assign higher priority levels to critical policies.
Troubleshooting
Verify rule thresholds: Check if policy thresholds align with your objectives.
Resolve priority conflicts: Ensure rule priorities are set correctly.
Check wallet group memberships: Validate wallet configurations to prevent blocked transfers.
Test transactions: Conduct test runs to confirm effective rule application.
Common scenarios and potential issues
Threshold configuration:
Policies relying on thresholds will not trigger unless the transaction meets the conditions. For example, a $500 threshold rule won't apply to a $400 transaction.
Priority and policy conflicts:
Misconfigured priorities can lead to unintended allowance or denial of transactions. For instance, a general rule with higher priority might override specific permissions.
Wallet group restrictions:
Transactions from exchange wallets may be blocked unless receiving custody wallets belong to authorized groups. For example, a rule allowing any token transfer might override a specific rule restricting transfers above $1,000 unless ordered carefully. Regularly check the order of your rules to ensure the intended hierarchy is preserved.