EIPs
EIP-2255 — Wallet permissions
A permission system layered on top of EIP-1193. A dapp asks the wallet for a capability (typically eth_accounts); the wallet returns a Permission object recording what was granted and any caveats.
import {
wallet_request_permissions,
wallet_get_permissions,
} from "@ethernauta/eip/2255";
const permissions = await wallet_request_permissions({
eth_accounts: {},
})(signer({ chain_id: eip155_1.chain_id }));
const current = await wallet_get_permissions()(
signer({ chain_id: eip155_1.chain_id }),
); Surface
| Export | Type | Purpose |
|---|---|---|
wallet_request_permissions | Signable<Permission[]> | Open the permission prompt. |
wallet_get_permissions | Signable<Permission[]> | Read current permissions. |
Permission, Caveat, RequestedPermissions | types | Inferred from schemas. |
permissionSchema, caveatSchema, requestedPermissionSchema | Valibot schemas | Validate wire shapes. |
Where it’s used
eth_requestAccounts(EIP-1102) creates aneth_accountspermission as a side effect.- A dapp can revoke its own access by calling
wallet_requestPermissionswith restricting caveats. - A wallet UI typically exposes “manage connections” — that’s just reading + mutating the permission set.
See also
- EIP-1102 — account exposure (the most common permission).
- Wallet → permission view.