Policies
Policies provide automated granular control over moving assets. They guard Accounts and are a vital risk management tool for Organisations. At their core, Policies are the rules that each transaction needs to adhere to, in order to be signed and broadcast to the chain.
Your Organisation is most fully protected if you utilise every policy template for every Account and chain. But while using all Policy types for all Accounts and chains provides the most granular control, it’s not required.
Policy types
Policy types can be structured to meet the requirements for each Account and chain.
| Name | Description |
|---|---|
| Allow-list for recipients of transfers | limits the ability to send transactions to only those addresses on the list |
| Deny-list for recipients of transfers | wallet addresses to which sending is blocked |
| Transaction amount limits, per asset | each limit must be adhered to for a transaction to be green-lit |
| Contract parameter restrictions | set the functions that cannot be called on a given smart contract |
| Denied proposer | reject all proposed transactions on an account from a specified signer |
How Policies Work
Every asset transfer or smart contract interaction managed through Salt is reviewed against every Policy on an Account before it can be broadcast to the chain.
If the draft transaction does not pass all policy checks, the Robo Guardians will not co-sign the transaction.
Policies allow for granular control. They can be configured per Account, and per chain in the Account. Co-signers can only transact within the limits set in the Policies. For example, on a given Account, a transfer limit can apply to ETH transactions on the Ethereum network and not MATIC on Polygon.
Policies apply:
- to individual Salt accounts
- at a network level (Ethereum, Polygon, Moonbeam, etc)
- to individual assets
- to smart contracts, including individual functions
- to individual cosigners (currently limited, more capabilities coming in future)
How Policies are Enforced
When a transaction is built using the Salt, it starts out as a draft.
When a signer submits a draft transaction for review, Salt reviews the transaction draft in the context of the Account’s active Policies.
✅ If the proposed transaction passes all Policies, Salt opens up a websocket room for cosigners to sign the transaction and the transaction is submitted to the relevant chain.
❌ If a Policy is in breach Salt will not allow the transaction to proceed. This breach will be recorded.