Welcome to the
LUKSO Developer Docs
General
General
Why are there new standards on LUKSO?
LUKSO introduced new blockchain standards to address issues with existing ERCs, such as token/NFT approval security, limited metadata, lack of interoperability (ERC677, ERC777 and ERC1155 use each different callback hook functions to notify on token transfer), and requiring users to acquire native token upfront to pay for transaction fess (gas). LSP standards include features like universalReceiver (LSP1) for notifications, flexible metadata (ERC725Y), secure permissions management (LSP6 Key Manager), and gasless transactions (LSP25 Execute Relay Call) for easier user onboarding.
Why is LUKSO a Layer 1 and not a Layer 2?
LUKSO was created as a Layer 1 to establish its own ecosystem, community, and applications, rather than building on Ethereum's congested standards. Being an EVM-based blockchain (same technology as Ethereum, unmodified), LUKSO supports any Ethereum tools, enabling developers to easily build and port applications between the two networks.
What are the advantages of the LUKSO LSP compared to the ERC Standards?
The LSP standards offer various advantages for various use cases. This includes storing various form of data on Universal Profiles (e.g: user settings from a dApp, list of received assets, list of creators of a digital asset, followers, etc), sending gas-less transactions, fine-grained permissions management. These allow to build user-centric web3 applications that offer a better experience to users.
How do LUKSO LSP and Ethereum ERC Standards differ?
Compared to the Ethereum ERC Standards, the LUKSO LSP Standards are (1) more secure, (2) more flexible and interoperable, (3) more developer friendly, (4) focused on creating user-centric applications with an improved user experience for getting started interacting with web3.
Universal Profiles
Universal Profiles
How does a profile differ from a wallet?
A Universal Profile is a smart account with all the features of a traditional wallet like Metamask, but more user-friendly and designed for non-technical users. It eliminates the need for managing private keys, paying gas, or verifying opaque transactions before confirming them. It also offers advanced features like fine-grained permissions for multi-device control.
How do I connect my dApp to a profile?
Like any other web3 wallet using methods like EIP-6963, injected provider or multi-providers). Check our tutorial for details on how to connect a UP to a dApp or using Sign-in with Ethereum.
What kind of data can be stored on my profile?
A Universal Profile can store unlimited data of any type, such as assets, profile details (biography, profile and cover picture, website and social links), followers, permissions, dApp settings, favorite music, communities and more. You can customize it to store and retrieve anything you could potentially imagine.
How do I read the data from a profile?
You can fetch data from a Universal Profile using (a) the getData function on the Universal Profile smart contract and decode the value, or (b) the easier-to-use libraries like erc725.js or lsp-utils.js which will do all the decoding for you.
How do I change permissions on the Universal Profile?
Either via (a) the UP Browser extension, (b) a dApp with this functionality, or (c) programmatically via a script (see our guide below).
How do I send a gasless transaction?
If you created your UP via universaleverything.io, the UP in your browser extension automatically allows you to send gas-free transactions. Otherwise, see our relayer API documentation to learn how to send transactions to our relayer who will dispatch the transaction and pay for the gas.
How can I deploy a Universal Profile?
3 ways: (1) via the UP Browser Extension (easy 🌶️), (2) via the relayer API (intermediate 🌶️🌶️), (3) or via the LSP23 Universal Factory (advanced 🌶️🌶️🌶️).
Tokens & NFTs
Tokens & NFTs
How do I transfer a token or NFT?
Users can transfer tokens or NFTs using a dApp like universaleverything.io. For developers, call the `transfer` function on the token or NFT contract. Note that since LUKSO is fully EVM-compatible, transferring tokens / NFTs can be done by any wallet connected to the LUKSO network, by interacting with the token contract. It does not necessarily need to be done by a Universal Profile.
How do I read metadata from a Token or NFT?
Either by (1) using the `getData(bytes32)` function with the `LSP4Metadata` data key and decode the result, or (2) use the erc725.js for convenience (will do the decoding for you).
How can I edit the metadata of my token after deployment?
By calling the `setData(bytes32,bytes)` with `LSP4Metadata` as the data key and the JSON metadata as the hex-encoded value.
How does LSP7 token standard differ from ERC20?
LSP7 (1) supports ERC725Y storage for unlimited metadata, (2) notifies sender and recipient on token transfers, (3) uses a `force` parameter for more secure transfers, and (4) has a `transfer(...)` function signature similar to LSP8 which makes it easier for developer to reason (instead of learning multiple transfer function based on different standards, like ERC20, 721, 1155, etc...).
How does LSP8 token standard differ from ERC721?
LSP8 (1) supports ERC725Y storage for unlimited metadata, (2) notifies sender and recipient on NFT transfers, (3) uses a `force` parameter for more secure transfers, and (4) has a `transfer(...)` function signature similar to LSP7 which makes it easier for developer to reason (instead of learning multiple transfer function based on different standards, like ERC20, 721, 1155, etc...)
What are the benefits of the LSP7 and LSP8 token standards over the ERC20 / ERC721 standards?
LSP7 and LSP8 offer improved features such as (1) unlimited metadata to store any type of information in the token contract, (2) transfer notifications via callback hooks, and (3) a simpler interface for developers. It also includes additional benefits over ERC20/721. See our dedicated page.
Network & Validators
Network & Validators
What is the RPC endpoint for LUKSO
There are multiple RPC endpoints available to connect to the LUKSO network. See our dedicated page for more infos.
How to run a LUKSO node?
Visit our dedicated page to learn how to run your own node.
How to run a validator on LUKSO?
Visit our dedicated page to learn how to become a validator on LUKSO and start earning staking rewards.
How to update your node for the Dencun hardfork?
Visit our dedicated page in the docs to learn how to update your node for the Dencun hardfork.
Wallets & Controller dApps
Wallets & Controller dApps
How do I add LUKSO to my wallet like MetaMask
Visit our Networks page and add one of the available LUKSO RPC endpoint, chain ID (42 for Mainnet, 4201 for Testnet) and the Blockscout explorer in your wallet. We also have a one click button to add the network to your wallet.
How do I install the Universal Profile Browser Extension
Visit our page in the docs to download the 🆙 Browser.
Developer Quickstart
Quickest guides to get started building on LUKSO with the LSPs and Universal Profiles.
What is LUKSO?
An EVM-based Blockchain built for social, culture and creators.
Providing the foundation to unify our digital lives.
What are the LUKSO LSP Standards?
A holistic set of new blockchain standards that are EVM compatible.
To create protocols and applications social and user-centric.
Add LUKSO Network to your wallet or dApp
One-click connect to LUKSO Mainnet or Testnet (see the available RPC endpoints).
Block Explorer
Browse transactions and interact with contracts on Blockscout.
Running a Node
Run your own node to make the LUKSO Network secure and decentralized.
Become a Validator
Run your own validator node and start earning rewards. DappNode available!
Relayer API
Create Universal Profiles easily and get users to benefit from gas less transactions.
Smart Contracts Packages
The smart contract implementation of the LSP standards in Solidity.
erc725.js
Set and retrieve data easily in Universal Profile and Digital Assets.
lsp-utils.js
Easy to use helper functions to interact with smart contracts powered by the LSPs.
eip191-signer.js
Sign data easily to submit gas-less transactions via execute relay calls.