Why signatures get flagged
The Dfns Policy Engine evaluates all signing requests. Some policy rules—likeTransactionAmountLimit or TransactionRecipientWhitelist—need to extract values (amounts, recipients) from the request.
Dfns does not decode serialized transactions. When you send encoded transaction data, the policy engine cannot extract these values. To stay on the safe side, it flags the transaction—triggering a Block or RequestApproval action depending on your policy configuration.
This “fail closed” behavior is a security best practice: when values can’t be determined, the policy triggers rather than letting a potentially risky transaction through unevaluated.
Solution: Use JSON payloads
When possible, use JSON payloads with separate fields instead of serialized transaction data. This allows the policy engine to evaluate values like theto address.
When JSON payloads aren’t possible
Some signature types—like EIP-712 typed data or complex multi-chain formats—don’t have a JSON equivalent with extractable fields. In these cases, use wallet filters to scope your policies.Using wallet tags
Tag wallets based on their policy requirements:policy:strict tag won’t trigger this policy.
Using wallet IDs
For simpler setups, filter by specific wallet IDs:Security considerations
When excluding wallets from policies:- Fund with limited amounts - Only keep what’s needed for operations
- Use separate wallets - Don’t mix automated signing wallets with treasury
- Monitor with webhooks - Track signing activity
- Audit regularly - Review which wallets are excluded from policies
