Digital Content Control Based on Nonfungible Tokens

Techniques are described, as implemented by computing devices, to provide digital content to users through use of nonfungible tokens (NFTs). This is performed by leveraging a blockchain such that digital content associated with an item is made available to encourage the user to interact with NFTs on the service provider platform (e.g., discounts, NFT listing functionality, automatic initiation of NFT transfers, and so forth) based on a user's possession of the NFT.

BACKGROUND

Service provider systems maintain millions of service provider accounts for millions of users that are accessible via a network using various types of computing devices. Additionally, these service provider systems are tasked with providing ever increasing amounts of digital content in support of numerous digital services that are made accessible to users of these service provider accounts. To support this, service provider systems consume vast amounts of computational resources. These computational resources are implemented using multiple servers, network connection devices, and so on that require significant amounts of energy to operate. As a result, inefficiencies in the maintenance of the accounts as well as digital content and digital services made available by these systems can lead to major costs incurred by both the service provider system and the environment.

Inefficiencies in the use of computational resources can come in many forms, such as by providing erroneous digital content. Service provider systems, for instance, often rely on outdated data. Consequently, the digital content provided is irrelevant to a first user, but in some instances is relevant to a second user that did not receive the digital content. Thus, computational resources are wasted on providing the first user the irrelevant digital content erroneously. Additionally, sending a user a large amount of irrelevant digital content can result in undesired consequences to the service provider system, such as a decrease in user interaction with subsequent digital content and a decrease in user satisfaction with the service provider system.

SUMMARY

Techniques are described, as implemented by computing devices, to control digital content output based on nonfungible tokens (NFTs). This is performed by leveraging a blockchain such that control of digital content by a computing device is based on an entity's possession of an NFT.

In one example, data related to an NFT is obtained by a service provider system. The data is obtained, for instance, from a user input identifying the NFT. This data is used to generate a blockchain query to determine what blockchain account holds the NFT. Data from the blockchain query can be leveraged to determine if there is a service provider account related to the blockchain account that holds the NFT. In instances where a related service provider account is determined, digital content is exposed to that service provider account. The described blockchain queries are leveraged to prevent delivery of irrelevant digital content to be offered to or accessed by a user that does not hold the NFT, such as a previous holder of the NFT. This prevention results in increased efficiency of computer resources used to control digital content output.

In a further example, blockchain query data, service provider account data, and user input data are leveraged to generate digital content. The digital content is generated for the service provider account once a query is performed to determine that the blockchain account related to the service provider account is in possession of the NFT. Once the digital content is generated, the service provider system exposes the digital content to the related service provider account. After exposure to the digital content, the digital content may be accessed once possession of the NFT is verified. In one such example, this verification involves user input of blockchain keys. The digital content includes functionality that encourages the user to interact with NFTs on the service provider platform, e.g., discounts, NFT listing functionality, automatic initiation of NFT transfers, and so forth. This digital content can be specific to the NFT, specific to the user, or specific to both.

In this way, the techniques described herein to control generation and exposure of digital content to the relevant user in a manner that is computationally efficient and promotes user satisfaction with the service provider system.

DETAILED DESCRIPTION

Overview

Service provider systems are tasked with communicating vast amounts of digital content in support of digital services that are made available via these systems. Consequently, the service provider systems consume significant amounts of computational resources in the generation and communication of this digital content. In some instances, however, inefficiencies occur through erroneous communication of digital content and thus result in needless consumption of computational resources as well as user frustration caused by receipt of the erroneous communications.

Accordingly, techniques are described that address these challenges and thus improve operation of computing device that implement generation and communication of digital content by leveraging a blockchain. Nonfungible tokens (NFTs) are a type of token maintained on the blockchain. NFTs have a unique signature such that they cannot be traded or exchanged for one another. In some embodiments, an NFT corresponds to an item (e.g., a physical item or digital content) and describes that item. Thus, the NFT functions as a “twin” of the item, possession of which is trackable using a blockchain. To leverage this “twinning,” the service provider system is configured to provide digital content based on possession of the NFT as verifiable via the blockchain.

Items with a twinned NFT can be maintained on and off the blockchain. A twinned item is configurable as a physical item (e.g., a physical object such as a wristwatch, item of clothing, product component) or as digital content, e.g., a digital image, digital audio, digital media, digital artwork, a separate NFT, applications, and so forth. Twinning involves storing data in an NFT of a twinned item that describes the item, itself. A service provider system is configured to leverage this twinned NFT data in support of a variety of functionality. In an instance in which the item is a physical item, the twinned NFT data describes physical characteristics of the physical item, e.g., from scanning the item in two or three dimensions using a physical scanner to generate a “fingerprint” of the item. In instances in which the item is digital content, the twinned NFT data describes the content itself, e.g., the data forming the digital content, as a hash of the data of the digital content, etc.

In one example, the service provider system generates digital content for communication to an entity that possesses the twinned NFT. This digital content is generated, for instance, based on previous or current transaction data, blockchain query data, NFT data, and so forth. The digital content, for instance, includes an offer redeemable by the service provider system, e.g., a discount for a subsequent transaction involving that item or a different item via the service platform thereby reducing a transaction cost. In this way, the service provider system encourages retention of the NFT and thus functionality made available via the NFT, such as to verify the corresponding item.

In this example, the service provider system is configured to obtain previous transaction data involving the twinned NFT, the transaction data indicating a first blockchain account that held the NFT. In some instances, however, the first blockchain account that held the NFT has transferred the NFT to a second blockchain account without notice to the service provider system, e.g., the transfer was not initiated by the service provider system. Accordingly, the service provider system is configured to query the blockchain to determine what blockchain account holds the NFT. Based on a response from the blockchain to the blockchain query, the service provider system determines whether the second blockchain account holds the NFT. Subsequently, a determination is made by the system as to whether a second service provider account of the system is associated with the second blockchain account. If so, the service provider exposes the digital content to the second service provider account. As such, the service provider system leverages the blockchain to improve accuracy in exposure of digital content by determining the NFT holder before exposure, preventing the service provider account of the first blockchain account to be exposed the digital content erroneously and improving operational efficiency of the computing device in providing this digital content.

In some subsequent examples, the service provider system is configured to verify possession of the NFT. This verification is performed in response of receipt of a user input requesting access to the exposed digital content. The service provider system requests data related to the NFT to verify that the entity of the service provider account holds the NFT, e.g., using blockchain keys. After successful verification, the service provider system permits access to the digital content via the service provider account. In this way, the service provider system leverages the blockchain to improve accuracy in access to digital content by verifying ownership before providing this access. Further discussion of these and other examples is included in the following sections and shown in corresponding figures.

In the following discussion, an example blockchain environment is described that employs the techniques described herein. Example procedures are also described that are performable in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.

Example Environment

FIG.1is an illustration of a blockchain environment100in an example implementation that is operable to employ techniques described herein. The blockchain environment100includes a blockchain system102, a service provider system104, and a plurality of client devices (represented as client devices106, . . . ,108) that are communicatively coupled, one to another, via a network110.

Computing devices that implement the blockchain environment100are configurable in a variety of ways. A computing device, for instance, is configurable as a desktop computer, a laptop computer, a mobile device (e.g., assuming a handheld configuration such as a tablet or mobile phone), IoT device, a wearable device, AR/VR device, a server, and so forth. Thus, a computing device ranges from full resource devices with substantial memory and processor resources to low-resource devices with limited memory and/or processing resources. Additionally, although in instances in the following discussion reference is made to a computing device in the singular, a computing device is also representative of a plurality of different devices, such as multiple servers of a server farm utilized to perform operations “over the cloud” as further described in relation toFIG.14.

The blockchain system102is implemented by a plurality of nodes112. Nodes112are a runtime implemented using processing, memory, and network resources of respective computing devices114that operate as the infrastructure of the blockchain116. As part of this, the nodes112store, communicate, process, and manage data that makes up the blockchain116. Nodes112are interconnected as illustrated inFIG.1to exchange data via the network110, e.g., as a peer-to-peer network in a distributed and decentralized manner.

The blockchain116is formed using a plurality of blocks120, illustrated inFIG.1as including respective block identifiers (IDs)122and transaction data124. Transaction data124of the blocks120includes batches of validated transactions that are hashed and encoded. Each block120includes a cryptographic hash of a prior block120in the blockchain116, thereby linking the blocks120to each other to form the blockchain116. As a result, the blocks120cannot be altered retroactively without altering each subsequent block120in the blockchain116and in this way protects against attacks by malicious parties.

In order to generate the blocks120for addition to the blockchain116, a node112is implemented as a “miner” to add a block of transactions to the blockchain116. The other nodes112of the blockchain system102then check if the block of transactions is valid, and based on this, determine whether to accept or reject this data. If valid, the block of transactions is stored as transaction data124along with a block ID122for a respective block120, e.g., is stored “at the end” or “at the top” of the blockchain116along with a hash of a previous block in the chain. The nodes112then broadcast this transaction history via the network110for sharing with other nodes112. This acts to synchronize the blocks120of the blockchain116across the distributed architecture of the blockchain system102. Other types of nodes112are also included as part of the blockchain system102. In one such example, full nodes are nodes that store an entirety of the blockchain116, e.g., locally in computer-readable storage media of a respective storage device118. Other types of nodes are also employed to implement additional functionality to govern voting events, execution of protocol operations, rules enforcement, and so forth.

The blockchain system102implements a virtual machine126that is representative of a diverse range of functionality made possible by leveraging the blockchain116. In a first such example, the virtual machine126implements a distributed ledger128of accounts130and associated balances132of those accounts130. Distributed ledgers128support secure transfer of digital assets (e.g., tokens or coins of cryptocurrencies) between accounts130without management by a central authority through storage as part of the transaction data124of the blockchain116. Through synchronized and distributed access supported by the blockchain116as described above, changes to balances132(e.g., a number of tokens) are visible to any entity with access to the blockchain116. Techniques are also implemented to support management of the balances132across the accounts130, e.g., to enforce rules that a respective account130does not transfer more coins than are available based on a balance132specified for that account130.

In another example, the virtual machine126implements a distributed state machine134that supports application136execution. The distributed state machine134is implemented along with the transaction data124within the blocks120of the blockchain116such that the blocks describe accounts and balances as described above for the distributed ledger128. The transaction data124also supports a machine state, which can change from block to block of the blockchain116. In one example, the application136is executable as part of a “Turing-complete” decentralized virtual machine that is distributed across the nodes112of the blockchain system102. As Turning-complete, the application136is computationally universal to perform computing device operations, e.g., logic or computing functions. Thus, the application136is executable by a processing system of a computing device as software that is storable in a computer-readable storage media of the nodes112to perform a variety of operations.

An example of an application136that is executable as part of the distributed state machine134is a smart contract138. A smart contract138is executable automatically and without user intervention (or with partial human interaction as inputs when desired) by the nodes112of the distributed state machine134. Execution of the smart contract138includes obtaining data from a specified data source (e.g., devices, APIs, and so forth that are accessible via the network110), and based on this data, initiating one or more operations based on conditions described in the smart contract138. In one example, the smart contract138is a type of account130that includes a balance132and initiates transactions based on conditions specified by the smart contract138, e.g., to support automated escrow and other functionalities. A variety of other examples are also contemplated that support implementation of any executable operation by a computing device using software.

Cryptocurrencies (e.g., coins of the cryptocurrency) are the native asset of the blockchain116, and tokens are created “on top” of these blockchains. In an example of a token, the smart contracts138implement non-fungible tokens (NFTs). NFTs include digital assets that are provably unique and as such cannot be duplicated or divided. As such, NFTs are not exchanged as having a same value as coins in cryptocurrency, but rather are digital assets having identifying information recorded as part of the smart contract138. This identifying information is immutably recorded on that token's blockchain116and thus ownership of the token is also recorded and tracked. A variety of information is storable as part of the digital content represented by the NFT, examples of which include digital images, digital media, digital content, executable instructions of an application136as described above, secure file links, in-game tokens, digital artwork, and so forth. Other examples of tokens are also contemplated that are fungible and as such are interchangeable with each other.

The client devices106,108include respective client blockchain modules140,142that are representative of functionality of the client devices106,108to interact with the blockchain system102. An example of this functionality includes management of respective crypto wallets144,146, e.g., in local storage devices148,150. The crypto wallets144,146store public and private cryptographic keys in this example that are used to support interaction with the blockchain system102, and more particularly respective accounts130of the blockchain system102, using respective user interfaces152,154.

The public key supports transactions to an address of the account130derived from the public key, which are stored as part of the blockchain116to memorialize the transaction as part of transaction data124. In one example, an address of an account130is generated by first generating a private key, e.g., using a randomization technique. The corresponding public key is derived from the private key and the address of the account130is then derived from the public key, e.g., as an entirety of the public key or as a shortened version of the public key. The private key is used to “unlock” transactions that are “locked” by the public key and gain access to the account130, e.g., access to coins, tokens or other information maintained as part of the transaction.

In one example, a transaction is initiated by the client device106with client device108. Data of the transaction is encrypted using a public key. The transaction is then signed by client device108using the private key which indicates that the transaction has not been modified, e.g., by encrypting the data being sent in the transaction using the private key. The transaction is then verifiable as authentic by using the public key included with the data. The nodes112use the accompanying public key to automatically verify authenticity that the transaction is signed using the private key. Transactions that fail authentication are rejected by the nodes112. Authentic transactions are used as part of transaction data124in minting blocks120by the nodes112that are added to the blockchain116, e.g., as part of the distributed ledger128. In this way, the virtual machine126of the blockchain system102supports a variety of functionality through use of the distributed ledger128, distributed state machine134, and/or other blockchain and cryptographic functionality.

The blockchain environment100also includes a service provider system104implementing a service platform156of digital services158, illustrated as maintained in a storage device160and are executable via a processing system. Digital services158involve electronic delivery of data and implementation of data functionality by computing devices to support a range of computing device operations. Digital services158, for instance, include creation, management, and dissemination of digital content via the network110, e.g., webpages, applications, digital images, digital audio, digital video, and so forth. The digital services158are also implemented to control access to and transfer of physical goods and services through corresponding digital content, e.g., sales, product listings, advertisements, etc. Digital services158further pertain to operation of computational resources (e.g., processing, memory, and network resources) of computing devices that support the access to and management of the digital content by the system.

Functionality of the client devices106,108to access the digital services158of the service provider system104is represented by respective client service modules162,164. The client service modules162,164, are configurable as browser, network-enabled applications, third-party plugins, and so on to access the digital services158via the network110.

The service provider system104also includes a content management system166. The content management system166by the service provider system104is configured to generate, expose, and/or control access to digital content168. The digital content may be controlled through use of an application136generated by the service provider system104and executed by the distributed state machine134. The service platform156, for instance, includes a digital service158configured to support transactions of items, e.g., physical items or digital content, using service provider accounts.

In the “twinning” example above, the NFT corresponds to an item (e.g., a physical item or digital content) and describes that item. Thus, the NFT functions to verify the item that is the subject to the transaction and as such increases value of the item through publicly verifiable ownership of the NFT. To leverage this “twinning,” blockchain queries initiated by the service provider system can be used to determine/verify ownership of the NFT. The data received from the blockchain queries provides the service provider system104with up-to-date data. This data is leveraged such that digital content168is exposed to the correct entity, and as such, improve the operation of the service provider system104.

Further, the digital content168is configurable to encourage retention of the NFT by an entity, such as a user, that owns the item. An example of this is configuring the digital content168to include an offer. The offer is redeemable by the service provider system104to encourage future interaction with the service provider system104, such as through a reduction in a transaction fee for a subsequent sale of the item or a different item via the service platform156. In this way, the digital content168encourages an entity that possess the item to also maintain possession of the NFT and thus retain an ability to verify authenticity of the item associated using the NFT. Further discussion of these and other examples is included in the following sections and shown in corresponding figures.

In general, functionality, features, and concepts described in relation to the examples above and below are employed in the context of the example procedures described in this section. Further, functionality, features, and concepts described in relation to different figures and examples in this document are interchangeable among one another and are not limited to implementation in the context of a particular figure or procedure. Moreover, blocks associated with different representative procedures and corresponding figures herein are applicable together and/or combinable in different ways. Thus, individual functionality, features, and concepts described in relation to different example environments, devices, components, figures, and procedures herein are usable in any suitable combinations and are not limited to the particular combinations represented by the enumerated examples in this description.

Digital Content Using NFTs

FIG.2depicts a system200in an example implementation showing operation of the service provider system104and client devices106and108ofFIG.1in greater detail as interacting with a digital-content listing with an associated NFT.FIG.3depicts a system300in an example implementation of initiating NFT interaction with a blockchain system102by the service provider system104of an NFT responsive to the transaction ofFIG.2.FIG.4depicts a system400in an example implementation showing transfer of the NFT on the blockchain116ofFIG.3in greater detail.FIG.5depicts a procedure500in an example implementation of initiating NFT interactions with the blockchain116.FIG.6depicts a system600in an example implementation showing generation of the digital content ofFIG.2in greater detail.FIG.7depicts a system700in an example implementation of digital content generation.FIG.8depicts a system800in an example implementation in which communications between the service provider system104, the blockchain system102, and a client device108are used to verify access to digital content based on possession of the NFT.FIG.9depicts an example implementation900of a computing device108requesting access to digital content168from the service provider system104.FIG.10is a flow diagram depicting a procedure1000in an example implementation in which digital content is exposed and accessed by a user based on possession of an NFT.FIG.11is a flow diagram depicting a procedure1100in an example implementation in which a service provider account is located, and digital content is exposed.FIG.12is a flow diagram depicting a procedure1200in an example implementation in which data is shared between computing devices for digital content access.FIG.13is a flow diagram depicting a procedure1300in an example implementation in which a determination that a blockchain account does not hold a NFT is made.

To begin in the illustrated example ofFIG.2, a service provider system104includes a service platform156having a service manager module202. The service platform156is configured to support transactions between client devices106,108, e.g., by implementing digital services158that are executable to transfer ownership and/or possession of an item204from client device106to client device108. The digital services158are accessible via the network110using respective client service modules162,164(e.g., browsers, network-enabled applications, plug-in modules, and so forth) executable by respective client devices106,108.

Examples of digital services158implemented by the service platform156in support of transactions are represented as a listing module206, a transaction module208, and an account manager module210. The listing module206is configured to generate a digital content listing212indicating an item204is available for purchase/transfer via the service platform156. The listing module206, for instance, exposes functionality that is accessible via the network110by the client device106to generate a digital content listing212indicating availability of the item204. The digital content listing212is then exposed for access via the network110to potential purchasers, e.g., to client device108as a webpage, display in a dedicated application, and so forth.

The client device106, through the client service module162, transmits a request, which is received by the listing module206to list the item204using digital content. The request specifies information describing the item204, e.g., a textual description214and digital image216, for inclusion as part of the digital content listing212. The client device106also identifies a provider of the item204, e.g., as a seller218. The digital content listing212, once generated, also includes an option220that is user selectable via a user interface to initiate the transaction, e.g., to “buy” or otherwise transfer possession and/or ownership of the item204. The item204is then listed using the digital content168.

The digital content listing212is configurable to include a variety of other information, such as to include a badge222indicating that ownership of an NFT224corresponding to the item204has been verified. The service provider system104, for instance, employs a blockchain interaction module226to access functionality made available via the blockchain116implemented by the blockchain system102. An example of this is a blockchain query module228that is configured to determine and/or verify ownership of the NFT224associated with the item204by querying the distributed ledger128maintained as part of the blockchain116, e.g., that the NFT224“twin” of the item204is associated with a particular blockchain account130.

In the example ofFIG.2, the NFT224is illustrated as included as part of a transfer of ownership/possession of the item204. The NFT224, for instance, is communicated to the client device108, such as via user input of a blockchain key or an NFT identifier (ID). However, in at least some instances the NFT224is not communicated to the client device108but rather is detected via transaction data on the service platform156, and/or identified by leveraging the blockchain116. Alternatively, it may be determined by the service provider system104that a twin NFT224has not yet been minted for the item204.

The blockchain interaction module226also includes functionality represented by an NFT interaction manager module230to manage additional NFT interactions, including functions to initiate minting and transfer of the NFT224between blockchain accounts.

The account manager module210is representative of functionality to manage a plurality of service provider accounts232and information associated with the accounts. The service provider accounts232are associated with respective users to support transactions and interact with functionality made available via the service platform156. This includes service accounts IDs234that uniquely identify the service provider accounts232and transaction history data236identifying transactions performed using respective accounts, e.g., from a service provider account associated with client device106to a service provider account associated with client device108. The transaction history data236, therefore, is configured to include a variety of information, examples of which include blockchain account ID238used for cryptographic transactions, e.g., to receive an NFT224as part of the transaction, NFT data240describing the item204and/or transaction that is to be used to mint the NFT224and/or transfer the NFT224to a different blockchain account, and so forth.

The service manager module202, for instance, generates the digital content listing212responsive to inputs received from client device106via the network110. Another client device108, after viewing this digital content listing212via the network110, initiates a transaction to obtain the item204, e.g., through selection of the option220. The transaction transfers ownership of the item204(e.g., responsive to verification of a transfer of funds which may include cryptographic coins or other conventional monetary currencies), which is recorded as part of transaction history data236. The transaction history data236thus memorializes the transaction and is usable as a basis to initiate the addition of block120for the transfer and/or minting of the NFT224on the blockchain116. Accordingly, NFT224can be leveraged to control exposure and access to digital content168in the following discussion. Thus, this data generated by the transaction module208responsive to completion of the transaction of the item204is received and stored by the account manager module210as part of the service provider account232.

Upon completion of the transaction, the service provider system104is configured to initiate minting and/or transfer of the NFT224by the blockchain system102. The account manager module210identifies the stored transaction data involving the item204(block502), such as the service provider account232associated with the client device108(and more particularly a user interacting with that device) that is to obtain ownership of the item204in the previous example. From this, the account manager module210also identifies a blockchain account ID238corresponding with a blockchain account130that is to receive the NFT224. The account manager module210is further configured to determine whether an NFT224is associated with the item204, i.e., the item204has a twinned NFT (block504). Based on this determination, an NFT request306is generated to mint or transfer NFT224to the blockchain account130by the NFT interaction manager module230. Additionally, the NFT interaction manager module230may initiate minting/transfer of the NFT224responsive to, for instance, user request, receipt of currency/a voucher for NFT minting, automatic determination, and so forth.

In an NFT minting example, an NFT minting initiation module302is configured by the NFT interaction manager module230to interact with the blockchain system102to cause the NFT224to be minted as part of the blockchain116(block506). The NFT minting initiation module302initiates the minting by transmitting an NFT request306to the blockchain system102to mint NFT224for blockchain account130.

In an NFT transfer example, from the transaction history data236, the account manager module210identifies an additional service provider account related to a blockchain account406that holds the NFT224before the transfer and forfeiting of the NFT224to the receiving blockchain account130. Then, an NFT transfer initiation module304is configured to interact with the blockchain system102to cause the NFT224to be transferred from the forfeiting blockchain account406to the receiving blockchain account130of the blockchain116(block508), as illustrated inFIG.4.

In this transfer example, a first state402of the distributed ledger128illustrates that the forfeiting blockchain account406holds the NFT224in the balance408, along with other NFTs410and other blockchain tokens, and that the receiving blockchain account130holds NFTs412and other blockchain tokens in the balance132. The NFT transfer initiation module304transmits an NFT request306to the blockchain system102to transfer the subject NFT224from the forfeiting blockchain account406to the receiving blockchain account130.

In some instances of the minting and transfer examples, NFT request data308is generated by the NFT interaction manager module230to be transmitted with the NFT request306(block510). The NFT request data308is configured to identify a variety of criteria with respect to the transaction, e.g., identification data of the item, a generated application136, digital content that provides functionalities to the owner of the NFT, and so forth. The NFT request data308is also configurable to include options for the NFT request306. For example, as part of initiating a request to mint, an option is provided to specify which blockchain system102from a plurality of blockchain systems, on which, the NFT224will be maintained. The NFT interaction manager module230is configurable to display a user interface via which user inputs are received to indicate which options of the NFT request data308are to be selected for transmission with the NFT224. The NFT interaction manager module230is further configurable to provide an option to specify that the NFT224is to be output for user selection on the service provider account232. For instance, the NFT interaction manager module230identifies a brand in the data describing the item204that does not match the service provider account232, and accordingly prevents output of an option for collecting royalties to the service provider account232. In some instances, at least part of the NFT request data308is automatically decided by the NFT interaction manager module230. A variety of other instances are also contemplated of request data308for the NFT request306. The NFT request data308may be included in the transaction data124of the NFT.

After the NFT request306configured to initiate minting/transfer of the NFT224is transmitted to the blockchain116, block120is minted by the blockchain116as described above in relation toFIG.1. As a result of successful minting of block120, the subject NFT224is successfully minted/transferred to the blockchain account130. In the transfer example, this is illustrated in the second state404of the distributed ledger128, showing that the NFT224has been received by the receiving blockchain130. As a result of both the minting and transfer example, the NFT224is held in blockchain account130as part of the distributed ledger128. The NFT224is accessible using a private key maintained in a crypto wallet146of the owner of the NFT224. The transaction data124is minted by nodes112of the blockchain system102and through this is incorporated within a block120of the blockchain116. Accordingly, the NFT224is recorded in an irreversible and tamper-proof manner in the distributed ledger128.

The NFT request data308and resulting data of the NFT request306, such as block ID122, is storable in the service provider storage device160for subsequent use by the service provider system104(block512). The service provider system104, for instance, receives an indication from the blockchain116that the NFT request306was completed (block514). As such, the NFT interaction manager module230notifies the user via the service provider account232that the NFT is associated with their blockchain account130(block516). The notification is output in a variety of ways, e.g., instance message, text, email.

FIG.6depicts an example showing operation of the content management system166in greater detail. The content management system166in this example is configured to generate and expose digital content168for access by the client device108. Functionality of the content management system166is represented by a content generation module602configured to generate the digital content168, a communication control module604configured to control communication of the digital content168to the service provider account232, and a content execution module606configured to implement functionality of the digital content168.

As shown in the example ofFIG.7, the content management system166includes a recipient determination module702that is configured to determine a service provider account232to receive the digital content168. Functionality to assist in doing so includes a service provider account query module704, a blockchain account query module706, and an NFT query module708that are configured to leverage information made available via service provider accounts232, blockchain accounts130, and NFTs224, respectively.

In a first example, the service provider account query module704is configured to query service provider accounts232and more particularly transaction history data236associated with those accounts. This is performed to locate information usable to determine “who” is to receive the digital content168, e.g., which accounts involve transactions involving particular items204and/or NFTs224(blocks1002and1302). For example, this is usable to determine which items204and/or NFTs224have been a subject of a transaction using corresponding service provider and blockchain accounts and based on this configure the digital content168for corresponding NFTs based on these items.

The blockchain account query module706is configured to leverage information made available via blockchain accounts130. Continuing with the first example above, the blockchain account query module706queries the blockchain116to determine whether the corresponding NFT224is still possessed/owned by a blockchain account130referenced by the service provider accounts232(blocks1004and1304). If so, generation and communication of the digital content168continues.

If the corresponding NFT224is not possessed/owned by a blockchain account130referenced by the service provider account232, various embodiments are considered (block1306). In one embodiment, the content management system166prevents the digital content168from being generated and/or exposed to the service provider accounts232(block1308). In a second embodiment, the content management system166identifies a second blockchain account that holds the NFT224(block1310), determines a second service provider account associated with the second blockchain account (block1312), and responsive to determining the second blockchain account holds the NFT, exposing the digital content to the second service provider account (block1314), as similarly described below in the second example. In a third embodiment, a second transaction is detected on the service platform156involving NFT224and a second service provider account (block1316). The content management system then proceeds as described above in the first example by identifying a blockchain account associated with the second service provider account (block1318), determining whether the second blockchain account holds the NFT (block1320), and responsive to determining the second blockchain account holds the NFT, exposing the digital content to the second service provider account (block1314). In each embodiment, the digital content168is not generated and/or communicated to any device associated with a user (e.g., client device) if it cannot be determined that a user of the service provider accounts232holds the NFT224in the user's blockchain account130. As a result, computational resources of both the service provider system104and the client device108are conserved.

In a second example, the service provider account query module704queries the service provider accounts232to identify an NFT224that was involved in a transaction on the service provider system (block1102). The query includes locating an NFT ID710that references the NFT224that is a subject of the digital content168. Then, the NFT query module708queries the blockchain116to identify a blockchain account130that holds the NFT224(block1104). The identified blockchain account130is leveraged by the service provider account query module704to locate a service provider account232that is associated with the identified blockchain account130(block1106), i.e., to determine if there is a service provider account232to receive the digital content168of the NFT224. If so, generation and communication of the digital content168continues. If not, digital content168is not generated, thereby conserving computational resources of the service provider system104.

The recipient determination module702can also perform queries of the service provider accounts232to determine “how” the digital content is to be communicated. In one example, a determination is made that a transaction involving a particular NFT224is associated with the service provider account232. The service provider account232includes various types of data, such as profile data, demographic data, preference data, network address data, and so forth. In this example, the recipient determination module702leverages this data to determine a preferred method of communication. For instance, based on the data of the service provider account232, the recipient determination module702determines that the preferred network address associated with the service provider account232for communication is email. As such, the email associated with the service provider account232is used to send the digital content168using the communication control module604. Access to functionality of the digital content168is controlled by the content management system166through verification of possession of the NFT224, e.g., to “unlock” the digital content.

A content generation module602is configured to generate the digital content168(block1108) and include the NFT ID710. The content generation module602generates digital content based on available data, such as the NFT data240, data from the service provider account232(e.g., current listings of the service provider account), and/or data from queries of the blockchain account130, e.g., data indicating other NFTs412and other blockchain tokens. Content includes text, images, unique codes, and executable functionality that is to be included for display to a recipient of the digital content168and to make associated functionality available, e.g., access to an offer for a discount, a market value determination of the NFT224, a second NFT, and so on. Content is configurable in a variety of ways, examples of which include owner's manuals, digital receipts, bills of sale, product keys, shipping information, digital marketing content, offers redeemable by the service provider system104, added functionality on the listing212of the item204, etc. Content in some examples is configured to encourage retention of the NFT224such that the NFT224is available at a later time to verify authenticity of the item204, e.g., by the service provider system104. In some other examples, at least part of the content is configurable to be displayed and/or interacted with by other users of the service platform156, e.g., on a listing212of the item204where the twinned NFT transaction history is displayed, automatic transfer of NFT224as described above upon purchase of the item204, a priority display location of the listing212, etc. In this way, recipients of the NFT224are encouraged to maintain possession of the NFT224to avail themselves of this functionality.

For example, digital content168is generated for service provider account232. The digital content includes an image of the item204from the NFT data240is identified and combined in a selectable display describing the digital content available, e.g., text including “Redeem a Discount”. Functionality of the digital content, in this example to redeem the discount, is also generated but is not necessarily available for access by the user of the service provider account232until NFT possession is verified as described below. After the service provider account is permitted access to the digital content based on successful verification, the digital content168is available to the user to apply the discount to a purchase.

In some instances, an application generation module712generates an application136included in the functionality in the digital content168and is configured to control access to the digital content168responsive to verification of the NFT224.

FIG.8depicts a system800in an example implementation in which communications between the service provider system104, the blockchain system102, and a client device108are used to verify access to digital content based on possession of the NFT224. The content management system166is configured to send queries802to and receive responses804from the blockchain system102via the network110, as described above. The content management system166is further configured to send digital content168and requests for data to the client device108and receive access data808and access requests from the client device108via the network110.

For example, the content management system166sends a query802including the NFT ID710to the blockchain system102to determine a blockchain account that holds NFT224. Then, the blockchain system102transmits a response804to the query802that identifies a blockchain account130as the blockchain account that holds the NFT224in the balance132. After the blockchain account130is identified, the content management system166generates the digital content168for the service provider account232related to the blockchain account130as described above. Then, the content management system166exposes the digital content168to the service provider account232on the client device108via the client service module164. Then, the content management system166receives access data808, such as a request for access, a private key for verification, and so forth. The communication between the content management system166and client device108is further described below.

In the illustrated example ofFIG.9, the communication control module604exposes digital content904to the service provider account232corresponding with the user of the client device108(blocks1006and1110). The client device108is configured to receive and cause display on a user interface154of the exposed digital content904(block1202). In this example, the exposed digital content904is generated as part of digital content168but does not include at least part of the digital content168. The exposed digital content904includes an option906that is user selectable via the user interface154to request access to the digital content168(block1204). Upon receipt of user selection of option906(blocks1008and1112), the communication control module604transmits a request for data910to verify the possession of the NFT224by the user (blocks1010and1114). Responsive to receiving the request for access data808(block1206), the client device108causes display on the user interface154for user input908of the access data808. In one instance, the access data808includes a private key to access to the blockchain account130and/or NFT224. In another instance, the access data808includes data for verification of possession the item204, e.g., by a “rescan” by the service provider system using a physical item scanner to verify the physical characteristics or “fingerprint” of the item. Then, the client device108transmits the access data808(block1208) via the network110. The communication control module604passes the received access data808to a content access control module810(block1012) which is configured by the content management system166to verify ownership of the NFT224via a query802to the blockchain116with the requested data910(blocks1014and1114). Using the response804to the query802from the blockchain116, the content access control module810verifies the possession of the NFT224. Responsive to successful verification, the content access control module810notifies the user of successful verification and permits access to the digital content168on the service provider account232(blocks1016and1116). Responsive to unsuccessful verification, the content access control module810does not permit access to the digital content168and may notify the user of unsuccessful verification. In one instance, the digital content168may not be completely generated (e.g., only the exposed digital content904is generated) until successful verification is performed to improve computational efficiency. As such, the client device108receives an indication that the verification was successful (block1210) or not. If successful, the user can access the digital content168via the service provider account232(block1212). In an alternative example, the access data808may be transmitted to the service provider system104for verification automatically and without user intervention via the crypto wallet146.

Moreover, the content management system166can perform various embodiments of the above-described examples subsequent to an initial recipient determination. In one instance, the content management system166exposed the digital content904to the service provider system and received a request to access the digital content168more than a threshold amount of time since exposure, e.g., a threshold number of minutes, hours, days, and so forth. The content management system166performs an additional recipient determination before verifying the possession of the NFT224by the blockchain account130of the user. In another instance, the content management system166receives additional data, such as indication of a second service provider account creating a second listing with the NFT224, and initiates recipient determination for the digital content168accordingly. As such, the service provider system leverages the blockchain to improve accuracy in exposure of digital content by determining the holder of the NFT and preventing a service provider account of a blockchain account that does not hold the NFT to be exposed and/or receive access to the digital content erroneously. This improvement in accuracy further improves the operational efficiency of the service provider system because digital content is provided to the user who holds the NFT.

Example System and Device

FIG.14illustrates an example system generally at1400that includes an example computing device1402that is representative of one or more computing systems and/or devices that implement the various techniques described herein. This is illustrated through inclusion of the control management system166. The computing device1402is configurable, for example, as a server of a service provider, a device associated with a client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system.

The processing system1404is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system1404is illustrated as including hardware element1410that is configurable as processors, functional blocks, and so forth. This includes implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements1410are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors are configurable as semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are electronically-executable instructions.

The computer-readable storage media1406is illustrated as including memory/storage1412. The memory/storage1412represents memory/storage capacity associated with one or more computer-readable media. The memory/storage1412includes volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage1412includes fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media1406is configurable in a variety of other ways as further described below.

An implementation of the described modules and techniques is stored on or transmitted across some form of computer-readable media. The computer-readable media includes a variety of media that is accessed by the computing device1402. By way of example, and not limitation, computer-readable media includes “computer-readable storage media” and “computer-readable signal media.”

Combinations of the foregoing are also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules are implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements1410. The computing device1402is configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device1402as software is achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements1410of the processing system1404. The instructions and/or functions are executable/operable by one or more articles of manufacture (for example, one or more computing devices1402and/or processing systems1404) to implement techniques, modules, and examples described herein.

The techniques described herein are supported by various configurations of the computing device1402and are not limited to the specific examples of the techniques described herein. This functionality is also implementable all or in part through use of a distributed system, such as over a “cloud”1414via a platform1416as described below.

The cloud1414includes and/or is representative of a platform1416for resources1418. The platform1416abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud1414. The resources1418include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device1402. Resources1418can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.

The platform1416abstracts resources and functions to connect the computing device1402with other computing devices. The platform1416also serves to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources1418that are implemented via the platform1416. Accordingly, in an interconnected device embodiment, implementation of functionality described herein is distributable throughout the system1400. For example, the functionality is implementable in part on the computing device1402as well as via the platform1416that abstracts the functionality of the cloud1414.

CONCLUSION