build vertical · extending deployed contracts

Build extending deployed contracts with LUKSO LSPs on EVM

A Universal Profile is the canonical use case, but LSP17 is a general primitive. The base bytecode stays immutable; new selectors hit the fallback; the fallback looks up an extension contract registered in ERC-725Y data; the call is forwarded.

When this vertical fits

You’re shipping a contract that will need to grow — new asset receivers, new signature verifiers, new app-specific entry points — without surrendering a permanent upgrade key over the base bytecode. Or you’re extending a Universal Profile with custom behavior that should be registered per profile, not coded into the account.

The minimum stack

  • LSP17 on the base contract (the fallback router)
  • Extension contracts — one per selector you want to add
  • LSP14 for safer ownership rotation of whoever can register extensions
  • LSP6 when the registrant is a controller of a Universal Profile (the permission to write the registration key)

Reading list.

A curated path — problem → standard → migration.

  1. [ 01 ] problem Deployed contracts can't grow without a key holder
  2. [ 02 ] LSP·17 Contract Extension
  3. [ 03 ] LSP·14 Ownable 2-Step
  4. [ 04 ] compare ERC-2535 Diamonds vs LSP17

Continue at docs.lukso.tech.