The NFT

NFT.Kred connects social interaction with the blockchain, providing a personalised, shareable, transferable token of appreciation. NFTs can be given personal meaning for your family, friends, and community, and become unique and valuable virtual goods in their own right.

Every NFT.Kred NFT tracks activity throughout its lifetime, threading together a disparate community with a common goal of enhancing social interaction and connectedness. Everyone an NFT touches becomes part of a new and unique thread.

Each NFT.Kred user has a collection in the application where they can sort and display their treasured interactions, moments, and memories.

Messaging and notifications are handled by SocialOS.

The API

NFT.Kred is a hybrid decentralised platform. The API provides a single, easy-to-use method to integrate applications with all the functionality of NFT.Kred.

It provides methods to:

  • Send and receive NFTs
  • Request an NFTs from another user
  • Like and comment on NFTs
  • Sell or auction collectable NFTs (normal or reverse auctions)
  • Design and mint your own custom NFTs
  • Track the history of payments, payloads, sales, and auctions

.

The Workflow

Register

You can register instantly with NFT.Kred using the signup page or by using the /register API. All you need is an email address and a password.

You will be sent a confirmation email with a code and a clickable link. You can either click on the link or provide the code back to the /confirm endpoint to complete your registration.

Create an NFT

The mint call allow you to create NFTs on your wallet. To create the NFT, users need to input a name, description, face and back images and choose a file. Once they are done with their choices and click on the 'mint' button. This will trigger an upload function behind the scenes, which will publish your unique instance NFT to the blockchain.

Each minted NFT comes with a Grab - a personal conversation stream - dedicated to the users that have held and forwarded the NFT. The Grab can be accessed by the /messages/{id} and post methods.

Send an NFT

The send call instantly sends the selected NFTs to the designated user on the NFT.Kred platform.

The transfer call sends a selected NFT to any user on the NFT.Kred platform, the POA network, or to any Twitter user, email address, or phone number. Transfers off-platform are reserved for 72 hours, and if not collected, return to the sender.

Sell or Auction an NFT

If you have a popular NFT you can offer it for sale or auction vile the sell and auction endpoints. Set your price (and the start and end times for an auction) and sit back and watch the action. Auctions can be either regular or reverse - in a reverse auction, the price ticks down from a starting point you set until it finds a buyer.

You can fetch current (or past) sales and auctions via the sales and auctions methods, and buy or bid for NFTs using the buy or bid methods.

The NFTs API method reflects each NFT's last sale price as a market value in addition to its face value.

Buying, Bidding, and Requesting NFTs

The process for buying an NFT offered for sale or in a reverse auction is straightforward. The user views the sales or auctions using /sales or /auction respectively, selects the desired NFT, and issues a /buy request.

The request checks that they have sufficient bare NFTs to pay for the purchase (it will not automatically spend customised NFT) and send the payment to the seller and place the purchased NFT in the buyer's wallet.

In the case of a regular auction, users can /bid on the NFT until the auction closes. Bids are checked at the time they are placed to make sure the user has sufficient funds. At the end of the auction period, the platform attempts to close the sale with the highest bidder, but if the bidder no longer has sufficient funds the closing is temporarily put on hold. The seller can wait for the bidder to arrange funds, or /cancel their bid and let the auction fall through to the next highest bidder.

A user can also /request a NFT from another user. Users can see any /requests for NFTs they own, and either /send the NFT by specifying the request number or declining the request.

Viewing Your Collection

The basic method for viewing your NFTs is /NFTs. This supports a variety of parameters so that you can specify exactly which subset of NFTs to view:

  • wallet the wallet containing the NFTs
  • batch the batch of minted NFTs
  • user the owner of the NFTs (if, for example, the user has multiple wallets)
  • creator the user who originally minted the NFTs
  • minted if true, shows only customised NFTs; if false, shows only bare NFTs
  • value filter NFTs by value
  • tag or tags *filter NFTs by tags (see tagging, below)
  • liked if the user has previously liked the NFT
  • flags show or exclude NFTs flagged for content
  • sort sort NFTs by value or last sale, circulation, likes, or last update time

The /given method can be used to view NFTs the user has previously given (sent, sold, or auctioned) to another user.

Tagging, Flagging, and Liking NFTs

Any NFT can be tagged by the current owner using the /tag method. Users can add and replace tags as they choose, and use the tags to filter their collection. Tags are retained on the NFT when it is transferred, though of course, the new owner can change the tags as they wish.

Any user can /like any NFT, and include an optional text message. The like count is included with the /NFTs information, and a listing of likes can be retrieved using /likes. Users can /unlike a NFT they have previously liked, but an NFT cannot be downvoted as such.

Since users can upload custom images to the face and back of their minted NFTs, a /flag method is provided to mark NFTs as questionable; a text message can be attached to provide details. /unflag can be used to remove flags placed in error or if the problem is corrected, and /flags can be used to list flagged NFTs.

Payloads and Wrappers

Any NFT can be customised to have a payload or wrapper (or both). This is typically done when the NFT is minted, but can be done at any time afterwards.

A payload provided with /mint or /supply is any valid JSON object representing something by the creator or sender of the NFT. For example, you might send an NFT offering a free hug, a LinkedIn connection, a cup of your coffee, or a day of your time volunteering with a charitable organisation. The receiver of the NFT would later call the /consume endpoint to redeem the payload.

The NFT.Kred platform doesn't attempt to enforce this in any way, but the entire process is public, so a sort of honour system applies.

Wrappers are opaque data attached to a NFT via /mint or /wrap. Unlike payloads, which are public, and where an NFT has only one payload, a single NFT may have any number of wrappers, and the number of wrappers is hidden from the end-user. Each time an NFT is transferred the outermost wrapper is removed.

Secret Payloads

This allows special events to trigger after an NFT has been transferred a certain number of times - like a game of pass-the-parcel - where the user who removes the last wrapper gets the hidden prize.

The simplest way to implement this is to provide a wrapper payload and the number of wrappers when minting a NFT; the gradual removal of the wrappers and the final reveal will be handled automatically by the API. The payload is signed and encrypted when it is created, and when eventually unwrapped both the signature and the encryption key are revealed. This means that users can robustly verify that the previously encrypted payload matches the now revealed payload.