Skip to content

Collections

client.collection covers the full collection lifecycle. The auto-generated REST schema is at REST API → Collection — this page is a usage overlay.

const res = await client.collection.list({
blockchains: [8453, 84532],
testnet: false,
types: ["OpenEdition", "LimitedEdition"],
status: "Live",
page: 1,
limit: 20,
sortBy: "CREATED_DATE",
sortDirection: "DESC",
});

blockchains, testnet, and types are required. Unbounded listing isn’t supported.

const res = await client.collection.create({
name: "My Edition",
description: "An open edition collection",
type: "OpenEdition",
logoMediaId: "media-uuid",
image: "https://...",
contract: {
chainId: 8453,
name: "MYED",
symbol: "MYED",
standard: "ERC721",
},
});

Creates a draft collection and either creates a new draft contract (via contract) or binds to an existing one (via contractId). Not both.

Optional: royalty: { address, amount } and tokenManager (third-party manager address).

const res = await client.collection.get({ highlightId });

Public for Live collections; requires ownership for Draft.

After create, fill in type-specific fields via the matching endpoint:

await client.collection.updateEditionDetails({
highlightId,
edition: { size: 0, name, description, imageMediaId, attributes },
});
await client.collection.updateSeriesDetails({
highlightId,
series: { isCollectorsChoice: false, size: 50, assetsMediaId },
});
await client.collection.updateGenerativeDetails({
highlightId,
generative: {
size: 100,
codeMediaId,
editionType: "Limited",
captureSettings: {
trigger: "Delay",
delay: 5000,
viewPortWidth: 1000,
viewPortHeight: 1000,
},
},
});

Only the update endpoint matching the collection’s type is valid. Others return InvalidTypeSpecificDetailsError.

Once a drop is complete (sold out, ended, or manually frozen), publish the metadata directory to Arweave:

await client.collection.finalizeBaseUri({ highlightId });

Idempotent — safe to call repeatedly.

These sub-operations live on the same client.collection sub-client but are documented separately:

StatusMeaning
DraftConfigured, not yet deployed
InProgressDeploy transaction submitted
LiveContract deployed; sales are claimable
MigratedImported from an external source
DisabledFrozen; no further mints