Allow only known recipients
Use this when the wallet should only pay addresses you control or have vetted. The policy denies an ETH transfer on Base to any address outside the list.- Developer Portal
- JSON
- On your Development key, open Permissions, select the Guardrails tab, and select Add or New Guardrail.
- Enter a Guardrail Policy Name. In Networks, clear Ethereum (1), select Base (8453), and select Continue.
- Select Transfer ETH, then Add Condition. Keep Recipient address, choose is one of, and enter the addresses separated by commas.
- Select Review, then Save Draft, then Activate on the draft.
Test it on your Development key: sign a transfer to a listed address and one to an unlisted address. Only the second is denied.
Allow one function on one contract
Use this when the wallet should only ever call a single protocol function, such as a deposit. The policy denies a contract call on Base unless it callsdeposit on the listed contract.
- Developer Portal
- JSON
- On your Development key, open Permissions, select the Guardrails tab, and select Add or New Guardrail.
- Enter a Guardrail Policy Name. In Networks, clear Ethereum (1), select Base (8453), and select Continue.
- Select Call a contract. Enter the contract in Contract Address and
depositin Function Name. No condition is needed. - Select Review. The Review step warns that no conditions are set, but the contract and function still limit the rule, as the Normalized policy JSON shows. Select Save Draft, then Activate on the draft.
Test it on your Development key: sign a
deposit call on the listed contract, then a call to another function. Only the second is denied.Allow listed contracts and functions
Use this when the wallet works with a few contracts and calls Para cannot decode must not slip through. The Developer Portal forms cannot express it, so publish it as JSON.guardrail-contract-allowlist.json
listed-contracts-onlychecksrequest.target, the contract the transaction calls. Para reads it from every contract call, decoded or not, so a call to any unlisted contract is denied.listed-functions-onlychecks the function on calls Para can decode, and denies anything other thandepositorwithdraw.
Test it on your Development key: sign a call to a listed contract, a call to an unlisted contract, and a call to another function on a listed contract. Only the first signs.
call_contract action. ERC-20 transfers and approvals, NFT transfers, Safe transactions and deployments are separate actions, so this policy does not limit them. On Solana, Cosmos, Stellar or Sui, the form’s Execution target action pins the program or contract a transaction calls. A Solana transaction that creates the recipient’s associated token account and then sends one TransferChecked to it is a transfer_tokens request, so this policy does not limit it either.