Skip to main content

Build Smart Wallet UX on LUKSO

A smart wallet UX is a permission graph, not a connect button. LSP6 Key Manager is the standardized vocabulary for that graph β€” controllers, permissions, allowed calls, allowed data keys β€” and LSP0 is the account those controllers act on. Because every account speaks the same permission vocabulary, cross-wallet session portability is possible in principle, unlike ERC-4337's per-vendor validator SDKs that don't share a common permission shape.

The stack​

StandardRole
LSP0The account contract
LSP6Per-controller permissions: target, selector, data-key scoping
LSP11 Basic Social RecoveryGuardian-voting recovery (contract reference)
LSP20Inline call verification, when controllers call the account directly rather than through the Key Manager wrapper
ERC-1271Contract signature validation β€” Sign-In-with-Ethereum, off-chain order signing

When this vertical fits​

Anything where "the wallet has full account control" is the wrong default: session keys scoped to one app, controllers scoped to a single marketplace integration, recovery controllers a user never touches day-to-day, or multi-device flows where each device gets its own permission set instead of sharing one master key.

One permission vocabulary, every account

Because LSP6 permissions are a chain-level standard rather than a per-SDK convention, a session key granted by one LSP6-aware wallet means the same thing to every other LSP6-aware wallet or tool β€” no per-vendor integration required to understand what a given controller can do.

Related reading: Wallet permission scoping Β· Social recovery without a seed phrase Β· The EOA key-risk problem Β· EOA vs Universal Profile Β· Smart account permissions