> ## Documentation Index
> Fetch the complete documentation index at: https://manuals.cobo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction to transaction policies

> Learn about off-chain and on-chain transaction policies in Cobo Portal, automating transaction handling.

## Understanding transaction policies

Each organization manages a list of off-chain and/or on-chain transaction policies. When a transaction is initiated, it undergoes a matching process against the ordered policies in the list. If a matching policy is identified, the corresponding approval action will be automatically executed.

Transaction policies in Cobo Portal come in two main types:

* On-chain transaction policies
* Off-chain transaction policies

### On-chain transaction policies

On-chain transaction policies are governed by smart contracts on the blockchain networks and are specifically designed for Smart Contract Wallets. These policies provide:

* Delegate management for single-signature operations
* Token approval controls
* Token transfer controls
* Custom contract call controls

Once created, modifications to on-chain transaction policies require multi-signature confirmation from Safe{Wallet} signers.

### Off-chain transaction policies

Off-chain transaction policies are managed by Cobo Portal's backend system. They offer:

* **Flexibility**: Easy to modify and update as needed
* **Compatibility**: Works with multiple wallet types
* **Immediate effect**: Changes take effect instantly without blockchain transactions

Off-chain transaction policies include the following types:

| Policy Type      | Main Purpose                           | Key Controls                                                                                                  |
| ---------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| General Policy   | Applicable to all transaction types    | • Condition is fixed to **Any Transaction**                                                                   |
| Token transfer   | Control token movements and limits     | • Initiators<br />• Amounts<br />• Receiving addresses<br />• Token types                                     |
| Contract call    | Manage smart contract interactions     | • Initiators<br />• Token approvals<br />• Token transfers<br />• Contract addresses, methods, and parameters |
| Message signing  | Control transaction signing            | • Initiators<br />• Message types<br />• Safe{Wallet} message signing controls                                |
| Emergency policy | Immediate risk control for contingency | Enforcing auto rejection or auto quorum for all transactions                                                  |

To simplify the initial setup process, Cobo Portal pre-configures a set of [default transaction policies](/en/portal/risk-controls/default-transaction-policies) for new organizations, designed to provide foundational security. You can adjust these default policies according to your organization's specific needs.

### Smart Contract Wallet policy guide

Smart Contract Wallets can use both on-chain and off-chain transaction policies. Here's when to use each:

**Use on-chain transaction policies when:**

* Setting up delegate permissions that need to be enforced at the smart contract level
* Implementing permanent or long-term rules that shouldn't be easily changed
* Configuring rules that must be executed on-chain for security
* Changes require multi-signature approval from Safe{Wallet} signers

**Use off-chain transaction policies when:**

* Need quick policy updates without requiring multi-sig approval
* Want additional control layers beyond on-chain rules
* Managing temporary or frequently changing rules
* Controlling specific transaction initiators or API access

For maximum security, you can combine both:

1. Use on-chain transaction policies for core security rules
2. Add off-chain transaction policies for flexible, day-to-day control

## Policy matching and precedence

When a transaction is initiated, Cobo Portal evaluates it against your ordered list of transaction policies to decide which approval action applies.

### How a policy is matched

A policy is matched when the transaction meets all of the policy's criteria. Depending on the policy type, these criteria can include:

* **Wallet scope**: The transaction must originate from a wallet included in the policy's applicable wallets.
* **Initiators**: The team member or API key that initiated the transaction.
* **Source and destination addresses**: The receiving address, or whether it is included in a specified address list.
* **Contract interaction**: For contract call policies, the contract address, method, and parameters.
* **Amount and spending limits**: The transaction amount, per-transaction limit, or accumulated amount within a time window.
* **Token types**: The tokens involved in the transaction.

### How precedence is applied

Policies are evaluated in priority order, from the top of the list downward. Once a transaction matches a policy, that policy's approval action is applied and no lower-priority policies are evaluated for that transaction.

### Why a transaction may not trigger an expected policy

If a transaction does not trigger the policy you expected, check the following:

* **Scope mismatch**: The wallet, initiator, address, token, or amount does not meet the policy's conditions, so the policy does not match.
* **A higher-priority policy matched first**: Another policy higher in the list already matched the transaction, so evaluation stopped before reaching the policy you expected.
* **A condition is not met**: A policy requires all of its conditions to be satisfied. If any single condition is not met, the policy does not match.

You can review and reorder policy priority on the Transaction Policies page. The matched policy determines the approval action and the reason recorded for the transaction.

## Accessing Transaction Policies

Transaction Policies is accessible directly from the left sidebar navigation in Cobo Portal. Click **Transaction Policies** in the left sidebar to open the Transaction Policies page.

### Page layout

The Transaction Policies page includes the following elements:

* **Two tabs**: **Transaction Policies** and **Address Lists**, allowing you to switch between managing policies and managing address lists.
* **Manage Emergency Policy** button: Quickly access the emergency policy settings.
* **Adjust Priorities** and **Create Policy** buttons: Reorder existing policies or create new ones.
* **Policy list table**: Displays all configured policies with the following columns:
  * **Priority**: The order in which policies are evaluated against transactions.
  * **Type**: The policy type (e.g., Token Transfer, Contract Call, Message Signing).
  * **Name**: The name assigned to the policy.
  * **Wallets**: The wallets the policy applies to.
  * **Conditions**: The conditions that trigger the policy.
  * **Action**: The approval action configured for the policy (e.g., Auto Approval, Auto Rejection, Approval Quorum).
  * **Status**: Whether the policy is active or inactive.
  * **Operations**: Available actions such as editing or deleting the policy.
* **Search**: Search for policies by policy name.
* **Filter**: Filter policies to narrow down the displayed list.

## Setting up transaction policies

<Note>Prerequisite: Please assign the [Operator](/en/portal/organization/roles-and-permissions) role to the designated team members who will set up transaction policies.</Note>

<Note>Transaction policies are an important security measure for your organization. It is recommended to strictly configure these policies, especially for large withdrawal scenarios, to avoid high-risk situations such as having no transaction policies, having transactions that are not covered by a transaction policy, automatically approving all transactions, or allowing the same role to both withdraw and approve transactions.</Note>

For detailed setup instructions, see:

* On-chain transaction policies:
  * [Create contract call policy](/en/portal/risk-controls/create-on-chain-policy)
* Off-chain transaction policies:
  * [Default transaction policies](/en/portal/risk-controls/default-transaction-policies)
  * [Set up general policy](/en/portal/risk-controls/off-chain-tx-set-general-policy)
  * [Manage general policy](/en/portal/risk-controls/off-chain-tx-manage-general-policy)
  * [Set up token transfer policy](/en/portal/risk-controls/off-chain-tx-set-transfer)
  * [Set up contract call policy](/en/portal/risk-controls/off-chain-tx-set-contract-call)
  * [Set up message signing policy](/en/portal/risk-controls/off-chain-tx-set-message-signing)
  * [Set up emergency policy](/en/portal/risk-controls/manage-emergency-policy)
