Package Exports
- @lukso/lsp-smart-contracts
- @lukso/lsp-smart-contracts/artifacts/Create2Factory.json
- @lukso/lsp-smart-contracts/artifacts/LSP0ERC725Account.json
- @lukso/lsp-smart-contracts/artifacts/LSP0ERC725AccountInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP11BasicSocialRecovery.json
- @lukso/lsp-smart-contracts/artifacts/LSP11BasicSocialRecoveryInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP16UniversalFactory.json
- @lukso/lsp-smart-contracts/artifacts/LSP1UniversalReceiverDelegateUP.json
- @lukso/lsp-smart-contracts/artifacts/LSP1UniversalReceiverDelegateVault.json
- @lukso/lsp-smart-contracts/artifacts/LSP4Compatibility.json
- @lukso/lsp-smart-contracts/artifacts/LSP4DigitalAssetMetadata.json
- @lukso/lsp-smart-contracts/artifacts/LSP4DigitalAssetMetadataInitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP6KeyManager.json
- @lukso/lsp-smart-contracts/artifacts/LSP6KeyManagerInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CappedSupply.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CappedSupplyInitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CompatibleERC20.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CompatibleERC20InitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CompatibleERC20Mintable.json
- @lukso/lsp-smart-contracts/artifacts/LSP7CompatibleERC20MintableInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP7DigitalAsset.json
- @lukso/lsp-smart-contracts/artifacts/LSP7DigitalAssetInitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP7Mintable.json
- @lukso/lsp-smart-contracts/artifacts/LSP7MintableInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CappedSupply.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CappedSupplyInitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CompatibleERC721.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CompatibleERC721InitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CompatibleERC721Mintable.json
- @lukso/lsp-smart-contracts/artifacts/LSP8CompatibleERC721MintableInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP8IdentifiableDigitalAsset.json
- @lukso/lsp-smart-contracts/artifacts/LSP8IdentifiableDigitalAssetInitAbstract.json
- @lukso/lsp-smart-contracts/artifacts/LSP8Mintable.json
- @lukso/lsp-smart-contracts/artifacts/LSP8MintableInit.json
- @lukso/lsp-smart-contracts/artifacts/LSP9Vault.json
- @lukso/lsp-smart-contracts/artifacts/LSP9VaultInit.json
- @lukso/lsp-smart-contracts/artifacts/UniversalProfile.json
- @lukso/lsp-smart-contracts/artifacts/UniversalProfileInit.json
- @lukso/lsp-smart-contracts/artifacts/UniversalReceiverAddressStore.json
- @lukso/lsp-smart-contracts/constants
- @lukso/lsp-smart-contracts/constants.js
Readme
LSP Smart Contracts ·

The smart contracts reference implementation of the LUKSO Standard Proposals (LSPs).
For more information see Documentation on docs.lukso.tech.
| ⚠️ | This package is currently in early stages of development, use for testing or experimentation purposes only. |
|---|
Installation
npm
LSP smart contracts are available as a npm package.
npm install @lukso/lsp-smart-contractscloning the repository
Alternatively you can also clone the repository and install its dependencies to start using the smart contracts.
$ git clone https://github.com/lukso-network/lsp-smart-contracts.git
$ cd ./lsp-smart-contracts
$ npm installUsage
in Javascript
You can use the contracts JSON ABI by importing them as follow:
import LSP0ERC725Account from "@lukso/lsp-smart-contracts/artifacts/LSP0ERC725Account.json";
const myContract = new web3.eth.Contract(
LSP0ERC725Account.abi,
"",
defaultOptions
);in Solidity
import "@lukso/lsp-smart-contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.sol";
contract MyAccount is LSP0ERC725Account {
constructor(address _newOwner) LSP0ERC725Account(_newOwner) {}
}
Deployment via hardhat
You can find more infos on how to deploy the contracts via hardhat in the DEPLOYMENT page.
Available Constants
The @lukso/lsp-smart-contracts npm package contains useful constants such as Interface IDs or ERC725Y Data Keys related to the LSP Standards. You can import and access them as follow:
import {
INTERFACE_IDS,
ERC1271,
OPERATIONS,
SupportedStandards,
ERC725YDataKeys,
PERMISSIONS,
ALL_PERMISSIONS,
Errors,
EventSignatures,
} from "@lukso/lsp-smart-contracts";Note: we also export it as
@lukso/lsp-smart-contracts/constantsor@lukso/lsp-smart-contracts/constants.jsto keep it backward compatible.
It also includes constant values Array data keys to retrieve both the array length and for index access.
'LSP5ReceivedAssets[]': {
length: '0x6460ee3c0aac563ccbf76d6e1d07bada78e3a9514e6382b736ed3f478ab7b90b',
index: '0x6460ee3c0aac563ccbf76d6e1d07bada',
},Audits
The following audits where conducted. All high-level issues were addressed, or were not deemed as critical.
- Chainsulting Audit, 06-07-2022, Final Result: Chainsulting_audit_06_07_2022.pdf
- Quantstamp Audit, 20-10-2022, Final Result: Quantstamp_audit_07_09_2022.pdf
- Watchpug Audit, 20-10-2022, Final Result: Watchpug_audit_20_10_2022.pdf
- Watchpug Audit, 15-12-2022, Final Result: Watchpug_audit_15_12_2022.pdf
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!