@lukso/lsp8-contracts
v0.18.1
Published
Package for the LSP8 Identifiable Digital Asset standard
Downloads
3,621
Readme
LSP8 Identifiable Digital Asset · 
The contracts
LSP8VotesandLSP8VotesInitAbstracthave not been formally audited by an external third party and are not recommended to be used in production without undergoing an independent security audit.
npm package for the LSP8 Identifiable Digital Asset standard (NFTs token IDs).
Installation
npm install @lukso/lsp8-contractsAvailable Constants & Types
The @lukso/lsp8-contracts npm package contains useful constants such as interface IDs or ERC725Y data keys related to the LSP8 Standard. You can import and access them as follows.
In JavaScript.
import {
INTERFACE_ID_LSP8,
INTERFACE_ID_LSP8_PREVIOUS,
LSP8DataKeys,
LSP8_TYPE_IDS,
LSP8_TOKEN_ID_FORMAT,
} from "@lukso/lsp8-contracts";In Solidity.
import {
_INTERFACEID_LSP8,
_INTERFACEID_LSP8_V0_12_0,
_INTERFACEID_LSP8_V0_14_0,
_LSP8_TOKENID_FORMAT_KEY,
_LSP8_TOKEN_METADATA_BASE_URI,
_LSP8_REFERENCE_CONTRACT,
_TYPEID_LSP8_TOKENSSENDER,
_TYPEID_LSP8_TOKENSRECIPIENT,
_TYPEID_LSP8_TOKENOPERATOR,
_LSP8_TOKENID_FORMAT_NUMBER,
_LSP8_TOKENID_FORMAT_STRING,
_LSP8_TOKENID_FORMAT_ADDRESS,
_LSP8_TOKENID_FORMAT_UNIQUE_ID,
_LSP8_TOKENID_FORMAT_HASH,
_LSP8_TOKENID_FORMAT_MIXED_DEFAULT_NUMBER,
_LSP8_TOKENID_FORMAT_MIXED_DEFAULT_STRING,
_LSP8_TOKENID_FORMAT_MIXED_DEFAULT_ADDRESS,
_LSP8_TOKENID_FORMAT_MIXED_DEFAULT_UNIQUE_ID,
_LSP8_TOKENID_FORMAT_MIXED_DEFAULT_HASH
} from "@lukso/lsp8-contracts/contracts/LSP8Constants.sol";TypeScript types
You can also import the type-safe ABI from the /abi path.
import {
// standard version
lsp8IdentifiableDigitalAssetAbi,
lsp8CappedSupplyAbi,
lsp8MintableAbi,
lsp8VotesAbi
// proxy version
lsp8CappedSupplyInitAbstractAbi,
lsp8IdentifiableDigitalAssetInitAbstractAbi,
lsp8MintableInitAbi,
} from '@lukso/lsp8-contracts/abi';Foundry deployment
This package includes two Foundry scripts to deploy the LSP8CustomizableTokenInit and LSP8MintableInit implementation contracts.
scripts/DeployLSP8CustomizableTokenInit.s.solscripts/DeployLSP8MintableInit.s.sol
Set your deployer key first:
export PRIVATE_KEY=0x...Dry run against LUKSO Testnet
FOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8CustomizableTokenInit.s.sol:DeployLSP8CustomizableTokenInitScript --rpc-url https://rpc.testnet.lukso.networkFOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8MintableInit.s.sol:DeployLSP8MintableInitScript --rpc-url https://rpc.testnet.lukso.networkBroadcast the deployment
Use one of the methods described in the foundry docs to broadcast from a specific address
FOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8CustomizableTokenInit.s.sol:DeployLSP8CustomizableTokenInitScript --rpc-url https://rpc.testnet.lukso.network --broadcastFOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8MintableInit.s.sol:DeployLSP8MintableInitScript --rpc-url https://rpc.testnet.lukso.network --broadcastBroadcast and verify on the LUKSO Testnet Blockscout explorer:
FOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8CustomizableTokenInit.s.sol:DeployLSP8CustomizableTokenInitScript --rpc-url https://rpc.testnet.lukso.network --broadcast --verify --verifier blockscout --verifier-url https://explorer.execution.testnet.lukso.network/api/FOUNDRY_PROFILE=lsp8 forge script packages/lsp8-contracts/scripts/DeployLSP8MintableInit.s.sol:DeployLSP8MintableInitScript --rpc-url https://rpc.testnet.lukso.network --broadcast --verify --verifier blockscout --verifier-url https://explorer.execution.testnet.lukso.network/api/Audits
The LSP8 Customizable Token presets and their token extensions listed below were reviewed by the AI auditing tool Nethermind AI Audit Agent (May 2026). See the audit report PDF.
Presets
LSP8CustomizableToken(constructor-based deployment)LSP8CustomizableTokenInit(proxy / upgradeable deployment)LSP8CustomizableTokenConstants
Extensions (standard and Init variants)
