Skip to main content

Registering Content

banner

$KOII can be earned on any content where Proofs of Real Traffic are submitted.

In order to mine new KOII tokens, each piece of content must be registered by paying a small fee in KOII. The fee can either be paid upfront, which costs less, or it can be paid after KOII has already been earned, in which case the fee will scale to the total earned.

Registration Fees

Up Front - Small fee, fixed price, but must be paid in advance of any Proof of Real Traffic

Lazy - Larger Fee, scales to the total attention the content has received so far

info

Need some KOII? Check here to airdrop some KOII into your wallet.

Content Types

The network is designed to track content from any source and can be configured to credit app developers by specifying an application key. If no application key is specified, the registrar of the content ID receives all rewards.

banner

Any piece of content can be registered for attention mining by constructing a URI like the one above, where the network key, application key, and content id contain valid data.

Supported Networks

The K2 release will support a wide range of network prefixes, including ETH, AR, SOL, HTTP://, MATIC, and more. In general, token symbols can be used to specify layer one blockchains, and web URLs can be specified using the HTTP prefix.

Recipients SDK Tool

We provide an SDK tool to help you easily register your content. Follow the steps to install and use it:

First, create a new Node.js project and install @_koii/k2-recipient-sdk

npm i @_koii/k2-recipient-sdk

or

yarn add @_koii/k2-recipient-sdk

Then get a Koii wallet and some KOII in your wallet, which the attention reward will be collected. Check about the Koii CLI tool to quickly generate one and airdrop some KOII.

Example

For Arweave NFT:

Put your Arweave wallet at the root of your project first, then:

registerArweave.js
const { registerArweaveNFT } = require("@_koii/k2-recipient-sdk");
const jsonfile = require("jsonfile");

async function main() {
const wallet = jsonfile.readFileSync("ar-wallet.json");
const recipientDataArweave = await registerArweaveNFT(wallet, {
contentRegistryId: "<Your Arweave content transaction ID>", // Arweave transcation id
k2PubKey: "<Your Koii Wallet public key>", // Koii wallet public key
});
// example:
// const recipientDataArweave = await registerArweaveNFT(wallet, {
// contentRegistryId:"05xEYtfjKwZ_tEIN5Yssg5-7HhQ_52Fwjs7JgCI0cOM", // Arweave transcation id
// k2PubKey: "4HV3retNdHCnNR4Q9KKdug2qQXTKvd8PJCehGJ6gTUKN", // Koii wallet public key
// });
}
main();

For IPFS content:

Please provide a metadata.json file and put it at the root:

metadata.json
{
"name": "<Content-name>",
"description": "<Content description >",
"author": "<author>",
"githubURL": "https://github.com",
...
}

Then provide a image as the thumbnail of your content.

Prepare your Koii wallet and check the sample code:

registerIPFS.js
const { registerIpfsNFT }  = require("@_koii/k2-recipient-sdk")
async function main() {
// IPFS recipient Signing
//-----------------------------
const wallet = jsonfile.readFileSync("ar-wallet.json");
let recipientsDataIPFS = await registerIpfsNFT(
{
privateKey: new Uint8Array(wallet), // Or Copy & Paste your Koii wallet json file content here
image: "./scene-9.png", // Your content image here
metadata: "./metadata.json", //Your metadata.json
},
"eyJhbGciOiJI..." // Web3.storage API token
);
}

main();