Skip to main content

LSP4DigitalAssetMetadata

uploadMetadata

LSP4DigitalAssetMetadata.uploadMetadata(lsp4Metadata [, options]);

Uploads and processes passed assets and images, and uploads the LSP4 Digital Asset Metadata to IPFS. The uploadMetadata function is available as a static or non-static function callable on the LSPFactory library instance.

If options are not specified in the function call, and the function is used on an LSPFactory instance, the specified options that were passed to the LSPFactory during instantiation will be used.

Parameters

1. metaData - Object (optional)

NameTypeDescription
descriptionStringA description of the digital asset.
links (optional)ArrayAn Array of Objects containing title and url parameters.
icon (optional)File | ArrayThe icon of the digital asset passed as a JavaScript File object or an Array of image metadata objects for different sizes of the same image.
images (optional)ArrayAn Array of images where each image element is a JavaScript File object or an Array of image metadata Objects for different sizes of the same image.
assets (optional)ArrayAn Array of assets where each asset is a JavaScript File object or an asset metadata Object.

OR

NameTypeDescription
LSP4MetadataObjectObject containing description, links, icon, images, assets as described above

2. options - Object (optional)

NameTypeDescription
ipfsGateway (optional)String | ObjectipfsGateway URL string or IPFS Client Options as defined by the ipfs-http-client library used internally.

Returns

TypeDescription
PromiseThe processed LSP4 data and upload URL.

Examples

Uploading LSP4Metadata
const image = new File();
const icon = new File();
const asset = new File();

await LSP4DigitalAssetMetadata.uploadMetadata(
{
description: "Digital Asset",
assets: [asset],
images: [image],
icon: icon,
links: [{ title: "LUKSO Docs", url: "https://docs.lukso.tech"}],
};
);
/**
{
json: {
LSP4Metadata: {
description: 'Digital Asset',
assets: [
{
"verification": {
"method": "keccak256(bytes)",
"data": "0x5f3dbd89cde4dde36241c501203b67a93b89908063f5516535136bc25f712e11",
},
"url": "ipfs://QmWkAki4mLq2cshpbKs4HFCaZdpUX1jLKKfb5y8YMATkwk",
"fileType": "image/jpeg"
}
],
images: [
[
{
"width": 1800,
"height": 1800,
"verification": {
"method": "keccak256(bytes)",
"data": "0x5c6125b5a553337b5ad55610c47114bf58d33c7a21aef14b0ed4c214203c9ca7",
},
"url": "ipfs://QmPCQwamReJshNiqSSzf4zMVffNiDx44ykTf1zY95vG6rv"
},
{
"width": 1024,
"height": 1024,
"verification": {
"method": "keccak256(bytes)",
"data": "0xc4d1d37a8545012be38a8f33f9a53daceab955a17310bcfffe00f34811506938",
},
"url": "ipfs://Qme8tedX78TaxVwtvacJyS7bcSwe69F4aNnknUzL3gYdFY"
},
{
"width": 640,
"height": 640,
"verification": {
"method": "keccak256(bytes)",
"data": "0xa63ebb82e8c428c9a02f1c0a040199748844dccf62e75fcd85454bce4acd4afd",
},
"url": "ipfs://QmdQRdeeGGmWCPs1iCtxiNzHMZemFpvcsdvweCdnufHdqr"
},
{
"width": 320,
"height": 320,
"verification": {
"method": "keccak256(bytes)",
"data": "0x2ab638bb61f4cb686c3ca5ca09285e4507ad2328c0b5f6e10378425ed7c75cd9",
},
"url": "ipfs://QmfYYafv6ucuKSm3EbcJxho9Cr2g5Pa3yhv7TaANbP8jbg"
},
{
"width": 180,
"height": 180,
"verification": {
"method": "keccak256(bytes)",
"data": "0xefb0b36b3bba2338c18b2b55a0cbc52f04eda03e9b58ca8d04a92fc9b1387853",
},
"url": "ipfs://QmU5XJfL1V5tBLfm7xYMGYEi7VLiwDCfsCc8KswRgXNQSr"
}
]
],
icon: [
{
"width": 256,
"height": 256,
"verification": {
"method": "keccak256(bytes)",
"data": "0x0b3eb5393a45081071ed39c167d65faef9fd7a4dfada9e513770537f5cf1707b",
},
"url": "ipfs://QmNuLsjDJNKR9xSKXZUB6wJBwChcXLfDnCVEY8XvS3Pxvw"
},
{
"width": 32,
"height": 32,
"verification": {
"method": "keccak256(bytes)",
"data": "0x8038199254ab33c9248e09301f01fafb9ca704fce33b484e60153ba6b0e9ce41",
},
"url": "ipfs://QmbaNRFxwiCNoKCNyBTPSThwBE6uqA1voD2i2vEGcHKUwy"
}
],
links: [
{
"title": "LUKSO Docs",
"url": "https://docs.lukso.tech"
}
]
},
},
url: 'ipfs://QmXJxJePjs6A9TSC4m32GN6h3PknVYsC4HqNaBEF6EeuGB'
}
*/
Uploading LSP4Metadata with LSP4Metadata key
const image = new File();
const icon = new File();
const asset = new File();

await LSP4DigitalAssetMetadata.uploadMetadata(
{
LSP4Metadata: {
description: "Digital Asset",
assets: [asset],
images: [image],
icon: icon,
links: [{ title: "LUKSO Docs", url: "https://docs.lukso.tech"}],
}
};
);
/**
{
json: {
LSP4Metadata: {
description: 'Digital Asset',
assets: [
{
"verification": {
"method": "keccak256(bytes)",
"data": "0x5f3dbd89cde4dde36241c501203b67a93b89908063f5516535136bc25f712e11",
},
"url": "ipfs://QmWkAki4mLq2cshpbKs4HFCaZdpUX1jLKKfb5y8YMATkwk",
"fileType": "image/jpeg"
}
],
images: [
[
{
"width": 1800,
"height": 1800,
"verification": {
"method": "keccak256(bytes)",
"data": "0x5c6125b5a553337b5ad55610c47114bf58d33c7a21aef14b0ed4c214203c9ca7",
},
"url": "ipfs://QmPCQwamReJshNiqSSzf4zMVffNiDx44ykTf1zY95vG6rv"
},
{
"width": 1024,
"height": 1024,
"verification": {
"method": "keccak256(bytes)",
"data": "0xc4d1d37a8545012be38a8f33f9a53daceab955a17310bcfffe00f34811506938",
},
"url": "ipfs://Qme8tedX78TaxVwtvacJyS7bcSwe69F4aNnknUzL3gYdFY"
},
{
"width": 640,
"height": 640,
"verification": {
"method": "keccak256(bytes)",
"data": "0xa63ebb82e8c428c9a02f1c0a040199748844dccf62e75fcd85454bce4acd4afd",
},
"url": "ipfs://QmdQRdeeGGmWCPs1iCtxiNzHMZemFpvcsdvweCdnufHdqr"
},
{
"width": 320,
"height": 320,
"§": {
"method": "keccak256(bytes)",
"data": "0x2ab638bb61f4cb686c3ca5ca09285e4507ad2328c0b5f6e10378425ed7c75cd9",
},
"url": "ipfs://QmfYYafv6ucuKSm3EbcJxho9Cr2g5Pa3yhv7TaANbP8jbg"
},
{
"width": 180,
"height": 180,
"verification": {
"method": "keccak256(bytes)",
"data": "0xefb0b36b3bba2338c18b2b55a0cbc52f04eda03e9b58ca8d04a92fc9b1387853",
},
"url": "ipfs://QmU5XJfL1V5tBLfm7xYMGYEi7VLiwDCfsCc8KswRgXNQSr"
}
]
],
icon: [
{
"width": 256,
"height": 256,
"verification": {
"method": "keccak256(bytes)",
"data": "0x0b3eb5393a45081071ed39c167d65faef9fd7a4dfada9e513770537f5cf1707b",
},
"url": "ipfs://QmNuLsjDJNKR9xSKXZUB6wJBwChcXLfDnCVEY8XvS3Pxvw"
},
{
"width": 32,
"height": 32,
"verification": {
"method": "keccak256(bytes)",
"data": "0x8038199254ab33c9248e09301f01fafb9ca704fce33b484e60153ba6b0e9ce41",
},
"url": "ipfs://QmbaNRFxwiCNoKCNyBTPSThwBE6uqA1voD2i2vEGcHKUwy"
}
],
links: [
{
"title": "LUKSO Docs",
"url": "https://docs.lukso.tech"
}
]
},
},
url: 'ipfs://QmXJxJePjm6A9TSC4m32GN6h3PknVY2C4HqNaBEF6EeuGB'
}
*/

Upload Custom LSP4 Metadata Example

Uploading LSP4Metadata using custom upload options
await LSP4DigitalAssetMetadata.uploadMetadata(
{
description: 'Digital Asset',
assets: [asset],
images: [image],
icon: icon,
links: [{ title: 'LUKSO Docs', url: 'https://docs.lukso.tech' }],
},
{
ipfsGateway: {
host: 'ipfs.infura.io',
port: 5001,
protocol: 'https',
},
},
);
/**
{
json: {
LSP4Metadata: {
description: 'Digital Asset',
assets: [
{
"verification": {
"method": "keccak256(bytes)",
"data": "0x5f3dbd89cde4dde36241c501203b67a93b89908063f5516535136bc25f712e11",
},
"url": "ipfs://QmWkAki4mLq2cshpbKs4HFCaZdpUX1jLKKfb5y8YMATkwk",
"fileType": "image/jpeg"
}
],
images: [
[
{
"width": 1800,
"height": 1800,
"verification": {
"method": "keccak256(bytes)",
"data": "0x5c6125b5a553337b5ad55610c47114bf58d33c7a21aef14b0ed4c214203c9ca7",
},
"url": "ipfs://QmPCQwamReJshNiqSSzf4zMVffNiDx44ykTf1zY95vG6rv"
},
{
"width": 1024,
"height": 1024,
"verification": {
"method": "keccak256(bytes)",
"data": "0xc4d1d37a8545012be38a8f33f9a53daceab955a17310bcfffe00f34811506938",
},
"url": "ipfs://Qme8tedX78TaxVwtvacJyS7bcSwe69F4aNnknUzL3gYdFY"
},
{
"width": 640,
"height": 640,
"verification": {
"method": "keccak256(bytes)",
"data": "0xa63ebb82e8c428c9a02f1c0a040199748844dccf62e75fcd85454bce4acd4afd",
},
"url": "ipfs://QmdQRdeeGGmWCPs1iCtxiNzHMZemFpvcsdvweCdnufHdqr"
},
{
"width": 320,
"height": 320,
"verification": {
"method": "keccak256(bytes)",
"data": "0x2ab638bb61f4cb686c3ca5ca09285e4507ad2328c0b5f6e10378425ed7c75cd9",
},
"url": "ipfs://QmfYYafv6ucuKSm3EbcJxho9Cr2g5Pa3yhv7TaANbP8jbg"
},
{
"width": 180,
"height": 180,
"verification": {
"method": "keccak256(bytes)",
"data": "0xefb0b36b3bba2338c18b2b55a0cbc52f04eda03e9b58ca8d04a92fc9b1387853",
},
"url": "ipfs://QmU5XJfL1V5tBLfm7xYMGYEi7VLiwDCfsCc8KswRgXNQSr"
}
]
],
icon: [
{
"width": 256,
"height": 256,
"verification": {
"method": "keccak256(bytes)",
"data": "0x0b3eb5393a45081071ed39c167d65faef9fd7a4dfada9e513770537f5cf1707b",
},
"url": "ipfs://QmNuLsjDJNKR9xSKXZUB6wJBwChcXLfDnCVEY8XvS3Pxvw"
},
{
"width": 32,
"height": 32,
"verification": {
"method": "keccak256(bytes)",
"data": "0x8038199254ab33c9248e09301f01fafb9ca704fce33b484e60153ba6b0e9ce41",
},
"url": "ipfs://QmbaNRFxwiCNoKCNyBTPSThwBE6uqA1voD2i2vEGcHKUwy"
}
],
links: [
{
"title": "LUKSO Docs",
"url": "https://docs.lukso.tech"
}
]
},
},
url: 'ipfs://QmXJxJePjm6A9TSC4m32GN6h3PknVY2C4HqNaBEF6EeuGB'
}
*/
Uploading LSP4Metadata using upload options passed when instantiating LSPFactory
const lspFactory = new LSPFactory(provider, {
deployKey: myDeployKey,
chainId: myChainId,
ipfsGateway: {
host: 'ipfs.infura.io',
port: 5001,
protocol: 'https',
},
});

await lspFactory.LSP4DigitalAssetMetadata.uploadMetadata({
description: 'Digital Asset',
assets: [asset],
images: [image],
icon: icon,
links: [{ title: 'LUKSO Docs', url: 'https://docs.lukso.tech' }],
});
/**
{
json: {
LSP4Metadata: {
description: 'Digital Asset',
assets: [
{
"verification": {
"method": "keccak256(bytes)",
"data": "0x5f3dbd89cde4dde36241c501203b67a93b89908063f5516535136bc25f712e11",
},
"url": "ipfs://QmWkAki4mLq2cshpbKs4HFCaZdpUX1jLKKfb5y8YMATkwk",
"fileType": "image/jpeg"
}
],
images: [
[
{
"width": 1800,
"height": 1800,
"verification": {
"method": "keccak256(bytes)",
"data": "0x5c6125b5a553337b5ad55610c47114bf58d33c7a21aef14b0ed4c214203c9ca7",
},
"url": "ipfs://QmPCQwamReJshNiqSSzf4zMVffNiDx44ykTf1zY95vG6rv"
},
{
"width": 1024,
"height": 1024,
"verification": {
"method": "keccak256(bytes)",
"data": "0xc4d1d37a8545012be38a8f33f9a53daceab955a17310bcfffe00f34811506938",
},
"url": "ipfs://Qme8tedX78TaxVwtvacJyS7bcSwe69F4aNnknUzL3gYdFY"
},
{
"width": 640,
"height": 640,
"verification": {
"method": "keccak256(bytes)",
"data": "0xa63ebb82e8c428c9a02f1c0a040199748844dccf62e75fcd85454bce4acd4afd",
},
"url": "ipfs://QmdQRdeeGGmWCPs1iCtxiNzHMZemFpvcsdvweCdnufHdqr"
},
{
"width": 320,
"height": 320,
"verification": {
"method": "keccak256(bytes)",
"data": "0x2ab638bb61f4cb686c3ca5ca09285e4507ad2328c0b5f6e10378425ed7c75cd9",
},
"url": "ipfs://QmfYYafv6ucuKSm3EbcJxho9Cr2g5Pa3yhv7TaANbP8jbg"
},
{
"width": 180,
"height": 180,
"verification": {
"method": "keccak256(bytes)",
"data": "0xefb0b36b3bba2338c18b2b55a0cbc52f04eda03e9b58ca8d04a92fc9b1387853",
},
"url": "ipfs://QmU5XJfL1V5tBLfm7xYMGYEi7VLiwDCfsCc8KswRgXNQSr"
}
]
],
icon: [
{
"width": 256,
"height": 256,
"verification": {
"method": "keccak256(bytes)",
"data": "0x0b3eb5393a45081071ed39c167d65faef9fd7a4dfada9e513770537f5cf1707b",
},
"url": "ipfs://QmNuLsjDJNKR9xSKXZUB6wJBwChcXLfDnCVEY8XvS3Pxvw"
},
{
"width": 32,
"height": 32,
"verification": {
"method": "keccak256(bytes)",
"data": "0x8038199254ab33c9248e09301f01fafb9ca704fce33b484e60153ba6b0e9ce41",
},
"url": "ipfs://QmbaNRFxwiCNoKCNyBTPSThwBE6uqA1voD2i2vEGcHKUwy"
}
],
links: [
{
"title": "LUKSO Docs",
"url": "https://docs.lukso.tech"
}
]
},
},
url: 'ipfs://QmXJxJePjm6A9TSC4m32GN6h3PknVY2C4HqNaBEF6EeuGB'
}
*/