Skip to main content
These templates let each user choose their own spending limits. Your policy sets the defaults, and every user can change them for their own wallet without a new policy version.
Para turns on personal limits per API key, so your beta and production keys are enabled separately. Until it does, validating or saving a policy with a parameter fails with permissions_v2_extension_unavailable.
Para does not bound the values users save. A user can set any amount, including one far above your default. Use these templates only where any limit the user picks is acceptable to you.

Let users set a daily ETH limit

Use this when users should decide how much ETH your app may send for them each day. The default is 0.05 ETH (50000000000000000 wei) per day on Base. The Developer Portal forms cannot express a parameter, so publish the template as JSON.
request-adjustable-daily-limit.json
The parameter turns the condition’s value into a default the user can change. Its label is the name users see next to the input.
Test it on your Development key: open the URL that getPolicyConsentUrl returns for a test user, set Daily ETH limit to 20000000000000000 (0.02 ETH), and approve. A 0.015 ETH transfer then signs without a prompt, and a second one opens a review.

Let users set USDC limits per transfer and per day

Use this when users should cap both single payments and the daily total. The defaults are 25 USDC per transfer (25000000) and 100 USDC per day (100000000) on Base.
request-adjustable-usdc-limits.json
The rule allows a USDC transfer only when it fits both limits. Each parameter has its own id, and users set each one separately.
Test it on Base Sepolia: set chainId to 84532 and change both USDC addresses to 0x036cbd53842c5426634e7929541ec2318f3dcf7e. On the consent screen, lower USDC per transfer to 1000000 (1 USDC), then check that a 2 USDC transfer opens a review.

What users see

The consent screen shows an input for each parameter, labelled with its label, with your default as the placeholder. Values the user enters there are saved with their consent. The inputs take base units, so 0.02 ETH is 20000000000000000. For amounts in ETH or USDC, build a settings screen in your app that converts the value and saves it with the SDK, as the adjustable parameters guide for your platform shows. After a user saves new values, they approve the policy again before it applies with those values.

Change a policy with personal limits

Users’ saved limits are tied to the policy version they saved them for. Plan changes with that in mind:
  • The Developer Portal forms cannot show parameters. When you select the policy’s networks to edit it, the Developer Portal opens it in the JSON editor only.
  • Your backend can read users’ limits but cannot change them.
A user who has saved limits must confirm them again after you publish a new version. Until they do, Para denies every signing request from their wallet on the policy’s networks, not only the requests its rules cover.

Publish your limits

Values users save belong to the environment where they save them. After Para applies the policy to production through a production review, production users start from your defaults.