Skip to main content

Policy

caution

The features on this page refer to the old policy version, which will be phased out soon. For more flexible configurations and enhanced features, we recommend using the new advanced policies.

Learn more about new policies ➔

Policies govern how transactions are submitted to approval nodes. Each policy consists two parts:

  • Triggering Condition: A collection of rules based on multiple parameters of a transaction that correspond to a specific type of transaction.
  • Approval Process: A process for approving a transaction that matches trigger conditions.

Safeheron has two types of transaction policies: Basic Policy and Advanced Policies, where the Advanced Policies includes transfer policy, MPC Sign policy, and Web3 Sign policy.

The policies supported by various types of transactions are listed in the table below:

PolicyTransfer Tasks (Asset Wallet)Web3 Sign Tasks (Web3 Wallet)MPC Sign Tasks(Asset Wallet)
Basic PolicySupportedSupportedNot Supported
Transfer PolicySupportedNot SupportedNot Supported
MPC Sign PolicyNot SupportedNot SupportedSupported
Web3 Sign PolicyNot SupportedSupportedNot Supported

Basic policy can be viewed in the Safeheron Mobile App, while advanced policies can be viewed in the Safeheron Web Console.

tip

At this time, advanced policies cannot be configured independently. Click here to learn how to configure advanced policies.

Approval Process

Before describing the different policy models, let's first cover the Approval Process of each policy. The triggering conditions are different for each policy model, but the approval processes are basically the same.The approval process is designed to accommodate various business settings of our clients while also providing flexibility and security for team collaboration.

The approval process currently includes up to 3 approval nodes, with each approval node having two components.

  • Approver (API Co-Signer included)
  • Approval Threshold

Each approval node has the ability to configure approvers and approval thresholds. For example, if Approval Node 1 requires approval from 2 out of 3 members (A, B, and C), the approval node configuration would be as follows:

  • Approval Node 1
    • Approvers: A, B, C
    • Approval Threshold: 2/3

If a business setting requires an approval sequence, multiple approval nodes can be utilized. For instance, member A approves first, followed by members B and C. The approval node would then be configured as follows:

  • Approval Node 1
    • Approver: A
    • Approval Threshold: 1/1
  • Approval Node 2
    • Approver: B, C
    • Approval Threshold: 1/2

An MPC Sign will be executed for the transaction once the final approval node of the approval process has been completed. Note that the approval process employs a one-vote veto system, i. e., if one member of any approval node rejects a request, the entire approval process is terminated..

Basic Policy

When you create a team for the first time using the Safeheron Mobile App, default basic policy is automatically configured for you. The admin of the team can view and modify the basic policy, allowing you to configure the appropriate approval process based on the needs of your organization.

The basic policy allows team members with Create Transactions permission to initiate a transfer transaction or a Web3 Sign task, but it does not support inputting custom parameters such as initiator, triggering conditions, source wallet, and so on.

Simply put, the triggering condition of the basic policy is not customizable and is the same for all transfer tasks and Web3 Sign tasks in the team. The approval process can be configured by the team administrator in the Safeheron mobile app.

Transfer Policy

If a basic policy does not meet the needs of your business, you can use an advanced policy.

You can improve risk management practices of your business by setting up multiple transfer policies. For example, you can establish conditions that meet the following criteria:

  • Wallet 1: Sending BTC requires approval from either Member A or Member B, while sending ETH requires approval from both Members A and B.
  • Wallet 2: Transactions with values less than $1,000,000 USD requires approval from either Member A or Member B, while transactions with values exceeding $1,000,000 USD requires approval from both Members A and B.
  • Wallet 3: Transactions with values less than $1,000,000 USD are automatically approved by API Co-Signer 1, while transactions with values exceeding $1,000,000 USD requires approval from both Members A and B.
  • Wallet 4: Only Member C is permitted to initiate transfer transactions. The destination address must be one that is on the whitelist. Any transfer transaction requires the approval of either member A or member B.

The approval process conditions are configured in the same way as Transfer Policies. The triggering conditions encompass multiple dimensions, which can be combined to fit your business setting.

DimensionDescription
InitiatorLimit transaction initiators. An initiator can be any team member with the permission to Create Transactions or an API Key. Define transaction initiators through the use of the following options:
1. Any member with the permission
2. Designate one or more members with the permission
FromDefine wallets to be used for transfers using the following two options:
1. Any, which means transferring assets from any asset wallet
2. Designate 1 or more asset wallets
ToDefine the destination address for any transfer through any of the following options:
1. Any, which means transferring assets to any destination address
2. Any asset wallet in your team
3. Designate one or more asset wallets in your team
4. Any whitelisted address
5. Designate one or more whitelisted addresses
6. An unknown address
ValueConvert the amount transferred into U. S. dollars based on the current exchange rate, and set a transfer limit using the following options:
1. Transfer value is greater than 'x' USD.
2. Transfer value is less than 'x' USD; Number of transfers within 24 hours is less than 'y' times.
3. Transfer value is less than 'x' USD; Cumulative assets transferred within 24 hours are less than 'y' USD.
AmountLimit the number of transfers for a specified currency through the use of the following options:
1. Transfer amount is greater than 'x' value.
2. Transfer amount is less than 'x' value; Number of transfers within 24 hours is less than 'y' times.
PriorityDefine the priority of policy matching. A larger value indicates a higher priority. When policies conflict, the policy with a larger value takes precedence.
Approval ProcessDefine the action for duplicate transactions through the following options:
1. Reject
2. Enter a set approval process

Only 1 selection can be made between value dimension and quantity dimension for each of the above parameters.

Once a transfer policy is set, a transfer transaction is prioritized using the advanced policy. If the advanced policy does not meet the transaction's triggering conditions but does meet the basic policy's triggering conditions, the transaction will then proceed using the basic policy approval process.

MPC Sign Policy

The approval process of the MPC Sign policy is the same as described above. The triggering conditions encompass multiple dimensions, which can be combined to fit your business setting.

DimensionDescription
InitiatorSpecify the API Key for initiating transactions using the following options:
1. Any authorized API keys
2. Assign one or more authorized API Keys
FromDefine wallets to be used for transfers using the following two options:
1. Any, which means transferring assets from any asset wallet
2. Designate 1 or more asset wallets
PriorityDefine the priority of policy matching. A larger value indicates a higher priority. When policies conflict, the policy with a larger value takes precedence.
Approval ProcessDefine the action for duplicate signature tasks through the following options:
1. Reject
2. Enter a set approval process

Web3 Sign Policy

When the Basic Policy cannot meet the approval requirements for Web3 Sign tasks, such as using a Web3 wallet for token transfers, token approval, contract method calls, NFT transfers, NFT authorization, and other business scenarios involving interactions with smart contracts, it is necessary to strictly limit which contracts the Web3 wallet can interact with. In this case, the Web3 Sign Policy can be used to achieve flexible and secure approval control.

For other non-smart contract interaction scenarios with Web3 wallets, such as using methods like personal_sign, eth_signTypedData (v1 to v4), and eth_sign, approval control is currently only supported through the basic policy.

The approval process for the Web3 Sign Policy is consistent with the description above. The triggering conditions encompass multiple dimensions, which can be combined to fit your business setting.

DimensionDescription
InitiatorLimit transaction initiators. An initiator can be any team member with the permission to Create Transactions or an API Key. Define transaction initiators through the use of the following options:
1. Any member with the permission or API Key
2. Designate one or more members with the permission or API Keys
FromDefine Web3 wallets to be used for transfers using the following two options:
1. Any, which means transferring assets from any Web3 wallet
2. Designate 1 or more Web3 wallets
ToLimit smart contract addresses, and the maximum is 50 addresses per policy.
PriorityDefine the priority of policy matching. A larger value indicates a higher priority. When policies conflict, the policy with a larger value takes precedence.
Approval ProcessDefine the action for duplicate signature tasks through the following options:
1. Reject
2. Enter a set approval process

Configure Advanced Policies

If you need to add an advanced policy, please contact Safeheron's Support team. The Support team will assist you in configuring an advanced policy based on the specifics of your business.

You can use the following template to send an email to support@safeheron.com.

Transaction Policy Email Template

Subject

Transfer Policy Request

Content

Team ID: <Your Team ID (You can find your Team ID by navigating to: App -> Me -> Team Name) >

Description of Business Setting: <Describe your business settings where you use advanced policies, so that Safeheron's support team can verify whether the policy settings are reasonable and safe>

Examples of policies requested to add:

InitiatorFromToValue/Amount LimitPriorityApproval Node 1Approval Node 2Approval Node 3
Any member with permissionAnyAny whitelisted addressTransfer value < $10,000 USD; Cumulative assets transferred within 24 hours are less than $200,000 USD100Node name: Admin Approval
Approvers: A, B, C
Approval Threshold: 2/3
NoneNone
Member AWallet 1Whitelisted address A, Whitelisted address BTransfer ETH < 100; Number of transfers within 24 hours is less than 50 times200Node name: Finance Approval
Approvers: A, B, C
Approval Threshold: 2/3
Node name: Risk Control Approval
Approvers: A, B
Approval Threshold: 1/2
None
Member AWallet 2AnyTransfer BTC > 100300Node name: Executive Approval
Approvers: B, C
Approval Threshold: 2/2
NoneNone
........................

MPC Sign Policy Email Template

Subject

MPC Sign Policy Request

Content

Team ID: <Your Team ID (You can find your Team ID by navigating to: App -> Me -> Team Name) >

Description of Business Setting: <Describe your business settings where you use advanced policies, so that Safeheron's support team can verify whether the policy settings are reasonable and safe>

Examples of policies requested to add:

InitiatorSource WalletPriorityApproval Node 1Approval Node 2Approval Node 3
API Key 1Wallet 1, Wallet 2100Node name: Auto Approval
Approvers: API Co-Signer
Approval Threshold: 1/1
NoneNone
API Key 2Wallet 3200Node name: Admin Approval
Approvers: A, B
Approval Threshold: 1/2
NoneNone
..................

Web3 Sign Policy Email Template

Subject

Web3 Sign Policy Request

Content

Team ID: <Your Team ID (You can find your Team ID by navigating to: App -> Me -> Team Name) >

Description of Business Setting: <Describe your business settings where you use advanced policies, so that Safeheron's support team can verify whether the policy settings are reasonable and safe>

Examples of policies requested to add:

InitiatorFromTo (Smart Contract Address)PriorityApproval Node 1Approval Node 2Approval Node 3
API Key 1Any0x694b...4008
0x795e...F7A6
0x3bF6...3038
100Node name: Auto Approval
Approvers: API Co-Signer
Approval Threshold: 1/1
NoneNone
Member AWeb3 Wallet 1Any200Node name: Finance Approval
Approvers: B, C
Approval Threshold: 1/2
Node name: Risk Control Approval
Approvers: E, F
Approval Threshold: 1/2
None
.....................