Drops and Metadata

A drop refers to an edition of individually collectible NFTs. In other words, if a song recording has a limited edition of 100, a drop refers to the whole collection of 100 NFTs. When a user purchases from a drop, they're buying one of the 100 NFTs from the drop.

Drop Creation

Drops are created and built up a little at a time, which is often necessary to create drops consisting of many file uploads. Progress is saved off-chain as you complete steps. Once the drop is created, you still need to publish the drop and set the release date to enable sales and marketplace exchange.

Blockchain Deployment and Fees

Greenruhm uses a mint-on-demand model. The drop itself does not get published to the blockchain until somebody tries to buy one. At that point, the NFT is minted on-demand, fees are paid by the buyer, and the NFT is delivered to the buyer's wallet.

This is how we keep drop creation free for creators and prevent paying fees to mint NFTs that may never get sold, the same way print-on-demand services allow musicians to sell merch to fans without the risk of pre-paying for a big production run before the artist has a good understanding of buyer demand.

const drop = createDrop(params);

Drop Metadata

  • title - The drop title. This should be short enough to fit on one or two lines of text on a mobile device. (Required)

  • dropId - A unique identifier for the drop. This will be returned when you call createDrop(). (Automatically generated)

  • posterImage - 1080x1920 preferred. (Required)

  • royalty - The percentage of money from a secondary market sale allocated to pay royalties. (Required)

  • description - The drop description. This can span multiple paragraphs. (Recommended)

  • embedImage - Image used to represent the drop on social networks like Twitter and Instagram. Square and wide aspect ratios work best. (Recommended)

  • video - 1080x1920, 9:16 recommended. Vertical looks best on Greenruhm. Standard wide 1080p is also supported. (Optional)

  • externalLink - A link to the official drop website. (Optional)

  • attributes - See OpenSea.io Metadata Standards for details. (Optional)

  • issuer - the username who is issuing the drop (note: the current user must be authorized to create drops on behalf of the issuer). (Optional - defaults to the currently signed-in user)

  • collaborators - A list of collaborator usernames. (Optional - defaults to include only the issuer)

  • displayArtistName - A string used for the display credit for a drop., e.g. "Busta Rhymes feat. Kendrick Lamar". (Optional - defaults to the drop creator displayName)

  • splits - A list of split recipient usernames with corresponding royalty shares. (Optional - defaults to your standard platform split, with the remainder going to the creator)

  • releaseDate - JavaScript epoch time. The day and time a drop should become active. (Optional - defaults to now.)

  • closeDate - JavaScript epoch time. A day and time after which no more NFTs can be minted from the drop. (Optional, defaults to null)

  • isMintingActive - True if the drop has been released, minting is not currently paused, the closeDate has not yet been reached, and new serial numbers are available for minting. (Calculated on-demand)

  • editionLimit - Caps the edition at a specific number, after which no more serial numbers can be created. Set to 0 to make it an open edition (no current limit). Open editions can become limited editions by setting a limit at any time. (Optional - defaults to 0)

  • Custom files - Greenruhm supports any file format, and custom programming for NFTs using standard web technology like JavaScript, HTML, CSS, WebAssembly, WebAudio, and WebXR. (Optional)

Note: Timestamps are stored in Unix epoch time on the blockchain. The JavaScript Greenruhm Connect SDK takes and returns them in JavaScript epoch time for convenience.

Drop Methods

drop.setEditionLimit()

drop.setEditionLimit(Number) => Promise({ walletId, editionLimit })

Last updated