LUKSO LSP5 Received Assets Standard
LSP·5 · Metadata
The data keys that let an account list every asset it has ever received.
// Array stored at:
// LSP5ReceivedAssets[] → bytes (length)
// LSP5ReceivedAssets[]<index> → address
// LSP5ReceivedAssetsMap:<address> → bytes12 (interfaceId + index)
LSP5 is small and quietly important. Because LSP1 fires on transfer, and because Universal Profiles ship with a Universal Receiver Delegate that writes to LSP5, an account knows the full list of asset contracts that have ever sent it value — without an off-chain indexer.
The same companion shape (LSP12) does the dual: assets this account issued. Together, LSP5 + LSP12 give a profile a self-contained inventory.
What it solves.
- no account-level asset inventory without a subgraph
What it does not solve.
Anti-overselling is a feature.
- LSP5 doesn't validate that the asset is one you wanted. Spam filtering lives in the Universal Receiver Delegate.
- It records the *contract*, not balances — that's still on the asset contract.
Companions.
Standards this composes with.