Skip to content

Installing Permissions During Account Creation

You can install permission plugins during account creation using initConfig. This approach allows you to set up permissions right when the account is deployed.

Example

Here's how to install a permission plugin during account creation:

import { 
    toInitConfig
} from "@zerodev/permissions"
import { privateKeyToAccount, generatePrivateKey } from "viem/accounts"
 
// Create a permission plugin
const permissionPlugin = await toPermissionValidator(publicClient, {
    entryPoint,
    signer: ecdsaModularSigner,
    kernelVersion,
    policies: [toSudoPolicy({})]
})
 
// Create the account with the permission plugin in initConfig using the `toInitConfig` utility
const account = await createKernelAccount(publicClient, {
    entryPoint,
    plugins: {
        sudo: ecdsaValidatorPlugin
    },
    kernelVersion,
    initConfig: await toInitConfig(permissionPlugin)
})

Starter Template

An example of a starter template for installing permissions during account creation is available here.