open-index/open-npm huggingface dataset:
npm package: @lukso/lsp0-contracts
Description: Package for the LSP0ERC725Account standard
Latest version: 0.15.5

# LSP0 ERC725Account &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp0-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp0-contracts)

Package for the LSP0 ERC725Account standard.

## Installation

```bash
npm install @lukso/lsp0-contracts
```

## Available Constants & Types

The `@lukso/lsp0-contracts` npm package contains useful constants such as interface IDs, and ERC725Y data keys related to the LSP0 Standard. You can import and access them as follows.

In Javascript.

```js
import {
  INTERFACE_ID_LSP0,
  OPERATION_TYPES,
  LSP0_TYPE_IDS,
  ERC1271_VALUES,
} from "@lukso/lsp0-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _INTERFACEID_LSP0,
  _INTERFACEID_ERC1271,
  _ERC1271_SUCCESSVALUE,
  _ERC1271_FAILVALUE,
  _TYPEID_LSP0_VALUE_RECEIVED,
  _TYPEID_LSP0_OwnershipTransferStarted,
  _TYPEID_LSP0_OwnershipTransferred_SenderNotification,
  _TYPEID_LSP0_OwnershipTransferred_RecipientNotification
} from "@lukso/lsp0-contracts/contracts/LSP0Constants.sol";
```

## Typescript types

You can also import the [type-safe ABI](https://abitype.dev/) of each LSP smart contracts from the `/abi` path.

```ts
import {
  lsp0Erc725AccountAbi,
  lsp0Erc725AccountInitAbi,
} from "@lukso/lsp0-contracts/abi";
```
npm package: @lukso/lsp1-contracts
Description: Package for the LSP1 Universal Receiver standard
Latest version: 0.15.5

# LSP1 Universal Receiver &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp1-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1-contracts)

Package for the LSP1 Universal Receiver standard.

## Installation

```bash
npm install @lukso/lsp1-contracts
```

## Available Constants & Types

The `@lukso/lsp1-contracts` npm package contains useful constants such as interface IDs, and ERC725Y data keys related to the LSP1 Standard. You can import and access them as follow.

In Javascript.

```js
import { INTERFACE_ID_LSP1, LSP1DataKeys } from "@lukso/lsp1-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _INTERFACEID_LSP1,
    _INTERFACEID_LSP1_DELEGATE,
    _LSP1_UNIVERSAL_RECEIVER_DELEGATE_PREFIX,
    _LSP1_UNIVERSAL_RECEIVER_DELEGATE_KEY
} from "@lukso/lsp1-contracts/contracts/LSP1Constants.sol";
```
npm package: @lukso/lsp10-contracts
Description: Package for the LSP10 Received Vaults standard
Latest version: 0.15.4

# LSP10 Received Vaults &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp10-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp10-contracts)

Package for the LSP10 Received Vaults standard.

## Installation

```bash
npm install @lukso/lsp10-contracts
```

## Available Constants & Types

The `@lukso/lsp10-contracts` npm package contains useful constants such as ERC725Y Data Keys related to the LSP10 Standard. You can import and access them as follow:

```javascript
import { LSP10DataKeys } from "@lukso/lsp10-contracts";
```
npm package: @lukso/lsp11-contracts
Description: Package for the LSP11 Social Recovery standard
Latest version: 0.1.7

# LSP11 Social Recovery

Package for the [LSP11 Social Recovery](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-11-BasicSocialRecovery.md) standard.

## Installation

```console
npm install @lukso/lsp11-contracts
```

## Available Constants & Types

The `@lukso/lsp11-contracts` npm package contains useful constants such as interface IDs related to the LSP11 standard. You can import and access them as follows.

In Javascript.

```javascript
import { INTERFACE_ID_LSP11 } from "@lukso/lsp11-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _INTERFACEID_LSP11,
    LSP11_VERSION
} from "@lukso/lsp11-contracts/contracts/LSP11Constants.sol";
```
npm package: @lukso/lsp12-contracts
Description: Package for the LSP12 Issued Assets standard
Latest version: 0.15.4

# &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp12-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp12-contracts)

Package for the LSP12 Issued Assets standard.

## Installation

```bash
npm install @lukso/lsp12-contracts
```

## Available Constants & Types

The `@lukso/lsp12-contracts` npm package contains useful constants such as ERC725Y Data Keys related to the LSP12 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { LSP12DataKeys } from "@lukso/lsp12-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _LSP12_ISSUED_ASSETS_ARRAY_KEY,
    _LSP12_ISSUED_ASSETS_MAP_KEY_PREFIX
} from "@lukso/lsp12-contracts/contracts/LSP12Constants.sol";
```
npm package: @lukso/lsp14-contracts
Description: Package for the LSP14 Ownable 2 Step standard
Latest version: 0.15.5

# LSP14 Ownable 2 Step &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp14-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp14-contracts)

Package for the LSP14 Ownable 2 Step standard.

## Installation

```bash
npm install @lukso/lsp14-contracts
```

## Available Constants & Types

The `@lukso/lsp14-contracts` npm package contains useful constants such as interface IDs, and ERC725Y data keys related to the LSP14 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { LSP14_TYPE_IDS, INTERFACE_ID_LSP14 } from "@lukso/lsp14-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _INTERFACEID_LSP14,
    _TYPEID_LSP14_OwnershipTransferStarted,
    _TYPEID_LSP14_OwnershipTransferred_SenderNotification,
    _TYPEID_LSP14_OwnershipTransferred_RecipientNotification
} from "@lukso/lsp14-contracts/contracts/LSP14Constants.sol";
```
npm package: @lukso/lsp16-contracts
Description: Package for the LSP16 Universal Factory standard
Latest version: 0.15.5

# LSP16 Universal Factory &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp16-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp16-contracts)

Package for the [LSP16-UniversalFactory](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-16-UniversalFactory.md) standard, contains the `LSP16UniversalFactory` contract that allows deploying contracts at the same address on multiple chains.

## Installation

```bash
npm install @lukso/lsp16-contracts
```
npm package: @lukso/lsp17-contracts
Description: Package for the LSP17 extensions
Latest version: 0.16.7

# LSP17 Extensions Package &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp17-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17-contracts)

Package for the LSP17 Extensions, that includes the following extensions:

- `Extension4337` extension, which contains the `validateUserOp` function from the [`ERC4337` standard](https://eips.ethereum.org/EIPS/eip-4337).
- `OnERC721ReceivedExtension` extension that contains the `onERC721Received` function from the [`ERC721` standard](https://eips.ethereum.org/EIPS/eip-721).
- `ERCTokenCallbacks` extension that contains implemented callback functions with valid returned values from ERC721, ERC1155 and ERC777 to support receiving tokens via the transfer functions that trigger these callbacks.

## Installation

```console
npm install @lukso/lsp17-contracts
```

## Available Constants & Types

The `@lukso/lsp17-contracts` npm package contains useful constants such as interface IDs related to the LSP17 Extensions. You can import and access them as follows.

```javascript
import { INTERFACE_ID_LSP17Extension } from "@lukso/lsp17-contracts";
```
npm package: @lukso/lsp17contractextension-contracts
Description: Package for the LSP17 Contract Extension standard
Latest version: 0.16.7

# LSP17 Contract Extension Package &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp17contractextension-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp17contractextension-contracts)

Package for the LSP17 Contract Extension

## Installation

```console
npm install @lukso/lsp17contractextension-contracts
```

## Available Constants & Types

The `@lukso/lsp17contractextension-contracts` npm package contains useful constants such as interface IDs, and ERC725Y data keys related to the LSP17 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  INTERFACE_ID_LSP17Extendable,
  INTERFACE_ID_LSP17Extension,
  LSP17DataKeys,
} from "@lukso/lsp17contractextension-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _INTERFACEID_LSP17_EXTENDABLE,
  _INTERFACEID_LSP17_EXTENSION,
  _LSP17_EXTENSION_PREFIX
} from "@lukso/lsp17-contracts/contracts/LSP17Constants.sol";
```
npm package: @lukso/lsp1delegate-contracts
Description: Package for the LSP1 Universal Receiver Delegate standard
Latest version: 0.15.5

# LSP1 Universal Receiver Delegate &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp1delegate-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp1delegate-contracts)

Smart contract implementations of [LSP1 Universal Receiver Delegate](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-1-UniversalReceiver.md#universalreceiver-delegation)
to register and manage:

- LSP5 Received Assets
- LSP10 Vaults

Currently there are Universal Receiver Delegate contracts for:

- [Universal Profile](./contracts/LSP1UniversalReceiverDelegateUP.sol)
- [Vault](./contracts/LSP1UniversalReceiverDelegateVault.sol)

## Installation

```bash
npm install @lukso/lsp1delegate-contracts
```

## Available Constants & Types

The `@lukso/lsp1delegate-contracts` npm package contains useful constants such as interface IDs related to the LSP1Delegate Standard. You can import and access them as follows.

```js
import { INTERFACE_ID_LSP1DELEGATE } from "@lukso/lsp1delegate-contracts";
```
npm package: @lukso/lsp2-contracts
Description: Package for the LSP2 ERC725Y JSON Schema standard
Latest version: 0.15.4

# LSP2 ERC725Y JSON Schema &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp2-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp2-contracts)

Package for the LSP2 ERC725Y JSON Schema standard.

## Installation

```bash
npm install @lukso/lsp2-contracts
```

## Available Constants & Types

The `@lukso/lsp2-contracts` npm package contains useful constants such as ERC725Y Data Keys related to the LSP2 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { LSP2ArrayKey, Verification } from "@lukso/lsp2-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _KECCAK256_UTF8,
    _KECCAK256_BYTES,
    _KECCAK256_ECDSA
} from "@lukso/lsp2-contracts/contracts/LSP2Constants.sol";
```
npm package: @lukso/lsp20-contracts
Description: Package for the LSP20 Call Verification standard
Latest version: 0.15.5

# LSP20 Call Verification &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp20-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp20-contracts)

Package for the LSP20 Call Verification standard.

## Installation

```bash
npm i @lukso/lsp20-contracts
```

## Available Constants & Types

The `@lukso/lsp20-contracts` npm package contains useful constants such as interface IDs, and specific constants related to the LSP20 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  LSP20_SUCCESS_VALUES,
  INTERFACE_ID_LSP20CallVerifier,
  INTERFACE_ID_LSP20CallVerification,
} from "@lukso/lsp20-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _INTERFACEID_LSP20_CALL_VERIFICATION,
  _INTERFACEID_LSP20_CALL_VERIFIER,
  _LSP20_VERIFY_CALL_SUCCESS_VALUE_WITH_POST_VERIFICATION,
  _LSP20_VERIFY_CALL_SUCCESS_VALUE_WITHOUT_POST_VERIFICATION,
  _LSP20_VERIFY_CALL_RESULT_SUCCESS_VALUE
} from "@lukso/lsp20-contracts/contracts/LSP20Constants.sol";
```
npm package: @lukso/lsp23-contracts
Description: Package for the LSP23 Linked Contracts Factory standard
Latest version: 0.15.5

# LSP23 Linked Contracts Factory &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp23-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp23-contracts)

Package for the LSP23 Linked Contracts Factory. Contains the JSON artifacts (ABI, bytecode...) and the `LSP23LinkedContractsFactory`.

## Installation

```bash
npm install @lukso/lsp23-contracts
```
npm package: @lukso/lsp25-contracts
Description: Package for the LSP25 Execute Relay Call standard
Latest version: 0.15.5

# LSP25 Execute Relay Call &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp25-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp25-contracts)

Package for the LSP25 Execute Relay Call standard.

## Installation

```bash
npm i @lukso/lsp25-contracts
```

## Available Constants & Types

The `@lukso/lsp25-contracts` npm package contains useful constants such as interface IDs, and specific constants related to the LSP25 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { LSP25_VERSION, INTERFACE_ID_LSP25 } from "@lukso/lsp25-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _INTERFACEID_LSP25,
    LSP25_VERSION
} from "@lukso/lsp25-contracts/contracts/LSP25Constants.sol";
```
npm package: @lukso/lsp26-contracts
Description: Package for the LSP26 Follower System standard
Latest version: 0.1.7

# LSP26 Follower System &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp26-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp26-contracts)

Package for the LSP26 Follower System standard.

## Installation

```console
npm i @lukso/lsp26-contracts
```

## Available Constants & Types

The `@lukso/lsp26-contracts` npm package contains useful constants such as interface IDs, and specific constants related to the LSP26 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { INTERFACE_ID_LSP26, LSP26_TYPE_IDS } from "@lukso/lsp26-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _INTERFACEID_LSP26,
    _TYPEID_LSP26_FOLLOW,
    _TYPEID_LSP26_UNFOLLOW
} from "@lukso/lsp26-contracts/contracts/LSP26Constants.sol";
```
npm package: @lukso/lsp3-contracts
Description: Package for the LSP3 Profile Metadata standard
Latest version: 0.16.6

# LSP3 Profile Metadata &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp3-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp3-contracts)

Package for the LSP3 Profile Metadata standard.

## Installation

```console
npm install @lukso/lsp3-contracts
```

## Available Constants & Types

The `@lukso/lsp3-contracts` npm package contains useful constants such as ERC725Y data keys related to the LSP3 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  LSP3DataKeys,
  LSP3SupportedStandard,
  LSP3ProfileMetadataJSON,
  LSP3ProfileMetadata,
  LinkMetadata,
  ImageMetadata,
  AssetMetadata,
} from "@lukso/lsp3-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _LSP3_SUPPORTED_STANDARDS_KEY,
  _LSP3_SUPPORTED_STANDARDS_VALUE,
  _LSP3_PROFILE_KEY
} from "@lukso/lsp3-contracts/contracts/LSP3Constants.sol";
```
npm package: @lukso/lsp4-contracts
Description: Package for the LSP4 Digital Asset Metadata standard
Latest version: 0.16.7

# LSP4 Digital Asset Metadata &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp4-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp4-contracts)

Package for the LSP4 Digital Asset Metadata standard.

## Installation

```console
npm install @lukso/lsp4-contracts
```

## Available Constants & Types

The `@lukso/lsp4-contracts` npm package contains useful constants such as ERC725Y data keys related to the LSP4 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  LSP4_TOKEN_TYPES,
  LSP4SupportedStandard,
  LSP4DataKeys,
  LSP4DigitalAssetMetadataJSON,
  LSP4DigitalAssetMetadata,
  LinkMetadata,
  ImageMetadata,
  AssetMetadata,
  AttributeMetadata,
} from "@lukso/lsp4-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _LSP4_TOKEN_TYPE_TOKEN,
  _LSP4_TOKEN_TYPE_NFT,
  _LSP4_TOKEN_TYPE_COLLECTION,
  _LSP4_SUPPORTED_STANDARDS_KEY,
  _LSP4_SUPPORTED_STANDARDS_VALUE,
  _LSP4_TOKEN_NAME_KEY,
  _LSP4_TOKEN_SYMBOL_KEY,
  _LSP4_TOKEN_TYPE_KEY,
  _LSP4_CREATORS_ARRAY_KEY,
  _LSP4_CREATORS_MAP_KEY_PREFIX,
  _LSP4_METADATA_KEY
} from "@lukso/lsp4-contracts/contracts/LSP4Constants.sol";
```
npm package: @lukso/lsp5-contracts
Description: Package for the LSP5 Received Assets standard
Latest version: 0.15.4

# LSP5 Received Assets &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp5-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp5-contracts)

Package for the LSP5 Received Assets standard.

## Installation

```bash
npm install @lukso/lsp5-contracts
```

## Available Constants & Types

The `@lukso/lsp5-contracts` npm package contains useful constants such as ERC725Y Data Keys related to the LSP5 Standard. You can import and access them as follows.

In Javascript.

```javascript
import { LSP5DataKeys } from "@lukso/lsp5-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
    _LSP5_RECEIVED_ASSETS_ARRAY_KEY,
    _LSP5_RECEIVED_ASSETS_MAP_KEY_PREFIX
} from "@lukso/lsp5-contracts/contracts/LSP5Constants.sol";
```
npm package: @lukso/lsp6-contracts
Description: Package for the LSP6 Key Manager standard
Latest version: 0.15.5

# LSP6 Key Manager &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp6-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp6-contracts)

Package for the LSP6 Key Manager standard, to enable granting multiple permissions to controllers.

## Installation

```bash
npm install @lukso/lsp6-contracts
```

## Available Constants & Types

The `@lukso/lsp6-contracts` npm package contains useful constants such as interface IDs or ERC725Y Data Keys related to the LSP6 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  INTERFACE_ID_LSP6,
  LSP6DataKeys,
  ERC1271_VALUES,
  CALLTYPE,
  ALL_PERMISSIONS,
  PERMISSIONS,
  LSP6PermissionName,
} from "@lukso/lsp6-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _INTERFACEID_ERC1271,
  _ERC1271_SUCCESSVALUE,
  _ERC1271_FAILVALUE
} from "@lukso/lsp6-contracts/contracts/constants.sol";
```

## Typescript types

You can also import the [type-safe ABI](https://abitype.dev/) from the `/abi` path.

```ts
import {
  lsp6KeyManagerAbi,
  lsp6KeyManagerInitAbi,
} from "@lukso/lsp6-contracts/abi";
```
npm package: @lukso/lsp7-contracts
Description: Package for the LSP7 Digital Asset standard
Latest version: 0.16.8

# LSP7 Digital Asset &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp7-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp7-contracts)

Package for the LSP7 Digital Asset standard.

> The contracts [`LSP7Votes`](contracts/extensions/LSP7Votes.sol) and [`LSP7VotesInitiAbstract`](contracts/extensions/LSP7VotesInitAbstract.sol) have not been formally audited by an external third party and are not recommended to be used in production without undergoing an independent security audit.

## Installation

```console
npm install @lukso/lsp7-contracts
```

## Available Constants & Types

The `@lukso/lsp7-contracts` npm package contains useful constants such as interface IDs or ERC725Y data keys related to the LSP7 Standard. You can import and access them as follows.

In Javascript.

```javascript
import {
  INTERFACE_ID_LSP7,
  INTERFACE_ID_LSP7_PREVIOUS,
  LSP7_TYPE_IDS,
} from "@lukso/lsp7-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```solidity
import {
  _INTERFACEID_LSP7,
  _INTERFACEID_LSP7_V0_12_0,
  _INTERFACEID_LSP7_V0_14_0,
  _TYPEID_LSP7_DELEGATOR,
  _TYPEID_LSP7_DELEGATEE,
  _TYPEID_LSP7_TOKENSSENDER,
  _TYPEID_LSP7_TOKENSRECIPIENT,
  _TYPEID_LSP7_TOKENOPERATOR
} from "@lukso/lsp7-contracts/contracts/LSP7Constants.sol";
```

The `LSP7_TYPE_IDS` includes type IDs for the following type of notifications:

```console
'LSP7Tokens_SenderNotification';
'LSP7Tokens_RecipientNotification';
'LSP7Tokens_OperatorNotification';
'LSP7Tokens_VotesDelegatorNotification';
'LSP7Tokens_VotesDelegateeNotification';
```

## Typescript types

You can also import the [type-safe ABI](https://abitype.dev/) from the `/abi` path.

```ts
import {
    // standard version
    lsp7DigitalAssetAbi,
    lsp7CappedSupplyAbi,
    lsp7MintableAbi,
    lsp7VotesAbi
    // proxy version
    lsp7CappedSupplyInitAbstractAbi,
    lsp7DigitalAssetInitAbstractAbi,
    lsp7MintableInitAbi,
 } from '@lukso/lsp7-contracts/abi';
```
npm package: @lukso/lsp8-contracts
Description: Package for the LSP8 Identifiable Digital Asset standard
Latest version: 0.16.7

# LSP8 Identifiable Digital Asset &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp8-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp8-contracts)

Package for the LSP8 Identifiable Digital Asset Standard.

> The contracts [`LSP8Votes`](contracts/extensions/LSP8Votes.sol) and [`LSP8VotesInitiAbstract`](contracts/extensions/LSP8VotesInitAbstract.sol) have not been formally audited by an external third party and are not recommended to be used in production without undergoing an independent security audit.

## Installation

```console
npm install @lukso/lsp8-contracts
```

## Available 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.

```javascript
import {
  INTERFACE_ID_LSP8,
  INTERFACE_ID_LSP8_PREVIOUS,
  LSP8DataKeys,
  LSP8_TYPE_IDS,
  LSP8_TOKEN_ID_FORMAT,
} from "@lukso/lsp8-contracts";
```

In Solidity.

<!-- prettier-ignore -->
```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](https://abitype.dev/) from the `/abi` path.

```ts
import {
    // standard version
    lsp8IdentifiableDigitalAssetAbi,
    lsp8CappedSupplyAbi,
    lsp8MintableAbi,
    lsp8VotesAbi
    // proxy version
    lsp8CappedSupplyInitAbstractAbi,
    lsp8IdentifiableDigitalAssetInitAbstractAbi,
    lsp8MintableInitAbi,
 } from '@lukso/lsp8-contracts/abi';
```
npm package: @lukso/lsp9-contracts
Description: Package for the LSP9 Vault standard
Latest version: 0.15.5

# LSP9 Vault &middot; [![npm version](https://img.shields.io/npm/v/@lukso/lsp9-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp9-contracts)

Package for the LSP9 Vault standard.

## Installation

```bash
npm install @lukso/lsp9-contracts
```

## Available Constants & Types

The `@lukso/lsp9-contracts` npm package contains useful constants such as interface IDs, ERC725Y Data Keys related to the LSP9 Standard. You can import and access them as follows.

```javascript
import {
  OPERATION_TYPES,
  INTERFACE_ID_LSP9,
  LSP9_TYPE_IDS,
  LSP9DataKeys,
  LSP9SupportedStandard,
} from "@lukso/lsp9-contracts";
```
npm package: @lukso/universalprofile-contracts
Description: Package for Universal Profile, an implementation of LSP0 ERC725 Account & LSP3 Profile Metadata standards combined together.
Latest version: 0.15.5

# Universal Profile &middot; [![npm version](https://img.shields.io/npm/v/@lukso/universalprofile-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/universalprofile-contracts)

Smart Contract implementation for **Universal Profile**, a combination of LSP0 ERC725 Account and LSP3 Profile Metadata.

## Installation

```bash
npm i @lukso/universalprofile-contracts
```

## Solidity constants

The constants related to LSP3 Profile Metadata can be directly imported from the Solidity `Constants.sol` file.

<!-- prettier-ignore -->
```solidity
import {
  _LSP3_SUPPORTED_STANDARDS_KEY,
  _LSP3_SUPPORTED_STANDARDS_VALUE,
  _LSP3_PROFILE_KEY
} from "@lukso/universalprofile-contracts/contracts/Constants.sol";
```

## Typescript types

You can also import the [type-safe ABI](https://abitype.dev/) of each LSP smart contracts from the `/abi` path.

```typescript
import {
  universalProfileAbi,
  universalProfileInitAbi,
} from "@lukso/universalprofile-contracts/abi";
```
npm package: @lukso/universalprofile-smart-contracts
Description: The reference implementation for universal profiles smart contracts
Latest version: 0.4.1
Deprecated: Renamed to @lukso/lsp-smart-contracts


<p align="center">
  <a href="https://www.npmjs.com/package/@lukso/universalprofile-smart-contracts">
    <img alt="Version" src="https://badge.fury.io/js/@lukso%2Funiversalprofile-smart-contracts.svg" />
  </a>
</p>

# lsp-universalprofile-smart-contracts

The reference implementation for universal profiles smart contracts.

For more information see [Documentation](https://docs.lukso.tech/standards/Universal-Profiles)

| :warning: | _This package is currently in early stages of development,<br/> use for testing or experimentation purposes only._ |
| :-------: | :----------------------------------------------------------------------------------------------------------------- |

## **Overview**

### Installation

#### npm

Universal Profile smart contracts are available as a [npm package](https://www.npmjs.com/package/@lukso/universalprofile-smart-contracts).

```bash
npm install @lukso/universalprofile-smart-contracts
```

#### cloning the repository

Alternatively you can also clone the repository and install its dependencies to start using the smart contracts.

```bash
$ git clone https://github.com/lukso-network/lsp-universalprofile-smart-contracts.git
$ cd ./lsp-universalprofile-smart-contracts
$ npm install
```

## Usage

#### in Javascript

You can use the contracts JSON ABI by importing them as follow:

```javascript
import UniversalProfile from "@lukso/universalprofile-smart-contracts/artifacts/UniversalProfile.json";

const myContract = new this.web3.eth.Contract(UniversalProfile.abi, "", defaultOptions);
```

#### in Solidity

```solidity
import UniversalProfile from "@lukso/universalprofile-smart-contracts/contracts/UniversalProfile.sol";
```


### Testing

Jest contract tests are defined under the tests directory. To run all the tests, run:

```bash
$ npm test
```


### Deployment via hardhat

You can find more infos on how to deploy the contracts via hardhat in the [DEPLOYMENT](./DEPLOYMENT.md) page.