Monetization
Alpha Version: NFT based access. Rental only. No revenue split
Our initial version of monetization requires three unique pieces all on-chain. We are also framing this with NFT creation and ownership for this alpha. In the future, NFTs as the delivery vehicle for unlockables won't be the only option and a revenue split between creator and owner will also be an option.
Here are the three steps:
Create a Content NFT
The Creator creates a single NFT and upgrades it with unlockable content. We will call this the Content NFT.Creator enables monetization
Second step is the Creator Payload where the NFT creator sets the rules for monetization of their unlockable creations. Payload must be signed and uploaded through the Darkblock API which will then be stored on Arweave.Access NFT by Owner
Finally, an Access NFT can be sold or created dynamically by NFT owners that reference the Content NFT and include a time-based trait.
Step 1: Create a Content NFT
Deploy an NFT contract that creates a Content NFT. This Content NFT needs to contain Darkblock unlockables.
The example below shows a Solana NFT Token created using the Thirdweb platform.

Once the NFT is created, log into app.darkblock.io, and upgrade the NFT with unlockable content. In the example below, we added a 3D model, comic book, and behind the scenes image as unlockables.

An example of Content NFT with Darkblocks: https://app.darkblock.io/platform/sol/nft/FbNXShA3EPQawwSMLfHGcHvSyNZfti8taCzTxNBtjXDZ
Step 2: Creator enables monetization
Deploy creator controlled configuration of monetization. Use the API to push a configuration.
This is a two step process:
2.1 Creator constructs a signature with our tool
2.2 Creator takes that signature and additional parameters and posts to our API to essentially "register" the NFT with a monetization configuration.
This configuration is basically the rules for monetization that the creator gets to control.
2.1
You will need:
CONTENT NFT INFO
- NFT ID of the Content NFT (Token ID)
- NFT Creator address (wallet of Creator)
- Platform (currently only Solana supported)
MONETIZATION SETTINGS
- Monetization Type (rental only for this alpha)
- Max-Period (minutes only for this alpha)
- Min-Price (Minimum price to access all the Darkblock unlockables of the Content NFT)
- Min-Price-Currency (USD only for this alphaa)
COMING SOON:
- Royalties (Initial split of which wallet gets which portion of rental - not yet available)
We have this easy to use signature tool: (test signature form)

First click Generate Signature button to connect the creator wallet.

Then click Generate Signature again to open up your wallet for the message to be signed.

The signature will be available on screen as well as the config. You'll need both of them for the second step.

BTW, you can also do this task programatically. Sample payload to hash and sign, can have multiple config objects
const payload = [{
"NFT-Id": "FijaYEdpF1m5Eiph7M1Pg7PmhSSZA22TujaKrj1hEEDx",
"NFT-Creator": "9sUnEsLPa6uENMd6MBFMWYXAXDdTadj4nnxSoX93gg8t",
"Platform": "Solana",
"Monetization-Type": "Rental",
"Min-Price": "1",
"Min-Price-Currency": "USD",
"Max-Period": "1440",
Royalties: { '9sUnEsLPa6uENMd6MBFMWYXAXDdTadj4nnxSoX93gg8t': '50' }
}];
let payloadStr = JSON.stringify(payload);
const data = payloadStr.replace(/\s+/g, "");
const dataHash = await hash(data);
const encodedMessage = new TextEncoder().encode(dataHash);
// make sure wallet is connected first
const signedMessage = await window.solana.signMessage(encodedMessage,"utf8");
const signature = btoa(String.fromCharCode.apply(null, signedMessage.signature));
2.2
After you have the signature and config settings. You then need to post the creator payload through our API endpoint.
YOU WILL NEED AN API KEY TO POST THE CREATOR PAYLOAD.
After you have a key, visit our Monetize Endpoint and begin to craft your payload.

Enforced at the NFT level for all Darkblocks accessible by that NFT.
You will need:
- Configs (this is the Configs string from the Signature page)
- Signature (this is the Signature from the Signature page)
- NFT ID (this is the Content NFT token ID from the first step)
- Platorm (Solana, only platform supported today)
- NFT Creator (this is the wallet address of the Content NFT creator)
Post and you should receive a success message if payload is correct and accepted.
Congrats, your NFT is now registered for monetization.
Supported type today: Rental
Step 3: Access NFT by Owner (or creator if they are also the owner)
Deploy an NFT contract that creates Access NFTs.
- Must be deployed by the Content NFT owner.
- Must reference the Content NFT and the monetization type.
Examples:
- monetization-type: rental:1440m (only Rental available and days(d), minutes(m) and seconds(s) supported)
- content-nft: FijaYEdpF1m5Eiph7M1Pg7PmhSSZA22TujaKrj1hEEDx:Solana (the address of the Content NFT, colon, and the Platform name (only Solana available now) )
- creation-date: 1667826856 (You can get epoch time here: https://www.unixtimestamp.com)
An Access NFT can be created by the Content NFT owner (or creator if they are also the owner). This Access NFT, if constructed correctly, will give any holder of the Access NFT access to unlockables associated with the Content NFT.
There are three unique pieces of information that need to be created as TRAITS with the Access NFT. Provided the Creator Payload is done correctly, and the Access NFT obeys the rules set in it, any Access NFT owner will have rental access to unlockable content.
Below is an Access NFT created with Thirdweb's tools.

Here is an example of an Access NFT. This NFT grants access to unlockables for 5 minutes. After that time period is over, the unlockables are no longer available and the Access NFT acts as a receipt.

https://app.darkblock.io/platform/sol/nft/9ZFjzxPvmmZDnib5jRD8oHEEX7UJV7Y4te8QCWe5Wyy8
(Enforcement of payment splits, mechanism to pay out to creators and protocol TBD.)
API (and protocol) associates the Darkblocks from the Content NFT to the Access NFT so all we need to do is embed the viewer for the Access NFT.