Skip to content

Latest commit

 

History

History
106 lines (74 loc) · 6.99 KB

PolicyRule.md

File metadata and controls

106 lines (74 loc) · 6.99 KB

PolicyRule

Policy rule which is enforced on transactions

Properties

Name Type Description Notes
operator String (deprecated - replaced by "operators") Defines users who can initiate the type of transaction to which the rule applies. options are * "*" - All users are allowed * Specific User id
operators PolicyRuleOperators [optional]
transactionType TransactionTypeEnum Defines the type of transaction to which the rule applies. * TRANSFER - Default. Transfers funds from one account to another * CONTRACT_CALL - Calls a smart contract, mainly for DeFi operations. * APPROVE - Allows a smart contract to withdraw from a designated wallet. * MINT - Perform a mint operation (increase supply) on a supported token * BURN - Perform a burn operation (reduce supply) on a supported token * SUPPLY - Use for DeFi to lend assets * REDEEM - Use for DeFi to get lending back * STAKE - Allows you to allocate and lock certain assets for earning staking rewards. * RAW - An off-chain message with no predefined format, use it to sign any message with your private key. * TYPED_MESSAGE - An off-chain message type that follows a predefined format, used to sign specific messages that are not actual transactions. [optional]
designatedSigner String (deprecated - replaced by "designatedSigners") Id representing the user who signs transactions that match a specific rule [optional]
designatedSigners PolicyRuleDesignatedSigners [optional]
type TypeEnum Policy rule type
action ActionEnum Defines what occurs when a transaction meets the rule's criteria * ALLOW - The transaction goes through and can be signed without requiring additional approvals * BLOCK - The transaction is automatically blocked * 2-TIER - Only these users or user groups can approve If any of them reject the transaction before the required approval threshold is met, the transaction doesn't go through The list of entities are set is "authorizationGroups" field
asset String Defines the type of asset being transacted, options are * "*" - All assets * Specific asset
srcType PolicySrcOrDestType (deprecated - replaced by "src") source account type [optional]
srcSubType PolicySrcOrDestSubType (deprecated - replaced by "src") source sub account type [optional]
srcId String (deprecated - replaced by "src") source account id [optional]
src PolicyRuleSrc [optional]
dstType PolicySrcOrDestType (deprecated - replaced by "dst") destination account type [optional]
dstSubType PolicySrcOrDestSubType (deprecated - replaced by "dst") destination sub account type [optional]
dstId String (deprecated - replaced by "dst") destination account id [optional]
dst PolicyRuleDst [optional]
dstAddressType DstAddressTypeEnum Defines whether the destination to which you are sending funds must be whitelisted, to allow one-time transfers to non-whitelisted external addresses, or both. By default, you can only transfer to an external address after it’s whitelisted. * WHITELISTED - Can only be sent to whitelisted addresses. * ONE_TIME - Can only be sent to non-whitelisted external addresses. * "*" - can be sent to whitelisted addresses or non-whitelisted external [optional]
amountCurrency AmountCurrencyEnum * USD - Limits the amount of any asset users can transfer based on the USD equivalent of the asset. * EUR - Limits the amount of any asset users can transfer based on the EURO equivalent of the asset. * NATIVE - Limits the amount of an asset a user can transfer when using a specific asset.
amountScope AmountScopeEnum * SINGLE_TX - limit applies to a single transaction * TIMEFRAME - limit applies to all transactions within the defined time period
amount PolicyRuleAmount
periodSec BigDecimal Time period in seconds applied by the amountScope field to accumulate transferred amounts in transactions that match the rule, until the total exceeds the value you specify under Minimum. When the specified amount is reached within that period, whether by one or many transactions, further transactions in that period either fail or require more approvals.
authorizers List<String> (deprecated - replaced by &quot;authorizationGroups&quot;) Allowed entities which can approves a transaction [optional]
authorizersCount BigDecimal (deprecated - replaced by &quot;authorizationGroups&quot;) Min amount of entities which are needed to approve a transaction [optional]
authorizationGroups PolicyRuleAuthorizationGroups [optional]
amountAggregation PolicyRuleAmountAggregation [optional]
rawMessageSigning PolicyRuleRawMessageSigning [optional]
applyForApprove Boolean Applying this rule over APPROVE type transactions (can only be enabled when rule's transaction type is TRANSFER) [optional]
applyForTypedMessage Boolean Applying this rule over TYPED_MESSAGE type transactions (can only be enabled when rule's transaction type is CONTRACT_CALL) [optional]
externalDescriptor String A unique id identifying the rule [optional]

Enum: TransactionTypeEnum

Name Value
TRANSFER "TRANSFER"
CONTRACT_CALL "CONTRACT_CALL"
APPROVE "APPROVE"
MINT "MINT"
BURN "BURN"
SUPPLY "SUPPLY"
REDEEM "REDEEM"
STAKE "STAKE"
RAW "RAW"
TYPED_MESSAGE "TYPED_MESSAGE"

Enum: TypeEnum

Name Value
TRANSFER "TRANSFER"

Enum: ActionEnum

Name Value
ALLOW "ALLOW"
BLOCK "BLOCK"
_2_TIER "2-TIER"

Enum: DstAddressTypeEnum

Name Value
WHITELISTED "WHITELISTED"
ONE_TIME "ONE_TIME"
STAR "*"

Enum: AmountCurrencyEnum

Name Value
USD "USD"
EUR "EUR"
NATIVE "NATIVE"

Enum: AmountScopeEnum

Name Value
SINGLE_TX "SINGLE_TX"
TIMEFRAME "TIMEFRAME"