Overview
Configuring autosign requires two main steps: setting up Privy for embedded wallet management and configuring autosign permissions in yourInterwovenKitProvider. This guide walks you through both processes.
Prerequisites
Before configuring autosign, ensure you have:- A Privy account and application ID
- InterwovenKit already integrated in your application
- Understanding of which transaction types you need to auto-sign
Setting Up Privy
Autosign requires Privy to manage embedded wallets. Privy provides secure key management and wallet creation for ghost wallets.1
Create a Privy Account
- Visit Privy’s website and create an account
- Create a new application in the Privy dashboard
- Copy your application ID from the dashboard
2
Install Privy Dependencies
Install the required Privy packages in your application. The app should already have InterwovenKit installed::
3
Configure Allowed Domains
Before configuring your application, set up allowed domains in the Privy Dashboard to ensure security and proper functionality:
- Access Privy Dashboard: Log in to your Privy account
- Navigate to Configuration: Go to Configuration > App settings
- Add Domains: In the Allowed Domains field, add:
- Your production domain (e.g.,
app.example.com) - Your development domain (e.g.,
localhost:3000) - Any staging domains you use
- Your production domain (e.g.,
4
Configure Privy Provider
Wrap your application with Basic Configuration Options:
PrivyProvider and configure it for embedded wallets:App.tsx
appId: Your Privy application ID (required)embeddedWallets.createOnLogin: Create embedded wallets for all users (required)
5
Integrate Privy Context with InterwovenKit
Pass Privy hooks to
InterwovenKitProvider using the privyContext prop:providers.tsx
Configuring Autosign Permissions
Once Privy is set up, configure autosign permissions using theenableAutoSign prop in InterwovenKitProvider. You can use either a simple boolean configuration or a detailed per-chain configuration.
Simple Configuration
For single-chain applications using the default chain, enable autosign with a boolean:- Detects your chain’s VM type
- Grants permission for the appropriate message type:
- MiniEVM:
/minievm.evm.v1.MsgCall - MiniWasm:
/cosmwasm.wasm.v1.MsgExecuteContract - MiniMove:
/initia.move.v1.MsgExecute
- MiniEVM:
Per-Chain Permissions
For multi-chain applications or when you need custom message types, specify permissions per chain:enableAutoSign prop accepts an object where:
- Keys: Chain IDs (strings)
- Values: Arrays of message type URLs (strings)
- EVM Chains:
/minievm.evm.v1.MsgCall - Wasm Chains:
/cosmwasm.wasm.v1.MsgExecuteContract - Move Chains:
/initia.move.v1.MsgExecute - Bank Module:
/cosmos.bank.v1beta1.MsgSend - Staking:
/cosmos.staking.v1beta1.MsgDelegate