Gasless onboarding.
Building gasless onboarding on LUKSO uses LSP25 `executeRelayCall(signature, nonce, validityTimestamps, payload)` as a native function on the Universal Profile. A controller signs the payload; a relayer submits it (mocked via github.com/lukso-network/tools-mock-relayer or self-hosted per LSP15's standardized relayer API). No parallel UserOperation mempool, no EntryPoint singleton, no paymaster contract with its own ETH deposit. LSP6 permissions gate what the signed payload can do; relayer economics are policy at the relayer layer, not on-chain contract state.
Gasless UX is a separation: the signer and the payer are different actors. LSP25 puts that separation on the account itself. A controller signs a payload, a relayer submits it and pays gas, the profile validates via LSP6 and executes.
When this vertical fits
You’re onboarding users who don’t already hold LYX. You want to sponsor the first N actions, or all actions for a given app session, or just the costly ones (recovery operations, expensive setData calls). You don’t want to run a bundler.
The minimum stack
- LSP25 on the account for
executeRelayCall - LSP6 to constrain what the signing controller may authorize
- LSP20 when controllers should call the account directly inline
- Nonce channels — use higher channels for parallel session streams instead of serializing through channel 0
Reading list.
A curated path — problem → standard → migration.
- [ 01 ] explainer Gasless transactions on Ethereum — the stack, the failure modes, the LUKSO answer
- [ 02 ] problem New users need gas before they can do anything
- [ 03 ] problem The ERC-4337 stack is a parallel mempool
- [ 04 ] LSP25 Execute Relay Call
- [ 05 ] LSP6 Key Manager
- [ 06 ] compare ERC-4337 vs the LSP account stack