Skip to content
docs

PermissionStore

Defined in: permissions.ts:30

new PermissionStore(storage): PermissionStore

Defined in: permissions.ts:37

JsonStorage<PermissionsState>

PermissionStore

connect(origin, accounts, chain): Promise<OriginPermission>

Defined in: permissions.ts:69

string

string[]

string

Promise<OriginPermission>


connectChain(origin, key, accounts, defaultChain): Promise<OriginPermission>

Defined in: permissions.ts:80

Connect another chain’s accounts to the same origin (one “connected sites” list).

string

ChainAccountsKey

string[]

string

Promise<OriginPermission>


disconnect(origin): Promise<void>

Defined in: permissions.ts:132

string

Promise<void>


disconnectChain(origin, key): Promise<void>

Defined in: permissions.ts:91

Drop one chain’s accounts; the origin stays connected while any chain remains. A no-op (no write) when there is nothing to drop.

string

ChainAccountsKey | "accounts"

Promise<void>


get(origin): Promise<OriginPermission | null>

Defined in: permissions.ts:61

string

Promise<OriginPermission | null>


list(): Promise<OriginPermission[]>

Defined in: permissions.ts:65

Promise<OriginPermission[]>


onChange(listener): () => void

Defined in: permissions.ts:139

(origin, permission) => void

() => void


setAccountsEverywhere(accounts): Promise<OriginPermission[]>

Defined in: permissions.ts:119

The active EVM account changed: every origin holding an EVM grant now sees accounts (MetaMask behaviour). An origin connected only on another chain (accounts: [] — Solana/TON/Tron/BTC/NEAR providers, a WalletConnect session without eip155) is skipped: it never passed an EVM connect and must not learn the EVM address (scan F6/F8). Lock never writes [] here, so the skip cannot strip a real EVM grant.

string[]

Promise<OriginPermission[]>


setChain(origin, chain): Promise<OriginPermission | null>

Defined in: permissions.ts:103

string

string

Promise<OriginPermission | null>