Permissions Consent at Login
When policies are enabled, the Para portal shows a permissions consent screen after authentication. Users approve the requested scopes (e.g., “Message Signing”, “Transaction Sending”) before being redirected back to your app. This works automatically with the one-click login flow (openPopup / ASWebAuthenticationSession) — no extra code needed. The portal handles the consent UI internally.
Transaction Review Setup
If a signing operation requires additional user approval (e.g., the transaction doesn’t match any granted permission), the SDK needs to open a review URL. There are two ways to handle this:Option 1: Global Handler (Recommended)
Set a global handler once when you initialize Para. This covers all signing paths, including integration libraries like viem and ethers that don’t pass per-call callbacks.para.ts
expo-web-browser, react-native-inappbrowser, or a custom WebView.
Option 2: Per-Call Callback
PassonTransactionReviewUrl directly to signMessage or signTransaction for per-operation control:
How It Works
- Your app calls
signMessage()orsignTransaction() - The backend evaluates the operation against the user’s granted permissions
- If allowed, signing completes immediately and returns a signature
- If not allowed, the backend returns a
pendingTransactionIdand the SDK opens a review URL - The user approves or denies in the browser
- The SDK polls for the result and returns the signature (or throws on denial/timeout)
Error Handling
Handle denial and timeout errors from the signing flow:The default approval timeout is 5 minutes for transactions that require review.