WO2022202973A1 - ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法 - Google Patents

ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法 Download PDF

Info

Publication number
WO2022202973A1
WO2022202973A1 PCT/JP2022/013864 JP2022013864W WO2022202973A1 WO 2022202973 A1 WO2022202973 A1 WO 2022202973A1 JP 2022013864 W JP2022013864 W JP 2022013864W WO 2022202973 A1 WO2022202973 A1 WO 2022202973A1
Authority
WO
WIPO (PCT)
Prior art keywords
nft
fungible
token
fungible token
request
Prior art date
Application number
PCT/JP2022/013864
Other languages
English (en)
French (fr)
Inventor
幸雄 春名
仁 竹内
Original Assignee
bacoor dApps株式会社
株式会社Ai商事
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by bacoor dApps株式会社, 株式会社Ai商事 filed Critical bacoor dApps株式会社
Priority to JP2023509288A priority Critical patent/JPWO2022202973A1/ja
Publication of WO2022202973A1 publication Critical patent/WO2022202973A1/ja
Priority to JP2023052813A priority patent/JP7367948B2/ja
Priority to JP2023137329A priority patent/JP2023153393A/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme

Definitions

  • the present disclosure relates to a non-fungible token generation system and a non-fungible token generation method.
  • This application claims priority based on Japanese application No. 2021-053535 filed on March 26, 2021, and incorporates all the descriptions described in the Japanese application.
  • Patent Document 1 discloses Ethereum, which is an example of a blockchain.
  • the crypto asset (virtual currency) used in Ethereum is called Ether.
  • Ether like legal tender, is fungible.
  • Ether is a kind of fungible token (fungibility token).
  • NFT non-fungible Tokens
  • An NFT is, for example, a token issued according to the Ethereum Request for Comments (ERC) 721 standard.
  • ERC721 An NFT conforming to the ERC721 standard is called an NFT-721 token.
  • NFTs may be provided upon request for the purpose of selling NFTs, etc.
  • a system that sells NFTs is configured to transmit purchased NFTs to potential purchasers and the like in response to requests from potential purchasers and the like of NFTs.
  • the system needs to have a large number of NFTs in stock in advance in preparation for the purchase of a large number of NFTs.
  • One aspect of the present disclosure is a non-fungible token generation system.
  • the disclosed system receives a non-fungible token request having identification information, identifies a type of intended non-fungible token to be generated based on the identification information of the non-fungible token request, and generating said target non-fungible token of an identified type; transmitting said target non-fungible token generated; can be generated.
  • the disclosed system is a non-fungible token generation system configured to perform a process of generating non-fungible tokens, comprising a database comprising a plurality of material data, and generating said non-fungible tokens. receiving a non-fungible token request having identification information; generating bull tokens.
  • Another aspect of the present disclosure is a non-fungible token generation method performed by a fungible token generation system.
  • the disclosed method receives a non-fungible token request having identification information, generates a purpose non-fungible token of the type identified based on the identification information of the non-fungible token request, and generates transmitting said intended non-fungible token that has been received.
  • the disclosed method is a non-fungible token generation method performed by a non-fungible token generation system, said non-fungible token generation system comprising a database comprising a plurality of material data, said method comprising: receiving a non-fungible token request having identification information, and generating a non-fungible token using data selected based on the received identification information from among a plurality of material data provided in the database. be prepared to do
  • FIG. 1 is a configuration diagram of a non-fungible token generation system according to the first embodiment.
  • FIG. 2 is an explanatory diagram of the relationship among box NFTs, pack NFTs, and card NFTs.
  • FIG. 3 is a timing chart regarding NFT generation processing.
  • FIG. 4 shows an operation screen on the user terminal.
  • FIG. 5 is a flow chart showing operations and operating procedures for NFT request in a user terminal.
  • FIG. 6 is a flowchart of target NFT generation processing.
  • FIG. 7 is a configuration diagram of a smart contract.
  • FIG. 8 is a flow chart of processing by the first module.
  • FIG. 9 is a flow chart of processing by the second module.
  • FIG. 10 is a flowchart of processing by the third module.
  • FIG. 11 is a flow chart of processing by the fourth module.
  • FIG. 12 is a flow chart of processing by the fifth module.
  • FIG. 13 is a configuration diagram of a non-fungible token generation system according to the second embodiment.
  • FIG. 14 is a flowchart of processing by the smart contract according to the second embodiment.
  • FIG. 15 is a configuration diagram of a non-fungible token generation system according to the third embodiment.
  • FIG. 16 is a flowchart of processing by the smart contract according to the third embodiment.
  • FIG. 17 is an explanatory diagram of target non-fungible token generation.
  • FIG. 18 is a configuration diagram of a non-fungible token generation system according to the fifth embodiment.
  • FIG. 19 is a configuration diagram of a non-fungible token generation system according to the sixth embodiment.
  • FIG. 20 is a configuration diagram of a non-fungible token generation system according to the seventh embodiment.
  • FIG. 21 is a configuration diagram of a non-fungible token generation system according to the eighth embodiment.
  • a non-fungible token generation system (hereinafter sometimes simply referred to as "system") according to the embodiment is configured to generate non-fungible tokens.
  • Non-fungible tokens and fungible tokens can have transactions recorded on the blockchain. Owners of non-fungible tokens can be recorded on the blockchain.
  • Non-fungible tokens recorded on the blockchain can be published on the blockchain and can be referenced.
  • Non-fungible tokens may be used, for example, as traded items or characters in computer games, digital trading cards, digital tickets, digital certificates, or other digital data.
  • Digital trading cards are also called digital collectible cards.
  • a non-fungible token can be, by way of example, a token issued according to the Ethereum Request for Comments (ERC) 721 standard.
  • a non-fungible token may have a unique value that distinguishes it from other non-fungible tokens.
  • a non-fungible token has a unique identifier to allow it to be distinguished from other non-fungible tokens.
  • An NFT's identifier is, for example, an address or other identifier that indicates a non-fungible token in the blockchain. The identifier of an NFT is also called NFT-ID.
  • a system may be configured by one computer, or may be configured by a computer network consisting of a plurality of computers.
  • a computer network may be, for example, the Internet.
  • the computer network can be a P2P computer network.
  • a P2P computer network is, for example, a network in which a plurality of computers are connected by the Internet.
  • a system may include a computer network that constitutes a blockchain.
  • Non-Fungible Tokens by the System are, for example, for the sale, transfer, or exchange of Non-Fungible Tokens with other Non-Fungible Tokens.
  • Non-Fungible Tokens provided by the system for sale, transfer, exchange, etc. are referred to as Purpose Non-Fungible Tokens.
  • a purpose non-fungible token is provided by the system sending the purpose non-fungible token.
  • a system receives a non-fungible token request, generates a target non-fungible token in response to the non-fungible token request, and transmits the target non-fungible token.
  • the system can be triggered by receiving a non-fungible token request to generate a target non-fungible token.
  • the system can generate a target non-fungible token in response to the non-fungible token request.
  • the system may not possess the intended non-fungible token in response to the non-fungible token request prior to receiving the non-fungible token request. That is, the system does not need to keep an inventory of purpose non-fungible tokens to offer.
  • the non-fungible token request is, for example, a command requesting the system to send the target non-fungible token.
  • the non-fungible token request is, for example, a command indicating a desire to purchase or transfer a target non-fungible token, or a command indicating a desire to exchange a certain non-fungible token for a target non-fungible token.
  • a non-fungible token request may explicitly request the system to send the intended non-fungible token, or indicate no explicit request but allow the system to receive it. It may be a command that can be determined to require the transmission of the target non-fungible token as a response to. For example, the system may be configured to consider receipt of a token to be a non-fungible token request.
  • a token that is considered a non-fungible token request is called a "request sending token.”
  • a request transmission token is, for example, a fungible token or a non-fungible token.
  • the non-fungible token request may include the request transmission token and information other than the token.
  • a request-send token may be sent with the command as a non-fungible token request.
  • the non-fungible token request can be sent to the system via the network.
  • the source of the non-fungible token request is, for example, the terminal of the user who is provided with the target non-fungible token, the computer of a third party operating for the user who is provided with target non-fungible token, etc.
  • the transmission of the non-fungible token request includes transmission of a request transmission token
  • the source of the request transmission token is the account of the user who is the owner of the request transmission token (the user's address in the blockchain).
  • the destination of the target non-fungible token may be the source of the non-fungible token request, or may be other than the source of the non-fungible token request.
  • the destination of the purpose non-fungible token can be, for example, the user's account (the user's address in the blockchain) that is the owner of the request-sending token.
  • the system can generate and transmit one purpose non-fungible token in response to one non-fungible token request. Also, the system may generate and transmit multiple purpose non-fungible tokens in response to a single non-fungible token request. In this case, the system can collectively provide multiple purpose non-fungible tokens.
  • the system can generate multiple types of objective non-fungible tokens.
  • the system can provide different types of purpose non-fungible tokens.
  • the system may generate multiple types of target non-fungible tokens in response to a single non-fungible token request.
  • the system may bundle multiple types of purpose non-fungible tokens.
  • the type of target non-fungible token may be, for example, the type of NFT of the target non-fungible token described later, or the category or genre of the target non-fungible token.
  • the type of purpose non-fungible token may be identified by the system.
  • a category indicates, for example, a division set in a card NFT, which will be described later.
  • the type indicates, for example, classification such as card NFT, pack NFT, and box NFT, which will be described later.
  • the type of purpose non-fungible token may be the type of ticket NFT described below or the type of certificate NFT described below.
  • the "type" here may be distinguished by the difference between each non-fungible token, but preferably two or more non-fungible tokens can be identified by the system as a property common to If a plurality of non-fungible tokens are of the same non-fungible token type, at least part of the configuration data that constitutes the non-fungible tokens may be common. Conversely, if the types of non-fungible tokens are different, the configuration data that constitutes the target non-fungible tokens may be different.
  • the non-fungible token request can have identification information. Identification information may be used to identify the type of target non-fungible token to be generated.
  • the non-fungible token request having the identification information enables the system, upon receiving the non-fungible token request, to identify the type of purpose non-fungible token to be generated and determine the appropriate purpose in response to the request. Can generate non-fungible tokens.
  • a system receiving a non-fungible token request can autonomously generate the appropriate type of intended non-fungible token.
  • the identification information may be the non-fungible token request itself. For example, if multiple commands for non-fungible token requests are prepared for multiple types of target non-fungible tokens, the non-fungible token request itself can be used to identify the type of
  • the identification information may be information included in the non-fungible token request.
  • a command commonly used for multiple types of target non-fungible token requests may include a parameter indicating the target non-fungible token type.
  • the identification information may be information sent with the non-fungible token request.
  • the information sent with the non-fungible token request is, for example, a non-fungible token, a fungible token, or other digital data to be exchanged for the intended non-fungible token.
  • "transmitted with a non-fungible token request” does not need to be transmitted completely at the same time as the non-fungible token request, and can be associated with or associated with the non-fungible token request even if some time Any information that is associated and can be substantially considered to have been sent together with the non-fungible token request is sufficient.
  • the identification information may be the number or types of the request transmission tokens.
  • the identification information may be, for example, the number of request transmission tokens.
  • a request sending token is, for example, a fungible token used as consideration for purchasing a target non-fungible token.
  • the type of target non-fungible token can be identified according to the number of fungible tokens as request transmission tokens.
  • the number of non-fungible tokens as request sending tokens may correspond to the value of the target non-fungible tokens.
  • the identification information may be the number of non-fungible tokens as request transmission tokens.
  • the identification information may be the type of request transmission token.
  • the Request Send Token is, for example, another non-fungible token that is exchanged for the target non-fungible token.
  • the type of target non-fungible token can be identified according to the type of non-fungible token as the request transmission token.
  • the identification information may be information indicating whether the request transmission token is a non-fungible token or a fungible token. In this case, for example, if the request-sending token is a non-fungible token, the target non-fungible token is identified as being of the first type, and whether the request-sending token is a fungible token. In some cases, the target non-fungible token may be identified as being of the second type.
  • the identification information may be any one of the identification information described above or a combination of two or more of them. Using a combination of two or more pieces of information makes it easier to identify the appropriate type among various types.
  • Generating the intended non-fungible token may comprise generating the intended non-fungible token of a type identified based on the identification information.
  • the system can generate the appropriate type of intended non-fungible token identified based on the identifying information that the non-fungible token request carries. Therefore, the system does not need to hold purpose non-fungible tokens for each type in advance.
  • the system can generate non-fungible tokens using material data it has before receiving a non-fungible token request.
  • the system can determine material data to be used for non-fungible token generation based on the identification information.
  • receiving the non-fungible token request includes receiving a request transmission token that is a fungible token or a non-fungible token, and the type of the intended non-fungible token is the It is preferably identified using the number or type of request transmission tokens as said identification information.
  • the system is preferably configured to be able to receive both a fungible token and a non-fungible token as the request transmission token.
  • the type of the intended non-fungible token is identified based on the number of the fungible tokens received as the request transmission token;
  • the type of the intended non-fungible token is identified based on the type of the non-fungible token received as the request sending token.
  • the system may comprise a contract computer that executes smart contracts on the blockchain.
  • Smart contracts are software (computer programs) executed by computers that make up the blockchain. Smart contracts are implemented on the blockchain, for example by administrators of the system, to be executed on the blockchain.
  • a contract computer is any computer that constitutes a computer network system that constitutes a blockchain. Of the computers that make up the computer network that makes up the blockchain, the computer that functions as the contract computer can change dynamically.
  • the smart contract receives a non-fungible token request with the identification information and identifies the type of the intended non-fungible token to be generated based on the identification information in the non-fungible token request. and generating said target non-fungible token of the identified type, and transmitting said target non-fungible token thus generated.
  • the contract computer is preferably capable of generating multiple types of purpose non-fungible tokens.
  • the system may utilize a user computer that accepts a user's selection operation.
  • the user computer is configured to identify the number or types of the request transmission tokens according to the user's selection by the selection operation, and to transmit the identified number or types of the request transmission tokens to the smart contract.
  • the number or types of request transmission tokens are specified according to the user's selection operation, and the number or types of request transmission tokens can be the identification information.
  • the source of the request transmission token is, for example, the user's account in the blockchain (the user's address in the blockchain), and in this case, the user's computer executes the request transmission token transmission process for the user. will do.
  • the user computer is, for example, the server 350 or the user terminal 300, which will be described later.
  • a user's computer need only be a computer that operates for the user and need not be owned by the user. In other words, the user computer does not have to be the user terminal 300, and may be a server owned or managed by someone other than the user (for example, a system administrator).
  • generating the non-fungible token includes generating the target non-fungible token using data selected from a plurality of material data based on the received identification information; It preferably contains Using the data selected based on the identification information may be using the selected material data itself, or may be using duplicate data of the selected material data.
  • generating the non-fungible token comprises incorporating configuration data into an initial non-fungible token issued by performing a non-fungible token issuance process on the blockchain.
  • said configuration data is generated based on said identification information. It is preferable that the material data is stored in the system in association with the identification information, or in association with the type identified based on the identification information.
  • the non-fungible token issuance process in the blockchain is performed, for example, by executing a command for non-fungible token issuance.
  • Commands for issuing non-fungible tokens are prepared, for example, in the blockchain where non-fungible tokens are issued.
  • the non-fungible token issuance process is executed in the computer that constitutes the blockchain.
  • a non-fungible token issued by the non-fungible token issuing process is given a non-fungible token identifier (NFT-ID).
  • NFT-ID non-fungible token identifier
  • a non-fungible token identifier is assigned to each non-fungible token to uniquely identify the non-fungible token.
  • the identifier of the non-fungible token may be the address of the non-fungible token in the blockchain, or may be another identifier.
  • the system may obtain identifiers for issued non-fungible tokens.
  • An initial non-fungible token is a token issued by the non-fungible token issuing process, and may be an incomplete non-fungible token in which configuration data is not incorporated. Configuration data is incorporated into the initial non-fungible token to complete the destination non-fungible token.
  • the initial non-fungible token has at least a non-fungible token identifier.
  • the initial non-fungible token may contain other necessary information besides the identifier. Incorporation of the configuration data may occur substantially simultaneously with the issuance of the initial non-fungible tokens, or may occur after the issuance of the initial non-fungible tokens.
  • the configuration data is, for example, at least one of image data, sound data, and character data.
  • the configuration data may be one piece of data or a combination of multiple pieces of data.
  • the image data and text data can be used to display the held non-fungible token on the terminal of the user holding the non-fungible token or a third party.
  • the sound data can be output along with the display of the image data or text data at the user's or third party's terminal holding the non-fungible token.
  • the image data may be moving image data or still image data.
  • the image data may correspond to the subject matter of a trading card, which will be described later, the content of a ticket, which will be described later, or the content of a warranty certificate, which will be described later, or the product to be guaranteed.
  • the configuration data can be generated based on the type identified based on the identification information, appropriate configuration data according to the type can be incorporated into the initial non-fungible token. At least one piece of common data corresponding to the type can be incorporated as the configuration data in the same type of target non-fungible tokens. That is, if multiple target non-fungible tokens are of the same type, the target non-fungible tokens may have at least one configuration data in common. Also, if a plurality of target non-fungible tokens are of different types, these target non-fungible tokens may have different configuration data depending on the different types. Even with such differences in target non-fungible token type, the system can identify the type from the non-fungible token request and determine the appropriate configuration data.
  • the purpose non-fungible token has an identifier indicating duplicate data of the selected data.
  • the identifier indicating the duplicated data is a uniform resource identifier indicating the duplicated data.
  • the non-fungible token issuing process is preferably performed after receiving the non-fungible token request.
  • the initial non-fungible tokens need not be issued and kept in stock prior to receipt of the non-fungible token request.
  • the composition data is unique for the target non-fungible token using material data determined using the identification information from among a plurality of material data that can also be used to generate other composition data. It is preferably generated as data.
  • the configuration data embedded in the target non-fungible token becomes unique data for each target non-fungible token, and tends to create scarcity value.
  • composition data can be generated by duplicating material data that is commonly used for generating other composition data.
  • Certain configuration data is saved under a file name different from that of other configuration data or in a location different from that of other configuration data. be as unique as possible.
  • Composition data is obtained by duplicating material data, and data such as serial numbers, other characters or symbols, or image data is added to make it easier to distinguish from other composition data.
  • incorporating said configuration data into said initial non-fungible token comprises associating said initial non-fungible token with an identifier of said configuration data.
  • the identifier of the configuration data is, for example, a Uniform Resource Identifier (URI) of the configuration data.
  • a URI is, for example, a Uniform Resource Locator (URL).
  • the generated configuration data may be stored, for example, on a data server on the Internet, and the URI or URL may serve as an identifier for the configuration data stored on that data server.
  • the URI may be a uniform resource name (URN).
  • the system is further configured to identify a number of the intended non-fungible tokens to be generated based on the identification information.
  • the identification information is also used as information for identifying the number of target non-fungible tokens to be generated.
  • the system may be configured with a first computer and a second computer.
  • Each of the first computer and the second computer may be composed of one computer, or may be composed of a plurality of computers connected via a network.
  • the first computer may be a computer network system that constitutes a blockchain.
  • the first computer and the second computer are preferably connected via a network.
  • the second computer preferably has a plurality of material data that are candidates or sources of the composition data.
  • the first computer receives the non-fungible token request, identifies the type using the information included in the non-fungible token request, and executes the non-fungible token issuing process. and issuing said initial non-fungible token.
  • the first process comprises a non-fungible token issuance process on the blockchain and is therefore preferably performed by a smart contract implemented on the blockchain.
  • the second computer is configured to execute a second process of selecting material data to be the constituent data from among the plurality of material data according to the type identified by the first computer. preferable.
  • the second process may further comprise storing a copy of the selected material data as said configuration data.
  • a URI (URL) indicating the saved configuration data is given from the second computer to the smart contract (first computer), and the smart contract (first computer) converts the URI (URL) into an initial non-fungible Can be mapped to a token.
  • the second computer is preferably a computer provided separately from the blockchain.
  • the second computer is, for example, a server computer managed by a system administrator.
  • each process can be managed separately, making management easier.
  • the second processing handles material data that can be diverse, by separating it from the first processing, even if there is a change in the material data, it is possible to avoid or change the first processing side. can be reduced.
  • the smart contract may have restrictions on the amount of program code that can be written (the number of steps that can be written), so when the first process is executed by the smart contract, the first process and the second process By separating, it is easy to avoid an increase in the number of steps in the first process.
  • the second process is preferably executed when the second computer detects that the first computer has issued the initial non-fungible token.
  • the second process can be started with the issuance of the initial non-fungible token by the first computer as a trigger.
  • the second computer may detect that the first computer has issued the initial non-fungible token by receiving a notification from the first computer. Also, the second computer monitors the behavior of the first computer (the smart contract that executes the first process), and detects the issuance of the initial non-fungible token without notification from the first computer. may detect spontaneously.
  • the second computer can read the non-fungible token issuance status and The issuance of the initial non-fungible token by the first computer may be detected by checking the contents thereof.
  • the first computer may issue an initial non-fungible token having information indicating the type of the target non-fungible token.
  • the second computer refers to the information possessed by the initial non-fungible token issued in the blockchain, identifies the type of the target non-fungible token, and sets appropriate configuration data according to the type. can be determined and its configuration data incorporated into the initial non-fungible token.
  • the second computer may be configured to obtain a generation condition comprising information indicating the type of the target non-fungible token from the first computer.
  • Receiving the non-fungible token request may include receiving a request transmission token that is a non-fungible token.
  • said request sending token non-fungible token has said identification information used to identify the type of said intended non-fungible token to be generated.
  • the identification information of the non-fungible token that is the request transmission token is, for example, information indicating the type of the non-fungible token that is the request transmission token.
  • the system can identify the target non-fungible token to be generated based on the identification information possessed by the non-fungible token that is the request transmission token.
  • the identification information may comprise information used as configuration data embedded in the purpose non-fungible token. In this case, the system can generate the target non-fungible token using the information possessed by the non-fungible token that is the request transmission token as at least part of the configuration data incorporated in the target non-fungible token. .
  • the identification information included in the non-fungible token request includes data indicating any one of the plurality of material data.
  • the system comprises a generating private key for generating the targeted non-fungible token and is configured to generate the targeted non-fungible token using the generating private key.
  • a method may be a non-fungible token generation method performed by a non-fungible token generation system.
  • the method includes receiving a non-fungible token request having identification information, generating a purpose non-fungible token of an identified type based on the identification information of the non-fungible token request; and transmitting the intended non-fungible token.
  • a method according to an embodiment is a non-fungible token generation method performed by a non-fungible token generation system, the non-fungible token generation system comprising a database comprising a plurality of material data. obtain.
  • the method receives a non-fungible token request having identification information, and uses data selected from a plurality of material data provided in the database based on the received identification information to generate a non-fungible token request.
  • a system is a non-fungible token generation system configured to perform a process of generating non-fungible tokens and may comprise a database comprising a plurality of material data.
  • the process of generating the non-fungible token receives a non-fungible token request having identification information, and selects from among a plurality of material data provided in the database based on the received identification information. Using the data to generate non-fungible tokens.
  • the system comprises a generating private key for generating the non-fungible token and is configured to generate the non-fungible token using the private key.
  • a computer program causes a processor to execute at least one of the disclosed processes.
  • a computer program is stored in a computer-readable, non-transitory storage medium.
  • FIG. 1 shows an example of a non-fungible token generation system 10 (NFT generation system) according to the first embodiment.
  • the system 10 may comprise a smart contract 101 implemented in a computer network system 100 such as blockchain.
  • the smart contract 101 is software (computer program) implemented in a computer network system 100 (first computer) such as a block chain, and automatically executes a predetermined protocol.
  • a smart contract 101 according to an embodiment has a contract address, which is an address in the blockchain.
  • the smart contract 101 is stored at the contract address.
  • the smart contract 101 is executed by being called by another computer.
  • a computer that calls the smart contract 101 is, for example, the server 350 operating for the user or the user terminal 300 .
  • Server 350 is, for example, an application server accessed by user terminal 300 .
  • Server 350 may make up system 10 .
  • Server 350 may be provided on a network such as the Internet.
  • the smart contract 101 is configured to execute NFT generation processing (first processing) according to the embodiment.
  • Blockchain as shown in FIG. 1, is composed of a P2P computer network in which multiple computers are interconnected. Smart contract 101 can be executed by any of the computers that make up computer network system 100 .
  • the system 10 includes a server 200 (second computer).
  • the server 200 assists the processing (first processing; NFT generation processing) in the smart contract 101 .
  • the server 200 may assist processing in the user terminal 300, which will be described later.
  • the server 200 may also perform processing for managing the system 10.
  • the system 10 may include the server 350 described above as one of the components of the system 10 .
  • the server 200 (second computer) is connected via a network such as the Internet to a computer network system 100 (first computer) in which the smart contract 101 is implemented. Server 200 and smart contract 101 can communicate with each other.
  • the server 200 is configured by a computer having a processor 210 and a memory 220. The same applies to the server 350 described above. Server 200 and server 350 may be configured by a plurality of computers.
  • Memory 220 is connected to processor 210 .
  • Memory 220 includes, for example, a primary storage device and a secondary storage device.
  • a primary storage device is, for example, a RAM.
  • the secondary storage device is, for example, a hard disk drive (HDD) or solid state drive (SSD).
  • Memory 220 comprises a computer program 260 executed by processor 210 .
  • Processor 210 reads and executes computer program 260 stored in memory 220 .
  • Computer program 260 has program code for operations performed by server 200 .
  • the processing executed by the server 200 includes, for example, an NFT configuration data incorporation processing 212 (second processing) described later.
  • the memory 220 comprises a database 230.
  • the database 230 includes, for example, NFT material data 240 (material data database).
  • the database 230 has a plurality of material data.
  • System 10 may generate non-fungible tokens using data selected from a plurality of material data.
  • Database 230 may further comprise NFT generation rules 250 .
  • the NFT material data 240 and the NFT generation rules 250 will be described later.
  • the database 230 has material data prior to receiving a non-fungible token request (NFT request) described below. Therefore, the system 10 does not need to receive material data that it already has from the outside of the system 10 when generating the NFT.
  • NFT request non-fungible token request
  • the system 10 generates a digital card NFT in order to provide sales and exchange services for the digital card NFT.
  • the system 10 may provide a service that distributes the digital card NFT for free.
  • the system 10 can communicate via a network with a terminal 300 (user terminal) possessed by a user who wishes to purchase or exchange a digital card NFT.
  • the user terminal 300 is, for example, a smart phone, tablet, wearable device, personal computer, or other computer owned by the user.
  • the system 10 according to the first embodiment is configured to be able to generate multiple types of NFTs (digital card NFT; target NFT).
  • the system 10 When the system 10 according to the first embodiment receives a non-fungible token request generated based on the operation of a user who wishes to acquire an NFT, it generates an NFT, and the owner of the generated NFT is the user It is configured to perform the process of recording something on the blockchain. For example, the system 10 according to the first embodiment generates an NFT of a type selected by the user from among multiple types of NFTs, and transmits it to the user (user account in blockchain).
  • the database 230 can have material data corresponding to each of a plurality of types. The system 10 can select material data corresponding to the type of NFT to be created from among a plurality of material data provided in the database 230, and generate the NFT using the selected data. Note that the system 10 may generate an NFT using data received from the outside of the system 10 in addition to the material data.
  • the digital card NFT provided by the system 10 according to the first embodiment is, for example, an NFT version of a digital trading card.
  • NFTization is recording data or an identifier such as a URI that directly or indirectly indicates data as a token in a blockchain.
  • a digital card is a trading card that has been digitized.
  • a digital trading card is displayed on a computer screen.
  • the digital card NFT is hereinafter referred to as a card NFT (cardNFT).
  • Card NFTs are transactable with any third party.
  • Card NFT transaction records and past and current card NFT owners are recorded in the blockchain.
  • Card NFTs and other NFTs can also be traded on exchange computers outside of system 10 .
  • Trading cards are also called collectible cards.
  • Trading cards have various images corresponding to the subject matter on the trading card and are sold for collection or bartering.
  • the subject images are, for example, images of celebrities, singers, athletes, other celebrities, characters in cartoons, games, animation, etc., game items, vehicles, machines, instruments, animals, plants, and the like.
  • the image is displayed for display of the card NFT on the screen of the card NFT's holder's computer or a third party's computer that can see the card NFT.
  • Trading cards may have different values depending on the subject matter such as images. Trading cards in low circulation may have rarity value.
  • the card NFT according to the embodiment incorporates image data D1, D2, D3, etc., which are the subject matter of the card NFT. Moreover, a plurality of categories C1, C2, and C3 are set in the card NFT according to the embodiment. Categories C1, C2, and C3 are the types of card NFTs set by the system administrator, and indicate the rank, genre, or nature of card NFTs. Cards NFTs having the same image data D1, D2 and D3 are treated as different types of card NFTs if the categories C1, C2 and C3 given to the cards are different. Therefore, if the number of categories is M and the number of image data as subjects prepared in the system 10 is N, the types of card NFT can be M ⁇ N. Therefore, an extremely large variety of card NFTs can exist, and the enjoyment of collecting and exchanging card NFTs by users increases.
  • card NFTs can be sold or traded in units called packs.
  • a single pack can be exchanged for one or more card NFTs using system 10 . That is, the pack holder has the right to redeem the pack for one or more cards NFT. However, the user cannot know what kind of card NFT the pack will be exchanged for until the pack is actually exchanged.
  • the pack is also made into NFT.
  • the NFT pack is called a pack NFT (packNFT).
  • a Pack NFT only indicates that it can be replaced with one or more Card NFTs, and at some point before being replaced, what Card NFT is actually replaced with that Pack NFT. does not indicate whether Also, a pack NFT does not have a card NFT to be exchanged with the pack NFT, and does not have information about the card NFT to be exchanged with the pack NFT. Therefore, even if the user possesses a pack NFT, the user cannot know what kind of card NFT the pack NFT will be exchanged for until the pack NFT is actually exchanged. As a result, a user possessing a Pack NFT will have an experience similar to possessing a physical, unopened pack.
  • Pack NFTs can be traded with any third party. Transaction records and past and current card NFT owners are recorded in the blockchain. Since packed NFTs can also be traded, resale of packed NFTs is also possible. A scarcity value can be expected if a particular type of pack NFT is for limited sale.
  • examples of pack NFTs include pack6NFT that is exchanged with six card NFTs and pack3NFT that is exchanged with three card NFTs.
  • User convenience is improved by facilitating multiple types of pack NFTs.
  • packed NFTs can be sold or traded in units called boxes.
  • a single box can be exchanged for multiple packed NFTs using the system.
  • one box is replaced with six pack6NFTs.
  • the box holder has the right to redeem the box for 6 packs.
  • the boxes are also NFTized.
  • a box converted to NFT is called a box NFT (boxNFT).
  • a Box NFT only indicates that it is interchangeable with multiple Pack NFTs, and does not indicate which Pack NFT the Box NFT actually replaces at a time before it is replaced. . Also, a Box NFT does not have the Pack NFT that it replaces, nor does it have information about the Pack NFT that it replaces.
  • Box NFTs can be traded with any third party. Transaction records and past and current Box NFT owners are recorded in the blockchain. Since Box NFTs are also tradable, it is possible to resell Box NFTs. A scarcity value can be expected if a particular type of box NFT is for limited sale.
  • the system 10 according to the first embodiment there are three types of NFTs provided by the system 10 according to the first embodiment: card NFTs, pack NFTs, and box NFTs. That is, there are at least three types of NFTs provided by the system 10 according to the first embodiment.
  • the card NFT provided by the system 10 according to the first embodiment has M categories. That is, there are at least M types of card NFTs provided by the system 10 according to the first embodiment.
  • the system 10 according to the first embodiment can provide users with multiple types of NFTs.
  • the type (type or category) set for each NFT can be identified by the system 10 by identification information possessed by each NFT.
  • the identification information may be image data possessed by each NFT, and in this case, the type of image data represents the type of NFT. Also, the identification information may be characters or symbols representing the type of NFT having the identification information. Since the NFT, which is the request transmission token, has identification information indicating the type of the NFT, the NFT itself, which is the request transmission token, can be used as identification information for identifying the type of the target NFT. Specifically, the identification information possessed by the NFT, which is the request transmission token, can be used as the identification information for identifying the type of target non-fungible token to be generated.
  • N types of image data to be incorporated into the card NFT there are at least N types of card NFT provided by the system 10 according to the first embodiment. Furthermore, when the categories of card NFTs and the types of image data incorporated in card NFTs are combined, there are M ⁇ N types of card NFTs. Note that there may be multiple types of pack NFTs and box NFTs. Depending on the type, a difference can be provided in the card NFTs and pack NFTs obtained by exchange.
  • Box NFTs and Pack NFTs can function as request-sending tokens (request-sending non-fungible tokens) that can be exchanged by the system 10 for purpose non-fungible tokens. That is, the request transmission token received by the system 10 differs in the type of target non-fungible token generated depending on the box NFT and the pack NFT.
  • FIG. 3 shows the flow of NFT generation processing executed by the system 10.
  • the NFT generation processing shown in FIG. 3 is executed by the smart contract 101, but the server 200 takes part of the processing (second processing).
  • the process executed by the smart contract 101 first computer; contract computer
  • the process executed by the server 200 second computer
  • the method of allocating roles between the smart contract 101 and the server 200 described here is just an example, and the manner of allocating roles is not particularly limited, and the roles may not be allotted.
  • a computer such as the user terminal 300 transmits a non-fungible token request (NFT request) to the system 10 (step S11).
  • the NFT request is received, for example, by the smart contract 101 (step S21).
  • the NFT request may be sent from the server 350 to the smart contract 101 or from the user terminal 300 via the server 350 to the smart contract 101 .
  • the user has a blockchain address to use the blockchain.
  • a blockchain address may be represented as 0x00000, for example.
  • a blockchain address is also called a blockchain account.
  • a user has a private key that corresponds to a blockchain account. The private key is stored, for example, in user terminal 300 or other device. Private keys are used to electronically sign transactions recorded on the blockchain.
  • FIG. 4 shows an operation screen 310 for NFT request on the user terminal 300 (user computer).
  • a user application program for purchasing, exchanging, and managing NFTs is installed in the user terminal 300 .
  • the operation screen 310 shown in FIG. 4 is displayed on the display of the user terminal 300 by the user application program.
  • the user application program can also display on the user terminal 300 the NFT owned by the user or the NFT to be purchased/exchanged.
  • the operation screen 310 shown in FIG. 4 may be displayed on the display of the user terminal 300 by the server 350 (user computer) accessed by the user terminal 300 .
  • the operation screen 310 includes buttons 311, 312, 313, 314, and 315.
  • a button 311 accepts a box (box NFT) purchase operation containing 6 packs.
  • a button 312 accepts an operation for purchasing a pack containing six cards (pack6NFT).
  • a button 313 accepts an operation for purchasing a pack containing three cards (pack3NFT).
  • a button 314 accepts an operation to replace the box NFT with a pack containing 6 cards (pack6NFT).
  • the operation of exchanging the box NFT with a pack containing six cards (pack6NFT) may be called an opening operation of the box NFT (openbox operation).
  • a button 315 is an operation to replace a pack NFT (pack6NFT or pack3NFT) with 6 or 3 card NFTs.
  • the operation of selecting the button 311 by the user is called “first type request operation”
  • the operation of selecting the button 312 is called “second type request operation”
  • the button 313 is selected.
  • the operation of selecting the button 314 is called the “third type request operation”
  • the operation of selecting the button 315 is called the "fifth type request operation”.
  • the user can select buttons 311 , 312 , 313 , 314 , and 315 on the operation screen 310 .
  • the user terminal 300 or the server 350 which is a user's computer, can accept a user's selection operation.
  • the first type request is a box NFT request
  • the second type request is a pack6NFT request
  • the third type request is a pack3NFT request
  • the fourth type request is a pack6NFT request
  • the fifth type request is a request for a card NFT. The request here is to request the system 10 to transmit the NFT.
  • the first type request is also a request to exchange the required number of fungible tokens and box NFTs.
  • a fungible token is, for example, a crypto asset (virtual currency) such as Ethereum or Bitcoin.
  • the fungible token is hereinafter also referred to as “FT”.
  • the second type request is also a request to exchange the required number of FTs with pack6NFTs.
  • a third type request is also a request to exchange the required number of FTs with pack3NFTs.
  • the required number of FTs may vary depending on the type of NFTs being replaced. Thus, the request may ask system 10 to provide NFTs in exchange for FTs.
  • a fourth type request is also a request to exchange a box NFT and a pack6NFT.
  • a fifth type request is also a request to exchange pack6NFT or pack3NFT with a card NFT.
  • the request may ask system 10 to provide another type of NFT.
  • the type of NFT provided by system 10 may depend on the type of NFT passed to system 10 .
  • the user terminal 300 or the server 350 which is a user computer, determines the number of fungible tokens to be transmitted as a request transmission token or It is configured to specify the type of token and cause the specified number or type of request transmission tokens to be sent to the smart contract 101 .
  • the smart contract 101 is configured to generate and transmit target non-fungible tokens only when a predetermined number of tokens or a predetermined type of tokens (request transmission tokens) are received, as an example.
  • the smart contract 101 is configured so as not to generate or transmit a target non-fungible token even if it receives a number of tokens other than the predetermined number. It is configured not to generate or transmit Gibble Tokens. Therefore, the user terminal 300 or the server 350, which is the user's computer, functions to transmit only the appropriate request transmission token to the smart contract 101 according to the selection by the user's selection operation.
  • FIG. 5 shows the operation for NFT request in user terminal 300 and the procedure for NFT request. Note that part or all of the procedure shown in FIG. 5 may be executed by the server 350 accessed by the user terminal 300 .
  • the user When the user wishes to purchase a box NFT, the user performs an operation of selecting the button 311, that is, an operation of requesting the first type (step S51).
  • the user terminal 300 or the server 350 which is the user's computer, receives the operation of the first type request and transmits the first type request to the smart contract 101 (see step S11 in FIG. 3).
  • the transmission of the NFT request calls the first module 111 (see FIG.
  • FT of the number to the smart contract 101 (step S56 of FIG. 5). Transmission of the FT is performed, for example, by transmitting the FT from the user's address in the blockchain (user account in the blockchain) to the contract address of the smart contract 101 . Sending the FT from the user account to smart01 may be performed by server 350, for example.
  • the user terminal 300 or the server 350 which is a computer for the user, confirms that the token to be transmitted (request transmission token) is FT and that the FT is necessary according to the user's selection (selection of the button 311) on the operation screen 310. Specify the number and cause the specified number of FTs to be sent to the smart contract 101 .
  • step S52 If the user wishes to purchase pack6NFT, the user performs an operation of selecting the button 312, that is, an operation of requesting the second type (step S52).
  • the user terminal 300 or the server 350 which is the user's computer, receives the operation of the second type request and transmits the second type request to the smart contract 101 (see step S11 in FIG. 3).
  • the transmission of the NFT request calls the second module 112 (see FIG. 7) corresponding to the second type request in the smart contract 101, and It includes sending the number FT to the smart contract 101 (step S56 in FIG. 5).
  • User terminal 300 or server 350 which is a computer for the user, identifies that the token to be transmitted (request transmission token) is FT and the required number of FTs in response to the user selecting button 312, Send the specified number of FTs to the smart contract 101 .
  • step S53 If the user wishes to purchase pack3NFT, the user performs an operation of selecting the button 313, that is, an operation of requesting the third type (step S53).
  • the user terminal 300 or the server 350 which is the user's computer, receives the operation of the third type request and transmits the third type request to the smart contract 101 (see step S11 in FIG. 3).
  • the transmission of the NFT request calls the third module 113 (see FIG. 7) corresponding to the third type request in the smart contract 101, and It includes sending the number FT to the smart contract 101 (step S56 in FIG. 5).
  • the user terminal 300 or server 350 which is a computer for the user, identifies that the token to be transmitted (request transmission token) is an FT and the required number of FTs in response to the user's selection of the button 313, Send the specified number of FTs to the smart contract 101 .
  • step S54 If the user wishes to exchange the box NFT for pack6NFT, the user selects the button 314, that is, performs a fourth type request operation (step S54).
  • the user terminal 300 or the server 350 which is the user's computer, receives the operation of the fourth type request and transmits the fourth type request to the smart contract 101 (see step S11 in FIG. 3). If the operation of the fourth type request is performed, sending the NFT request will call the fourth module 114 (see FIG. 7) corresponding to the fourth type request in the smart contract 101, and send the box NFT to the smart contract 101 (Step S57 in FIG. 5).
  • User terminal 300 or server 350 which is a user's computer, identifies that the type of token to be transmitted (request transmission token) is box NFT in response to user's selection of button 314, and Send the NFT to the smart contract 101 .
  • step S55 If the user wishes to exchange from pack6NFT or pack3NFT to card NFT, the user selects button 315, that is, performs a fifth type request operation (step S55).
  • the user terminal 300 or the server 350 which is the user's computer, receives the operation of the fifth type request and transmits the fifth type request to the smart contract 101 (see step S11 in FIG. 3).
  • the transmission of the NFT request calls the fifth module 115 (see FIG. 7) corresponding to the fifth type request in the smart contract 101, and sends pack6NFT or pack3NFT to the smart contract 101. It is to transmit (step S58 in FIG. 5). Which one of pack6NFT and pack3NFT is transmitted can be selected by a user's selection operation.
  • the operation of the fifth type request may be an operation of selecting pack6NFT or pack3NFT owned by the user.
  • the user terminal 300 or the server 350 which is a computer for the user, identifies that the types of tokens to be transmitted (request transmission tokens) are pack6NFT and pack3NFT according to the user's selection operation, and transmits the identified pack6NFT and pack3NFT. Send it to the smart contract 101.
  • the system 10 when the system 10 receives the NFT request transmitted from the user terminal 300 (step S21), it generates a target non-fungible token (target NFT) in response to the NFT request (step S22).
  • the system 10 has a private generation key (secret key) that is used to generate the purpose NFT, and uses the private generation key to generate the purpose NFT. For example, system 10 uses the generation private key to digitally sign a transaction for the purpose NFT generation. Transactions with electronic signatures are recorded on the blockchain. Since the system 10 has the private key for generation, it can generate the NFT that the user obtains without using the private key of the user who will obtain the target NFT.
  • the system 10 then transmits the generated target NFT to the user terminal 300 (user account) (step S23).
  • the transmitted target NFT is received by the user terminal 300 (step S12). It should be noted that the transmission of the target NFT is sufficient if it is an operation in which the owner of the target NFT is changed to the user in the blockchain and the target NFT is held in the user's account. That is, it is sufficient that the system 10 is configured to record in the blockchain that the user is the owner of the generated target NFT.
  • the target NFT does not need to be actually sent to a specific device such as the user terminal 300, and it is sufficient if it is sent to a user account (user's blockchain address) that the user can access via the terminal 300.
  • a user account is, for example, an account on a blockchain, and such account may be identified by a unique address on the blockchain.
  • the owner of the target NFT sent to the user account is the user, and the user can display the target NFT on the user terminal 300 and refer to it.
  • the system 10 may recognize the source of the NFT request from the user account as described above, and the destination of the target NFT may also be recognized from the user account as described above.
  • System 10 may recognize the source of the NFT request as the destination of the intended NFT. That is, system 10 may transmit the intended NFT to the source of the NFT request.
  • the system 10 may acquire the data indicating the destination of the target NFT at the same time as receiving the NFT request or after receiving the NFT request.
  • FIG. 6 shows the process of generating the aforementioned target NFT (step S22).
  • the system 10 identifies the type of target NFT to be generated using the information (identification information) included in the received NFT request (step S61).
  • the "identifying information" used to identify the type of target NFT is the NFT request itself.
  • the type of the target NFT to be generated is identified depending on whether the type of NFT request is one of the first type request, second type request, third type request, fourth type request, and fifth type request. be done.
  • the “identification information” may be the number or types of request transmission tokens, and the number or types of request transmission tokens may identify the type of target NFT to be generated.
  • the "identification information” may be other data that the NFT request has.
  • the system 10 determines the conditions for generating the target NFT according to the identified type (step S61).
  • the generation conditions are used when generating the target NFT.
  • the generation condition indicates, for example, what kind of target NFT should be generated.
  • the generation condition may indicate the number of target NFTs to be generated (issue number).
  • the aforementioned "identification information" may indicate the number of target NFTs to be generated. The generation conditions will be described later.
  • the system 10 issues an initial NFT according to the generation conditions (step S62). For example, the system 10 issues a number of initial NFTs according to the number of issues indicated by the generation conditions.
  • Initial NFT issuance is accomplished by executing a prepared NFT issuance command in the blockchain used by system 10 .
  • the computer that constitutes the blockchain executes the process of issuing the NFT in the blockchain upon receiving the NFT issuance command.
  • the issued NFT is recorded in the ledger on the blockchain, and the record is made public.
  • An NFT issued in a blockchain is given a unique identifier (NFT address or NFT-ID).
  • the system 10 After executing the NFT issuance command for the initial NFT issuance, the system 10 waits until the initial NFT issuance on the blockchain. That waiting time is different in blockchains, but shorter is better. After a waiting period, system 10 can obtain the identifier of the initial NFT that was issued.
  • the system 10 executes the NFT configuration data incorporation process 212 (see FIGS. 2 and 6).
  • the NFT configuration data incorporation process 212 acquires the target NFT generation conditions and the initial NFT identifier, and associates the initial NFT identifier with the NFT configuration data according to the generation conditions (for example, the type of target NFT).
  • a plurality of NFT material data 240 that are candidates for NFT configuration data are stored in the database 230 .
  • the system 10 determines the type of target NFT from among the plurality of NFT material data 240 according to the generation conditions, and uses the material data to generate configuration data. do. Note that the determined material data may be used as it is as the configuration data.
  • Configuration data is, for example, image data and character data.
  • the system 10 performs a process of associating the generated configuration data with the identifier of the initial NFT. This integrates the initial NFT and the configuration data to generate the target NFT. Generation of the target NFT is thus completed (step S63).
  • the embedded process 212 may be executed by the smart contract 101 (contract computer that executes the smart contract 101; first computer) or by the server 200 (second computer).
  • steps S21, S22, and S23 are called the first process
  • the process 212 is called the second process.
  • the first process is executed by the smart contract 101 (first computer) in FIG. 1
  • the second process is executed by the server 200 (second computer).
  • steps S61, S62, and S63 are the first process
  • the incorporation process 212 is the second process.
  • the NFT configuration data incorporation process 212 is executed when the server 200 detects that the smart contract 101 has issued an initial NFT.
  • the detection of NFT issuance is performed, for example, by the server 200 monitoring the occurrence of an NFT issuance event in the smart contract 101 . That is, the processing 212 is event-driven processing.
  • An NFT issue event is, for example, an action that occurs in smart contract 101 due to smart contract 101 executing an NFT issue command.
  • the server 200 When the server 200 detects the generation of the NFT issuing command, it acquires the target NFT generation conditions and the initial NFT identifier. The generation conditions and the identifier of the initial NFT can be obtained from smart contract 101 .
  • the server 200 determines the NFT material data 240 according to the type of the target NFT from among the plurality of NFT material data 240 according to the acquired generation conditions, and generates configuration data.
  • the server 200 performs a process of associating the generated configuration data with the identifier of the initial NFT held by the smart contract 101 to complete the target NFT. That is, the system 10 uses data selected from the plurality of material data 240 based on the identification information to generate the target NFT.
  • Selecting data based on the identifying information may include selecting data based on the type of target NFT identified based on the identifying information.
  • the generated purpose NFT incorporates configuration data.
  • An NFT embedded with configuration data for example, has a Uniform Resource Identifier (URI) that indicates the configuration data.
  • URI Uniform Resource Identifier
  • the URI indicating the configuration data may be included in the NFT metadata.
  • the URI indicating the metadata may be provided in the index data of the NFT. Note that the issuance of the initial NFT (step S62) and the incorporation process 212 need not be performed separately, and an NFT incorporating configuration data may be generated in step S62.
  • the server 200 sends an installation completion notification to the smart contract 101 .
  • the smart contract 101 When the smart contract 101 receives the integration completion notification, it recognizes that the generation of the target NFT has been completed (step S63), and transmits the target NFT (step S23 in FIG. 3).
  • Sending a destination NFT involves recording the owner in the blockchain so that the new owner of the destination NFT becomes the destination (user account). In other words, the transmission of the target NFT is the transfer or sale of the target NFT.
  • the smart contract 101 comprises a first smart contract 110 and a second smart contract 120, as shown in FIGS. That is, in the embodiment, the software that constitutes the first smart contract 110 and the software that constitutes the second smart contract are each implemented in the blockchain so as to be executed in a computer network system for the blockchain. .
  • the first smart contract 110 and the second smart contract 120 can communicate with each other.
  • the first smart contract 110 shown in FIG. 7 includes, as an example, a first module 111, a second module 112, a third module 113, a fourth module 114, a fungible token number determination module 116 (FT number determination module), and An NFT type determination module 117 is provided.
  • the second smart contract 120 shown in FIG. 7 comprises, as an example, a fifth module 115 .
  • the "module” here may be a module as software.
  • a “module” is, for example, a function, procedure or subroutine defined on a computer program. Each module can be executed by any computer in the computer network that makes up the blockchain.
  • the first module 111 is a boxNFT purchase module in which processing for box NFT purchase is defined.
  • the second module 112 is a pack6NFT purchase module in which processing for pack6NFT purchase is defined.
  • a third module 113 is a pack6NFT purchase module in which processing for pack3NFT purchase is defined.
  • a fourth module 114 is a box replacement module that defines a process of replacing a box NFT with a pack containing six cards (pack6NFT).
  • the fifth module 115 is a back replacement module that defines the process of replacing pack NFTs (pack6NFT or pack3NFT) with six or three card NFTs.
  • the FT number determination module 116 is a module that is called when determining whether the number of FTs received by the smart contract 101 (first smart contract 110) matches the required number of FTs for the purpose of purchasing the NFTs. .
  • the NFT type determination module 117 is a module that is called when the smart contract 101 (the first smart contract 110 or the second smart contract 120) determines the type of NFT received. NFT type determination module 117 may function as a token determination module that determines the type of token, such as whether the received token is FT or NFT.
  • the first module 111 is invoked if the NFT request is a first type request
  • the second module 112 is invoked if the second type request
  • the third module 113 is invoked if the third type request.
  • the fourth module 114 is called if it is a fourth type request and the fifth module 115 is called if it is a fifth type request. That is, the module to be called is determined according to the type of NFT request. Also, the module to be called may be determined according to the number or types of request transmission tokens transmitted to the smart contract 101 . Thus, system 10 identifies the type of NFT request and selects modules 111, 112, 113, 114, 115 to be executed.
  • the system 10 executes the first module 111 if the NFT request is a first type request, the second module 112 if the second type request, and the third module 113 if the third type request. If it is a fourth type request, the fourth module 114 is executed, and if it is a fifth type request, the fifth module 115 is executed.
  • FIG. 8 shows the processing procedure in the first module 111 (box NFT purchase module).
  • the first smart contract 110 receives a first type request from the user terminal 300 or the server 350, which is the user's computer.
  • the required number of FTs is also received with the first type request. Receipt of the required number of FTs for a box NFT may be considered reception of a first type request.
  • Sending an FT to the first module 111 and other modules 112, 113 involves changing the owner of the FT from the sender (user account) to the smart contract 101 or the smart contract 101 administrator's account. That is, FT is paid by the user. Ownership changes are recorded on the blockchain.
  • the first module 111 Since the first type request is a call to the first module 111, the first module 111 starts operating. In the processing in the first module 111, first, it is determined whether or not the quantity of FTs received with the first type request matches the required quantity of box NFTs purchased (step S81). This determination is made by the FT number determination module 116 . The required number of box NFTs to be purchased is notified to the user terminal in advance.
  • step S82 processing in the first module 111 ends.
  • the smart contract 101 receives the required number of FTs to acquire the box NFTs, the smart contract 101 identifies the first module 111 as the module to start operating, and causes the identified first module 111 to start operating. may That is, the number of FTs represents identification information, and the number of FTs as identification information determines the generation conditions. In this case, steps S81 and S82 can be omitted, and the process starts from step S83.
  • the smart contract 101 determines whether the received token (request transmission token) is FT or NFT. It may have functions.
  • the conditions for generating the target NFTs are determined (step S83).
  • This generation condition indicates that one box NFT of the first type should be issued as the target NFT.
  • the generation conditions may be determined according to the number of FTs received.
  • P (one) initial NFT issuance processing is executed according to the generation conditions, and the identifier of the initial NFT is obtained (step S84).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and creates a box NFT that is the target NFT (step S85).
  • the server 200 may acquire generation conditions such as “initial NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for a box NFT for example, image data for a box NFT , character data indicating the name of the box NFT, etc.
  • a plurality of material data 240 included in the database 230 includes material data for box NFTs of the first type (box).
  • the system 10 may select material data to be composition data based on the type T identified based on the received identification information. Other data other than the material data 240 (eg, the serial number of the box NFT) may be added to the configuration data.
  • the configuration data for the Box NFT is then incorporated into the initial NFT to complete the Box NFT. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • server 200 sends a completion notification to smart contract 101 .
  • Smart contract 101 upon receiving the integration completion notification, recognizes the completion of generation of the box NFT (step S86), and transmits the box NFT to the user account that is the source of the FT (step S87).
  • the user can obtain the box NFT in exchange for the payment of the FT. Since the system 10 according to the embodiment generates the box NFT after the FT is paid, there is no need to have the box NFT to hand over to the user before the FT is paid.
  • the NFTs that system 10 should generate are box NFTs can be identified by the number of FTs sent to smart contract 101 .
  • FIG. 9 shows the processing procedure in the second module 112 (pack6NFT purchase module).
  • the first smart contract 110 receives a second type request from the user terminal 300 or the server 350, which is the user's computer.
  • the required number of FTs is also received with the second type request. Receipt of the required number of FTs for pack6NFT may be considered reception of a second type request.
  • the second module 112 Since the second type request is a call to the second module 112, the second module 112 starts operating. In the processing in the second module 112, first, it is determined whether or not the quantity of FT received with the second type request matches the required quantity of pack6NFT purchase (step S91). This determination is made by the FT number determination module 116 . The required number of pack6NFT purchases is notified to the user terminal in advance.
  • step S92 If the quantity of FT does not match the required quantity for purchasing pack6NFT, error processing such as notifying the user terminal 300 to that effect is performed (step S92). In this case, processing in the second module 112 ends. Smart contract 101 receives the required number of FTs to acquire pack6NFT, specifies that the module that should start operating is second module 112, and causes the specified second module 112 to start operating. good too. That is, the number of FTs represents identification information, and the number of FTs as identification information determines the generation conditions. In this case, steps S91 and S92 can be omitted, and the process starts from step S93.
  • the conditions for generating the target NFTs are determined (step S93).
  • This generation condition indicates that one pack6 NFT of the second type should be issued as the target NFT.
  • the generation conditions may be determined according to the number of FTs received.
  • P (one) initial NFT issuance processing is executed according to the generation conditions, and the identifier of the initial NFT is obtained (step S94).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and generates the target NFT, pack6NFT (step S95).
  • the server 200 may acquire generation conditions such as the “target NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for pack6NFT for example, image data for pack6NFT, pack6NFT character data indicating the name, etc.
  • a plurality of material data 240 provided in the database 230 includes material data for pack6NFT, which is the second type (pack6).
  • the system 10 may select material data to be composition data based on the type T identified based on the received identification information.
  • Data other than the material data 240 eg, serial number of pack6NFT
  • the configuration data for the pack6NFT is then incorporated into the initial NFT to complete the pack6NFT. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • server 200 sends a completion notification to smart contract 101 .
  • Smart contract 101 upon receiving the integration completion notification, recognizes the completion of generation of pack6NFT (step S96), and transmits pack6NFT to the user account that is the source of the FT (step S97).
  • the NFTs to be generated by system 10 are pack6NFTs can be identified by the number of FTs sent to smart contract 101 .
  • FIG. 10 shows the processing procedure in the third module 113 (pack3NFT purchase module).
  • the first smart contract 110 receives a third type request from the user terminal 300 or the server 350, which is the user's computer.
  • the required number of FTs is also received with the third type request. Receipt of the required number of FTs for pack3NFT may be considered reception of a third type request.
  • the third module 113 Since the third type request is a call to the third module 113, the third module 113 starts operating. In the processing in the third module 113, first, it is determined whether or not the quantity of FT received with the third type request matches the required quantity for purchasing pack3NFT (step S101). This determination is made by the FT number determination module 116 . The required number of pack3NFT purchases is notified to the user terminal in advance.
  • step S102 If the quantity of FT does not match the required quantity for purchasing pack3NFT, error processing such as notifying the user terminal 300 to that effect is performed (step S102). In this case, processing in the third module 113 ends. Smart contract 101 receives the required number of FTs to acquire pack3NFT, specifies that the module that should start operating is third module 113, and causes the specified third module 113 to start operating. good too. That is, the number of FTs represents identification information, and the number of FTs as identification information determines the generation conditions. In this case, steps S101 and S102 can be omitted, and the process starts from step S103.
  • the conditions for generating the target NFTs are determined (step S103).
  • This generation condition indicates that one pack3 NFT of the third type should be issued as the target NFT.
  • the generation conditions may be determined according to the number of FTs received.
  • P (one) initial NFT issuance processing is executed according to the generation conditions, and the identifier of the initial NFT is obtained (step S104).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and generates the target NFT, pack3NFT (step S105).
  • the server 200 may acquire generation conditions such as the “target NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for pack3NFT for example, image data for pack3NFT, pack3NFT character data indicating the name, etc.
  • a plurality of material data 240 provided in the database 230 includes material data for pack3NFT, which is the third type (pack3).
  • the system 10 may select material data to be composition data based on the type T identified based on the received identification information.
  • Other data other than the material data 240 eg, serial number of pack3NFT
  • the configuration data for the pack3NFT is then incorporated into the initial NFT to complete the pack3NFT. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • server 200 sends a completion notification to smart contract 101 .
  • Smart contract 101 upon receiving the integration completion notification, recognizes the completion of generation of pack3NFT (step S106), and transmits pack3NFT to the user account that is the source of the FT (step S107).
  • pack3NFTs can be identified by the number of FTs sent to smart contract 101 .
  • FIG. 11 shows the processing procedure in the fourth module 114 (box exchange module).
  • the first smart contract 110 receives a fourth type request from the user terminal 300 or the server 350, which is the user's computer.
  • An NFT (box NFT) is also received with the fourth type request.
  • Sending the box NFT of the fourth module 114 involves changing the owner of the box NFT from the sender (user account) to the smart contract 101 or the smart contract 101 administrator's account. In other words, the box NFT is transferred from the user to the smart contract. NFT owner changes are recorded in the blockchain. Making a box NFT may be considered receipt of a fourth type request.
  • the fourth module 114 Since the fourth type request is a call to the fourth module 114, the fourth module 114 starts operating. In the processing in the fourth module 114, first, it is determined whether or not the type of NFT received together with the fourth type request is a box NFT (step S111). This determination is made by the NFT type determination module 117 . The determination of the type of NFT is performed, for example, based on information indicating the type T included in the NFT to be determined or the type T indicated by the record of the NFT to be determined in the blockchain.
  • step S112 If the type of the received NFT is not a box NFT, error processing such as notifying the user terminal 300 to that effect is performed (step S112). In this case, processing in the fourth module 114 ends.
  • the smart contract 101 may specify that the module that should start operating is the fourth module 114 and cause the specified fourth module 114 to start operating. That is, the type of received NFT (box NFT) represents identification information, and the type of NFT as identification information determines the generation conditions. In this case, steps S111 and S112 can be omitted, and the process starts from step S113.
  • step S113 conditions for generating the target NFT are determined.
  • This generation condition indicates that six pack6 NFTs of the second type should be issued as target NFTs. That is, a box NFT is replaced with 6 pack6NFTs.
  • a generation condition may be determined according to the type of the received NFT being a box NFT.
  • P (6) initial NFT issuance processing is executed according to the generation conditions, and the identifiers of the initial NFTs are obtained (step S114).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and generates the target NFT, pack6NFT (step S115).
  • the server 200 may acquire generation conditions such as the “target NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for pack6NFT for example, image data for pack6NFT, pack6NFT character data indicating the name, etc.
  • a plurality of material data 240 provided in the database 230 includes material data for pack6NFT, which is the second type (pack6).
  • the system 10 may select material data to be composition data based on the type T identified based on the received identification information.
  • Data other than the material data 240 eg, serial number of pack6NFT
  • Configuration data is generated for 6 NFTs.
  • the configuration data for pack6NFT is then incorporated into each of the 6 initial NFTs to complete the 6 pack6NFTs. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • the server 200 sends a completion notification to the smart contract 101. Smart contract 101, upon receiving the integration completion notification, recognizes the completion of the generation of six pack6NFTs (step S116), and transmits pack6NFTs to the user account that is the sender of the box NFTs (step S117).
  • the user can obtain 6 pack6NFTs instead of handing over the box NFT.
  • the user can obtain an experience similar to opening a box containing six packs. Since the system 10 according to the embodiment generates the pack6NFT after the box NFT is handed over, there is no need to hold the pack6NFT to be handed over to the user before the box NFT is handed over. That the NFT to be generated by system 10 is a pack6NFT can be identified by the type of NFT sent to smart contract 101 being a box NFT.
  • FIG. 12 shows the processing procedure in the fifth module 115 (pack exchange module).
  • the first smart contract 110 receives a fifth type request from the user terminal 300 or the server 350, which is the user's computer.
  • An NFT (pack6NFT or pack3NFT) is also received with the fifth type request.
  • Sending the packed NFT of the fifth module 115 involves changing the owner of the packed NFT from the sender (user account) to the smart contract 101 or the smart contract 101 administrator's account. In other words, the pack NFT is transferred from the user to the smart contract. NFT owner changes are recorded in the blockchain. Doing pack6NFT or pack3NFT may be considered reception of a Type 5 request.
  • information (combination information) indicating the combination of categories C1, C2, C3, ... of each of the plurality of cardNFTs exchanged with pack6NFT or pack3NFT to be transmitted is also transmitted. be.
  • the server 200 comprises NFT generation rules 250 for determining the types of multiple cardNFTs to be exchanged with pack6NFTs or pack3NFTs.
  • the NFT generation rule 250 is a combination of categories C1, C2, C3, .
  • a large number of NFT generation rules 250 are set for combination patterns of categories C1, C2, and C3.
  • an example of a combination pattern for pack6NFT is two card NFTs of category C1, two card NFTs of category C3, one card NFT of category C4, and one card NFT of category C6.
  • An example of a combination pattern for pack3 NFT is one card NFT of category C2, one card NFT of category C4, and one card NFT of category C5.
  • Card NFTs in the category of low occurrence frequency in the NFT generation rules 250 may be treated as rare cards.
  • the user terminal 300 accesses the server 200 when transmitting the fifth type request, and selects the category of each of the plurality of cardNFTs exchanged with pack6NFT or pack3NFT.
  • Information (combination information) indicating a combination of C1, C2, C3, . . . is acquired.
  • the acquired combination information is sent to smart contract 101 together with the fifth type request as information used to identify the type of target NFT.
  • the fifth type request is a call to the fifth module 115 in the second smart contract 120, when the smart contract 101 receives the fifth type request, the fifth module 115 starts operating.
  • the processing in the fifth module 115 first, it is determined whether the type of NFT received with the fifth type request is pack6NFT or pack3NFT (step S121). This determination is made by the NFT type determination module 117 .
  • step S122 If the type of NFT received is not pack6NFT or pack3NFT, error processing such as notifying the user terminal 300 to that effect is performed (step S122). In this case, processing in the fifth module 115 ends.
  • the smart contract 101 may identify the fifth module 115 as the module to start operating, and may start the identified fifth module 115 . That is, the type of received NFT (pack6NFT or pack3NFT) represents identification information, and the type of NFT as identification information determines the generation conditions. In this case, steps S121 and S122 can be omitted, and the process starts from step S213.
  • the conditions for generating the target NFT are determined according to the received NFT type and combination information (step S123).
  • the category and number of card NFTs to be generated are determined according to the received combination information.
  • This generation condition indicates that six cardNFTs of the fourth type should be issued as the target NFTs. That is, pack6NFT is exchanged for 6 cardNFTs.
  • this generation condition indicates the categories of the six cardNFTs to be generated and the number of cardNFTs for each category. For example, as described above, there are two card NFTs of category C1, two card NFTs of category C3, one card NFT of category C4, and one card NFT of category C6. be.
  • This generation condition indicates that three cardNFTs of the fourth type should be issued as the target NFTs. That is, pack3NFT is replaced with 3 cardNFTs.
  • this generation condition indicates the categories of the six cardNFTs to be generated and the number of cardNFTs for each category. As described above, the category and the number of cards for each category are, for example, one card NFT of category C2, one card NFT of category C4, and one card NFT of category C5.
  • the smart contract 120 may acquire the category and number of purpose cards NFT to be generated from the server 200 .
  • P (6 or 3) initial NFT issuance processing is performed according to the generation conditions, and identifiers of P initial NFTs are obtained (step S124).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and creates the cardNFT that is the target NFT (step S125).
  • the server 200 may acquire generation conditions such as the “target NFT type T” and “category” of each initial NFT by referring to the record of each initial NFT in the blockchain.
  • a plurality of material data 240 included in the database 230 includes material data for cardNFT, which is the fourth type (card).
  • the system 10 may select material data to be composition data based on the type T identified based on the received identification information.
  • Configuration data for cardNFT is, for example, image data indicating cardNFT categories C1, C2, C3, . . . , character data indicating cardNFT category names, image data D1, D2, D3, . and so on.
  • the category name indicates a rank such as platinum, gold, or silver, for example.
  • Image data indicating cardNFT categories C1, C2, C3, ... and character data indicating cardNFT category names are selected from a plurality of NFT material data 240 according to the "category" indicated by the generation condition. .
  • image data of a plurality of athletes belonging to that sports team are registered as candidates for image data D1, D2, and D3 according to the subject of cardNFT.
  • the server 200 randomly determines image data corresponding to the subject of the cardNFT from among the candidates.
  • the subject matter of cardNFT may be determined according to the type of pack6 or pack3.
  • a pack 6NFT for team A that is exchanged for card NFTs of team A players
  • a pack 6NFT for team B that is exchanged for card NFTs of team B players.
  • the system 10 can generate a card NFT of a certain player belonging to team A using image data selected from a plurality of image data of the players of team A.
  • system 10 can generate a card NFT of a certain player belonging to team B using image data selected from a plurality of image data of team B players.
  • the image data corresponding to the category is also given to the card NFT, so there are many variations of the card NFT, and the fun of collecting is increasing.
  • cardNFTs to which the image data of the same player is attached can be recognized as different types if they are attached with images of category C1 and images of category C2.
  • those with characters indicating "platinum” that is category C1 and images about "platinum”, and characters indicating "gold” that are category C2 and One with an image about "gold” can be recognized as a different kind.
  • Even cardNFTs with image data of the same player may have different values because the categories are different.
  • configuration data for P (6 or 3) NFTs is generated.
  • configuration data for the cardNFT is incorporated into each of the P initial NFTs to complete P (6 or 3) cardNFTs.
  • the configuration data may be incorporated at the time the initial NFT is issued.
  • the server 200 sends a completion notification to the smart contract 101 .
  • the smart contract 101 recognizes the completion of generation of P cardNFTs (step S126), and transmits the cardNFTs to the user account that is the source of the pack NFTs (step S127).
  • the configuration data may include identification information such as the serial number of the cardNFT to distinguish each cardNFT from other cardNFTs and make it unique. Having identification information that makes a cardNFT unique can increase its rarity value even if a cardNFT has common material data that can be used by other cardNFTs.
  • the user can obtain P cardNFTs instead of handing over the box NFTs.
  • the user gets an experience similar to opening a pack containing 6 or 3 cards. Since the system 10 according to the embodiment generates the cardNFT after the pack NFT is handed over, there is no need to hold the cardNFT to be handed over to the user before the pack NFT is handed over.
  • many types of cardNFTs such as M ⁇ N (number of categories M ⁇ image data N according to the subject) can exist, but such many types of cardNFTs are prepared in advance. It does not need to be generated and held by system 10 .
  • the system 10 it is not predetermined what type of cardNFT the pack6NFT or pack3NFT that is exchanged with the cardNFT is exchanged with. Therefore, there is no need to pre-allocate a cardNFT to be replaced to each of a large number of pack6NFTs or pack3NFTs to be sold. That the NFT to be generated by system 10 is a cardNFT can be identified by the type of NFT sent to smart contract 101 being pack6NFT or pack3NFT.
  • the smart contract 101 of the embodiment identifies what kind of target non-fungible token should be generated according to the number or type of request transmission tokens received, and generates an appropriate target non-fungible token. be able to.
  • the smart contract 101 sets what kind of target NFT to generate and transmit depending on what is received as the received request transmission token.
  • the trigger for activation of the smart contract 101 is that the user sent something to the smart contract 101 . More specifically, the smart contract 101 starts operating (activation) when the user sends a token (request transmission token) to the smart contract 101 .
  • FIG. 13 shows an example of the system 20 according to the second embodiment. Points not particularly described in the second embodiment are the same as those of the system 10 according to the first embodiment.
  • a system 20 according to the second embodiment includes a smart contract 102 implemented in a computer network system such as a blockchain, and a server 200 .
  • the system 20 according to the second embodiment generates a digital ticket NFT in order to provide a digital ticket NFT sales or issuance service.
  • the system 20 can communicate via a network with a terminal 300 (user terminal) possessed by a user who wishes to purchase or issue a digital ticket NFT.
  • the smart contract 102 according to the second embodiment is configured to execute ticket NFT generation processing.
  • a server 200 according to the second embodiment is configured to execute an NFT configuration data incorporation process 212 .
  • the server 200 according to the second embodiment can execute reservation reception processing 215 from the user for ticket NFT issuance.
  • the digital ticket NFT provided by the system 20 according to the second embodiment is an NFT of the ticket.
  • a digital ticket NFT is displayed on a computer screen.
  • the digital ticket NFT is hereinafter referred to as a ticket NFT.
  • Ticket NFTs are also transactable with any third party.
  • Tickets include, for example, tickets for participating in events such as concerts, live performances, plays, movies and seminars, tickets for admission to facilities such as art museums and museums, and transportation such as trains, planes, and buses. It is a ticket for doing so, and it is an exchange ticket or gift certificate for receiving the provision of goods and services. Tickets may include discount coupons for purchasing goods and services.
  • a ticket NFT according to the embodiment is configured by incorporating configuration data such as image data or character data indicating a ticket into an NFT issued on a blockchain.
  • An NFT with embedded configuration data has, for example, a URI directly or indirectly pointing to the configuration data itself or to the configuration data.
  • a URI may indicate configuration data directly or indirectly.
  • a ticket NFT for an event incorporates image data or character data for the event.
  • the configuration data embedded in the ticket NFT may differ for each purpose of the ticket NFT (eg, specific event). Therefore, there may be multiple ticket NFT types.
  • the system 20 according to the second embodiment can generate a type of ticket NFT according to the type, purpose, etc. of the event and provide it to the user.
  • the system 20 according to the second embodiment receives a ticket NFT request (NFT request) from a user terminal 300 or the like, which is a user computer, and transfers the ticket NFT to the user's account as the purpose NFT.
  • NFT request is made as a call to the ticket issuing smart contract 102 .
  • the ticket issuing smart contract 102 executes the ticket NFT generation process.
  • FIG. 14 shows the procedure of ticket NFT generation processing in the ticket issuing smart contract 102.
  • the smart contract 102 receives an NFT request from the user terminal 300 or the like, which is a user's computer.
  • the NFT request may be received from a server, which is the user's computer.
  • the NFT request here is a request to issue a ticket NFT.
  • FT is received as the ticket NFT purchase price.
  • Sending an FT involves an operation to change the owner of the FT from the sender (user account) to the smart contract 101 or the smart contract 101 administrator's account. That is, the FT as the ticket NFT purchase price is paid by the user. Ownership changes are recorded on the blockchain.
  • Receipt of a ticket NFT request may be performed as receipt of an NFT (ticket redemption NFT) to be exchanged for the ticket NFT.
  • the ticket redemption NFT may have ticket information as described below.
  • the smart contract 102 can generate a ticket NFT using the ticket information that the ticket redemption NFT has.
  • the smart contract 102 also receives the ticket information together with the NFT request.
  • Ticket information includes, for example, ticket number, event name, reserved seat information, event date, event name, and the like.
  • the ticket information is generated, for example, by the reservation reception process 215 of the server 200, and the ticket information generated when the reservation reception is established is transmitted to the ticket reservation application program of the user terminal.
  • the ticket reservation application program can cause the user terminal 300 (computer) or the like, which is a computer for the user, to execute a process of transmitting an NFT request to the smart contract 102 together with the received ticket information.
  • the ticket information can be used as identification information for identifying the type of ticket NFT that is the target NFT.
  • the type of ticket NFTs to be generated may be represented by the number or type of FTs or NFTs (ticket redemption NFTs) received by the smart contract 102 as request transmission tokens.
  • the smart contract 102 Upon receiving the NFT request, the smart contract 102 determines whether the received quantity of FT matches the required number of ticket NFT purchases requested (step S141). This determination is made by the FT number determination module 116 . The required number of ticket NFT purchases is notified to the user terminal in advance.
  • step S142 If the number of FTs does not match the required number of ticket NFTs, error processing such as notifying the user terminal 300 to that effect is performed (step S142). In this case, the ticket issuing process ends.
  • the conditions for generating the target NFTs are determined (step S143).
  • This generation condition indicates that one ticket NFT for the E event should be issued as the target NFT.
  • the generation condition may be determined by the number or type of FTs or NFTs (ticket redemption NFTs) as request transmission tokens received by the smart contract 102 .
  • P (one) initial NFT issuance processing is executed according to the generation conditions, and the identifier of the initial NFT is obtained (step S144).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and creates a ticket NFT that is the target NFT (step S145).
  • the server 200 may acquire generation conditions such as “initial NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for the E event e.g., image data for the E event, image data for the E event, and character data indicating name, ticket number, seat, date, etc.
  • a plurality of material data 240 provided in the database 230 has a plurality of material data corresponding to a plurality of event types. That is, database 230 comprises material data for E-events. Based on the type T identified based on the received identification information, the system 20 can select material data to be composition data from a plurality of material data.
  • the system 20 selects the NFT from the plurality of material data based on the identification information (E event) You can choose which data is included in the The configuration data for the E-event is then incorporated into the initial NFT to complete the ticket NFT for the E-event.
  • the E-event name and the like are common material data that can be used to generate other configuration data, and the ticket number and the like are information for making the configuration data unique data. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • System 20 has a private key that is used to generate the ticket NFT and uses that private key to generate the ticket NFT.
  • server 200 sends a completion notification to smart contract 102 .
  • the smart contract 102 recognizes the completion of generation of the ticket NFT (step S146), and transmits the ticket NFT to the user account that sent the FT (step S147).
  • the user can obtain the ticket NFT in exchange for the payment of the FT. Since the system 20 according to the embodiment generates the ticket NFT after the FT is paid, there is no need to have different types of ticket NFTs to hand over to the user before the FT is paid. Note that the ticket NFT request may not be accompanied by the payment of the ticket NFT purchase price.
  • FIG. 15 shows an example of the system 30 according to the third embodiment. Points not particularly described in the third embodiment are the same as those of the system 10 according to the first embodiment and the system 20 according to the second embodiment.
  • a system 30 according to the third embodiment includes a smart contract 103 implemented in a computer network system such as a blockchain, and a server 200 .
  • the system 30 according to the third embodiment generates a certificate NFT to provide a certificate NFT, such as a warranty certificate NFT.
  • the system 30 can communicate via a network with a user computer such as a terminal 300 (user terminal) possessed by a user who wishes to issue a certificate NFT.
  • the smart contract 103 according to the third embodiment is configured to execute certificate NFT generation processing.
  • a server 200 according to the second embodiment is configured to execute an NFT configuration data incorporation process 212 .
  • the certificate NFT provided by the system 30 according to the third embodiment is an NFT of a certificate such as a guarantee certificate.
  • the certificate NFT is displayed on the computer screen. Certificate NFTs can also be traded with any third party.
  • a warranty certificate is, for example, a document that proves some kind of guarantee regarding daily necessities, jewelry, electrical products, electronic products, mechanical products, other goods, services, or rights (rights, obligations, or responsibilities).
  • a certificate is a document that certifies the foregoing warranties or other facts.
  • the guarantee certificate NFT is configured by incorporating configuration data such as image data or character data indicating that it is a guarantee certificate into the NFT issued in the blockchain.
  • An NFT with embedded configuration data has, for example, the configuration data itself or a URI pointing to the configuration data.
  • a URI may indicate configuration data directly or indirectly.
  • the configuration data embedded in the certificate NFT may differ for each type of certificate. Therefore, there may be multiple types of warranty NFTs.
  • the system 30 according to the third embodiment can generate a warranty certificate NFT according to the type of product to be guaranteed and provide it to the user. As shown in FIG. 15, the system 30 according to the third embodiment receives a certificate NFT request from the user terminal 300, generates a guarantee certificate NFT as the purpose NFT, and transmits it to the user terminal 300 (user account) .
  • the warranty period of the product to be guaranteed may be calculated from the date of purchase of the product (starting date of warranty), or the date when the warranty certificate NFT is issued in the blockchain (starting date of warranty).
  • FIG. 16 shows the procedure for guarantee certificate issuance processing in the guarantee certificate issuance smart contract 103 .
  • smart contract 103 receives an NFT request from user terminal 300 .
  • the NFT request here is a request for issuance of a guarantee certificate NFT.
  • Smart contract 103 also receives the product information of the warranted product along with the NFT request.
  • the product information includes at least one of product name, product purchase date and time, product purchase location, product unique symbol (product unique identifier), and the like.
  • the product information is preferably recorded in a machine-readable code (eg, two-dimensional code) attached, for example, to the product or to a document or other object attached to the product.
  • a machine-readable code eg, two-dimensional code
  • the user terminal 300 can obtain product information by reading a two-dimensional code or the like with a camera (code reader) of the user terminal 300 .
  • the product information may exist as electronic data stored in a computer (eg, server 200) on a network indicated by a URI (Uniform Resource Identifier) indicated by machine-readable code.
  • product information can be obtained by reading the code with the camera of the user terminal 300 and accessing the URI indicated by the code through the network.
  • the product information is used to identify the type of warranty NFT that is the target NFT.
  • the smart contract 103 determines whether the received product information is appropriate (step S161). This determination is, for example, determination of whether or not the product unique symbol actually exists.
  • step S162 If the FT quantity is inappropriate for the product information, error processing such as notifying the user terminal 300 to that effect is performed (step S162). In this case, the guarantee certificate issuing process ends.
  • the conditions for generating the target NFT are determined (step S163).
  • P (one) initial NFT issuance processing is executed according to the generation conditions, and the identifier of the initial NFT is obtained (step S164).
  • the server 200 When the server 200 detects the issuance of the initial NFT, it acquires the conditions for generating the target NFT and the identifier of the initial NFT, executes the NFT configuration data incorporation process, and creates the warranty certificate NFT that is the target NFT (step S165).
  • the server 200 may acquire generation conditions such as “initial NFT type T” by referring to the record of the initial NFT in the blockchain.
  • configuration data for the G product e.g., image data for the G product, G product Name, date and time of purchase of G product, place of purchase of G product, product unique symbol (product unique identifier), character data indicating warranty period
  • a plurality of material data 240 provided in the database 230 has a plurality of material data corresponding to a plurality of product types. That is, database 230 comprises material data for G products. Based on the type T identified based on the received identification information, the system 30 can select material data to be composition data from a plurality of material data.
  • the system 30 selects the NFT from the plurality of material data based on the identification information (G product) You can choose which data is included in the Then, by incorporating the configuration data for the G product into the initial NFT, the warranty NFT for the G product is completed. Note that the configuration data may be incorporated at the time the initial NFT is issued.
  • System 30 has a private key that is used to generate a letter of guarantee NFT and uses that private key to generate a letter of guarantee NFT. Since the system 10 has a private key for NFT generation, the warranty NFT can be generated without using the user's private key.
  • server 200 sends a completion notification to smart contract 103 .
  • smart contract 103 receives the integration completion notification, it recognizes the completion of the generation of the guarantee certificate NFT (step S166), and transmits the guarantee certificate NFT to the user account that is the source of the NFT request (step S167).
  • the G product name and the like are common material data that can also be used to generate other configuration data, and the product unique symbol and the like are information for making the configuration data unique data.
  • the system 30 prepares the warranty NFT before the NFT request (eg, between manufacturing and selling the product) to generate the warranty NFT after receiving the NFT request. It is not necessary and saves the trouble of creating warranty NFTs for products that are not sold.
  • FIG. 17 shows a method of storing and referencing configuration data that can be used in each of the embodiments described above and below.
  • the material data database 240 stores a plurality of material data.
  • the plurality of material data includes first material data, and the first material data is image data of a certain talent.
  • the first material data is replicated and stored in the configuration data database 245 of the server 200 as first configuration data. That is, the first component data is duplicate data of the first material data.
  • the first component data exists as data separate from the first material data by having a file name different from that of the first material data or being stored in a different location.
  • First configuration data in a network such as the Internet is indicated by a first URI (First Uniform Resource Identifier).
  • a first destination NFT is generated by incorporating the first configuration data into the first initial NFT.
  • the first material data is duplicated and stored in the configuration data database 245 of the server 200 as the second configuration data. That is, the second component data is duplicate data of the first material data.
  • the second component data exists as data separate from the first material data and the first component data by having a different file name or being stored in a different location from the first component data and the first component data.
  • Second configuration data in a network such as the Internet is indicated by a second URI (second uniform resource identifier) different from the first URI.
  • a second purpose NFT is generated by incorporating the second configuration data into a second initial NFT that is different from the first initial NFT.
  • the first-purpose NFT and the second-purpose NFT have the same image data of the same talent as configuration data. That is, the first composition data of the first-purpose NFT is generated from the first material data that is also used to generate the second composition data of the second-purpose NFT.
  • the first configuration data and the second configuration data stored in the configuration data database 245 are separate data. In other words, the first configuration data is unique data for the first purpose NFT and is not incorporated into NFTs other than the first purpose NFT.
  • the second configuration data is unique data for the second purpose NFT and is not incorporated into the second purpose NFT. Therefore, each of the first purpose NFT and the second purpose NFT can be unique.
  • the owner history of the first-purpose NFT can cause a difference in value from the second-purpose NFT.
  • Incorporating the first configuration data into the first initial NFT that becomes the first purpose NFT may be, for example, writing the first URI or an identifier associated with the first URI into the first initial NFT.
  • the first URI indicates first configuration data, which is duplicate data. Since the first purpose NFT has the first URI, the server 200 can accept network access by the first URI and display the first configuration data on the terminal or the like of the owner of the first purpose NFT.
  • the identifier associated with the first URI may be, for example, information used by the server 200 to recognize the first URI.
  • the server 200 accepts network access using the identifier associated with the first URI, identifies the first URI from the identifier, and identifies the first URI from the identifier.
  • the first configuration data indicated by 1URI can be displayed on the terminal or the like of the owner of the first purpose NFT. The same is true for the second purpose NFT.
  • the server 200 in order to incorporate the first configuration data into the first initial NFT that will be the first purpose NFT, the server 200 must have the identifier (NFT-ID) of the first purpose NFT (first initial NFT), the first URI, It may be to set a correspondence relationship between The server 200 accepts network access using the identifier (NFT-ID) of the first purpose NFT, identifies the first URI from the identifier (NFT-ID) of the first purpose NFT, and the first configuration data indicated by the first URI. can be displayed on the terminal of the owner of the first purpose NFT. The same is true for the second NFT.
  • the database 246 can be configured by IPFS (InterPlanetary File System).
  • IPFS is an example of a P2P (Peer to Peer) distributed file system.
  • stored data (content) is specified by a URI using a hash value obtained from the data.
  • This URI is an identifier indicating configuration data, and is also called a content identifier.
  • a URI designating the configuration data (content) stored in the IPFS should be written into the NFT. That is, an NFT may have a URI pointing to configuration data stored in IPFS.
  • an NFT can include configuration data (content), metadata including a URI indicating the configuration data (content), and index data including a URI indicating the metadata.
  • the index data may include the identifier of the NFT (NFT-ID; token identifier) and the owner of the NFT (owner blockchain address).
  • NFT-ID the identifier of the NFT
  • metadata may be recorded on IPFS.
  • Metadata and configuration data can be added to the NFT by embedded processing of configuration data.
  • the index data recorded in the blockchain may have a URI that directly indicates configuration data stored outside the blockchain such as IPFS, or metadata that includes a URI that directly indicates configuration data. It may have a URI that indirectly indicates the configuration data, such as the URI that indicates it. In this way, all NFTs do not need to be recorded on the blockchain, and it is sufficient if at least some data such as index data is recorded on the blockchain.
  • FIG. 18 shows an example of a system 50 according to the fifth embodiment. Points that are not particularly described in the fifth embodiment are the same as those of the systems 10, 20, and 30 according to the above-described embodiments.
  • the system 50 may receive an NFT request with a code C1 indicating the image P1 from a computer such as the terminal 300 (step S181A).
  • Code C1 may be identification information for system 50 to identify the type of target NFT.
  • a database 230 provided in the system 50 includes a plurality of material data P1, P2, P3, and codes C1, C2, C3 are associated with each of the material data P1, P2, P3.
  • a code C1 associated with the material data P1, P2, P3 indicates the corresponding material data P1, P2, P3.
  • the system 50 selects the first material data P1 corresponding to the code C1 received in step S181A, and uses the selected first material data P1 to generate the target NFT (step S182).
  • a target NFT generated using the first material data P1 may be of the type "having an image P1".
  • the destination NFT generated using the first material data P1 may comprise, for example, an identifier (eg, URI) of the first material data or an identifier (eg, URI) of copy data of the first material data.
  • the system 50 may receive an NFT request with a code C2 indicating the image P2 from a computer such as the terminal 300 (step S181B).
  • Code C2 may be identification information for system 50 to identify the type of target NFT.
  • the system 50 selects the second material data P2 corresponding to the code C2 received in step S181B, and uses the selected second material data P2 to generate the target NFT (step S182).
  • the target NFT generated using the second material data P2 may be of the type "having image P2".
  • the destination NFT generated using the second material data P2 may comprise, for example, an identifier (eg, URI) of the second material data or an identifier (eg, URI) of copy data of the second material data.
  • the NFT can be generated without acquiring the material data used to generate the NFT from an external computer such as the terminal 300. However, the system 50 may acquire part of the material data used to generate the NFT from an external computer.
  • the system 50 can generate an NFT using at least the material data P1, P2, P3 that it has before receiving the NFT request (steps S181A, S181B).
  • FIG. 19 shows an example of a system 60 according to the sixth embodiment. Points that are not particularly described in the sixth embodiment are the same as those of the systems 10, 20, 30, and 50 according to the above-described embodiments.
  • the system 60 can receive an NFT request from a computer such as the terminal 300 (not shown) (step S191).
  • the NFT request has data indicating the type of destination NFT to be generated.
  • the data indicating the type may be identification information for system 50 to identify the type of target NFT.
  • the database 230 included in the system 60 includes material data corresponding to multiple types.
  • the database 230 shown in FIG. 19 includes a plurality of material data P11, P12, P13 for the first type (TYPE_A) and a plurality of material data P21, P22, P23 for the second type (TYPE_B). Prepare.
  • the system 60 When the system 60 receives an NFT request having data indicating the first type (TYPE_A) as identification information (step S191A), it identifies that the type is the first type (TYPE_A) based on the NFT request. Furthermore, the system 60 selects the material data (for example, the image P12) used for generating the target NFT from among the plurality of material data P11, P12, P13 corresponding to the identified type. The material data used to generate the target NFT is selected according to a predetermined rule or randomly from a plurality of material data P11, P12, P13 corresponding to the identified type (TYPE_A). System 60 generates the target NFT using the selected material data (step S192). The generated destination NFT may be of type TYPE_A.
  • the system 60 When the system 60 receives an NFT request having data indicating the second type (TYPE_B) as identification information (step S191B), it identifies that the type is the second type (TYPE_B) based on the NFT request. Furthermore, the system 60 selects the material data (for example, the image P23) used for generating the target NFT from among the plurality of material data P21, P22, P23 corresponding to the identified type. The material data used to generate the target NFT is selected according to a predetermined rule or randomly from a plurality of material data P21, P22, P23 corresponding to the identified type (TYPE_B). System 60 generates the target NFT using the selected material data (step S192). The generated destination NFT may be of type TYPE_B.
  • FIG. 20 shows an example of a system 70 according to the seventh embodiment. Points not particularly described in the seventh embodiment are the same as those of the systems 10, 20, 30, 50, and 60 according to the above-described embodiments.
  • the system 70 can receive an NFT request from the user terminal 300 (not shown) (step S191).
  • An NFT request may have a code.
  • a code is data given or notified to a user who wishes to acquire an NFT.
  • a code may be a credential for a user to obtain an NFT.
  • a first user can receive an NFT by transmitting to system 70 a first code assigned or notified to the first user.
  • the second user can receive the NFT by transmitting the second code given or notified to the second user to the system 70
  • the third user can receive the second code given or notified to the third user.
  • 3 codes can be sent to the system 70 to receive the NFT.
  • the code can be identification information for the system 70 to identify the type of target NFT.
  • a code may be data for system 70 to identify the type of material data.
  • the database 230 included in the system 70 includes material data corresponding to multiple types. For example, the database 230 shown in FIG. 20 includes a plurality of material data P11, P12, P13 for the first type (TYPE_A) and a plurality of material data P21, P22, P23 for the second type (TYPE_B). Prepare.
  • the system 70 may have a code list (not shown) that lists codes that may be received.
  • a type is associated with each of a plurality of codes included in the code list.
  • the first code and the second code are associated with the first type (TYPE_A)
  • the third code is associated with the second type (TYPE_B).
  • the material data is of the first type (TYPE_A).
  • the system 70 selects the material data (for example, image P11) used for generating the target NFT from among the first type (TYPE_A) material data P11, P12, and P13.
  • Material data used to generate the target NFT is selected according to a predetermined rule or randomly from a plurality of material data P11, P12, P13 corresponding to the identified type (TYPE_A).
  • the system 70 uses the selected material data to generate the target NFT (step S202).
  • the generated destination NFT may be of type TYPE_A.
  • the system 70 When the system 70 receives an NFT request with a third code (step S201C), it identifies that the type of material data is the second type (TYPE_B) based on the received code.
  • the system 70 selects the material data (for example, the image P22) used for generating the target NFT from the second type (TYPE_B) material data P21, P22, and P23.
  • the material data used to generate the target NFT is selected according to a predetermined rule or randomly from a plurality of material data P21, P22, P23 corresponding to the identified type (TYPE_B).
  • the system 70 uses the selected material data to generate the target NFT (step S202).
  • the generated destination NFT may be of type TYPE_B.
  • the systems 10, 20, 30, 50, 60, and 70 upon receiving the NFT request, convert the material data used for generating the target NFT into a plurality of identifications. Data can be selected according to predetermined rules or randomly.
  • FIG. 21 shows a technology related to the handling of private keys.
  • the technique shown in FIG. 21 can be employed in the system 10 of the first embodiment and systems of other embodiments.
  • the smart contracts 110, 120 that have received the NFT request use one or more private keys Key1, Key2, Key3 possessed by the server 200 of the smart contracts 110, 120 to perform a transaction for NFT generation.
  • is electronically signed step S213).
  • Electronically signed transactions are recorded on the blockchain.
  • An NFT is thereby generated (step S214). Since the smart contracts 110 and 120 on the blockchain that can be referenced by a third party can be referenced by a third party, there is a risk that the private key will be known to the third party if it has a private key. Since an external computer such as the server 200 has the private keys Key1, Key2, and Key3 for NFT generation, the private keys Key1, Key2, and Key3 can be safely stored.
  • the smart contracts 110 and 120 notify the server 200 to that effect and acquire a private key for electronic signature.
  • the server 200 appropriately selects one private key to be used for NFT generation from a plurality of private keys Key1, Key2, and Key3, and provides it to the smart contracts 110 and 120 .
  • Smart contracts 110 and 120 are electronically signed using the obtained private key. That is, the system 10 generates NFTs by means of the smart contracts 110 and 120, but uses private keys stored on the computer 200 outside the smart contracts 110 and 120 to generate the NFTs.
  • the electronic signature may be performed by the server 200 .
  • the smart contracts 110, 120 can receive the NFT request from the web server 350 (step S212).
  • the web server 350 is an example of the user computer shown in FIG. Web server 350 may provide a user interface to user terminal 300 .
  • the user interface is, for example, a website that displays images to be converted to NFTs and receives user operations for acquiring NFTs.
  • the user can use the user terminal 300 to sign in to the website (step S211).
  • the user's private key 301 is used for sign-in.
  • a user has a blockchain address 302 corresponding to a private key 301 .
  • the user's blockchain address 302 is 0x13579 as an example. Blockchain address 302 may be generated from private key 301 .
  • the user can operate the blockchain via the website. That is, the web server 350 can use the private key 301 to electronically sign transactions recorded on the blockchain for users signed into the website.
  • the electronic signature may be performed by the user terminal 300 .
  • the operation of the blockchain by the web server 350 is, for example, calling the smart contracts 1110 and 120 (step S212). Invoking the smart contract here is also sending an NFT request to the smart contract.
  • the user's blockchain address 302 is sent to the smart contracts 110 and 120.
  • Smart contract 302 sends the generated NFT to received blockchain address 302 .
  • the smart contract 110, 120 may receive the NFT request and the destination address 302 of the generated NFT.
  • the blockchain address 302 may be sent to the smart contract 110, 120 after the smart contract 110, 120 is invoked.
  • the user only needs to provide the system 10 (for example, smart contracts 110 and 120) with the blockchain address 302 to which the generated NFT is to be sent. There is no need to provide your private key 301 to the system 10 (eg smart contracts 110, 120). Therefore, it is easy to secure the confidentiality of the user's private key 301 .
  • the owner of the NFT is the system 10 at the time the NFT is generated. . However, since the NFT is generated and then sent to the user's address 302, the user becomes the owner of the generated NFT.
  • a system according to embodiments may be a non-fungible token generation system configured to perform a process of generating non-fungible tokens, and may comprise a database comprising a plurality of material data.
  • the processing for generating the non-fungible token when receiving a non-fungible token request, selects data from a plurality of material data provided in the database according to a predetermined rule or at random, and selects data. generating a non-fungible token using the data.
  • the method according to the embodiment may be as follows. That is, the method according to the embodiment is a non-fungible token generation method performed by a non-fungible token generation system, the non-fungible token generation system comprising a database comprising a plurality of material data. obtain.
  • data is selected according to a predetermined rule or randomly from a plurality of material data provided in the database, and the selected data is used to generate a non-fungible token. Generating Gibble Tokens.
  • Non-fungible token generation system 20 Non-fungible token generation system 30: Non-fungible token generation system 50: Non-fungible token generation system 60: Non-fungible token generation system 70: Non-fungible Bull token generation system 100 : Computer network system 101 : Smart contract 102 : Ticket issuing smart contract 103 : Guarantee certificate issuing smart contract 110 : First smart contract 111 : First module 112 : Second module 113 : Third module 114 : Third module 4 module 115: fifth module 116: fungible token number determination module 117: NFT type determination module 120: second smart contract 200: server 210: processor 212: NFT configuration data incorporation processing 215: reservation acceptance processing 220: memory 230: Database 240: Material data for NFT (database of material data) 245: Configuration data database 250: NFT generation rule 260: Computer program 300: User terminal (user computer) 301 : Private key 302 : Block chain address 310 : Operation screen 311 : Button 312 : Button 313 : B

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

NFTの提供を容易にするため、在庫としてのNFTを保有することの煩雑さの回避が望まれる。開示のノンファンジブルトークン生成システムは、識別情報を有するノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記識別情報に基づいて、生成すべき目的ノンファンジブルトークンの種類を識別し、識別した種類の前記目的ノンファンジブルトークンを生成し、生成された前記目的ノンファンジブルトークンを送信する、ことを実行するよう構成されており、複数の種類の目的ノンファンジブルトークンを生成可能である。

Description

ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法
 本開示は、ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法に関する。本出願は、2021年3月26日出願の日本出願第2021-053535号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用する。
 特許文献1は、ブロックチェーンの一例であるEthereum(イーサリアム)を開示している。イーサリアムで使用される暗号資産(仮想通貨)をイーサ(Ether)という。イーサは、法定通貨と同様に代替性(fungible;ファンジブル)を有する。つまり、イーサは、ファンジブルトークン(代替性トークン)の一種である。
 イーサリアムなどのブロックチェーンにおいて使用可能なトークンとしては、ファンジブルトークンの他に、ノンファンジブルトークン(Non-Fungible Token;代替性トークン、以下「NFT」ということがある)がある。NFTは、例えば、Ethereum Request for Comments(ERC)721規格に従って発行されたトークンである。ERC721規格に準拠したNFTは、NFT-721トークンと呼ばれる。
特開2019-160316号公報
 NFTの販売等のために、要求に応じてNFTが提供されることがある。例えば、NFTを販売するシステムは、NFTの購入希望者等からの要求に応じて、購入希望者等へ、購入されたNFTを送信するよう構成される。この場合、システムは、多数のNFTが購入されることに備えて、多数のNFTを、在庫として、予め保有している必要がある。
 システムが、在庫としてのNFTを保有する場合、在庫管理が煩雑となる。例えば、在庫となるNFTが少ないと在庫切れのおそれがある。逆に、在庫切れを回避しようとすると、システムの管理者は、予め膨大な数のNFTを予め生成しておいて、システムに格納しておく必要がある。システムに在庫となるNFTを多く保有させる場合、システムの管理者は、膨大な数のNFTを予め生成する作業負担を負うことになる。とりわけ、システムが、複数の種類のNFTを提供するよう構成されている場合、NFTの種類毎に多数のNFTを準備する必要が生じ、非常に煩雑である。
 また、NFTを提供する必要が生じてから、必要なNFTの生成作業を行うことも考えられるが、どのようなNFTを生成すべきかの情報を入手するのが容易ではないこともある。このため、NFT生成に時間を要するおそれがあり、煩雑さが生じる可能性がある。
 したがって、NFTの提供を容易にするため、上記のような煩雑さの回避が望まれる。
 本開示のある側面は、ノンファンジブルトークン生成システムである。開示のシステムは、識別情報を有するノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記識別情報に基づいて、生成すべき目的ノンファンジブルトークンの種類を識別し、識別した種類の前記目的ノンファンジブルトークンを生成し、生成された前記目的ノンファンジブルトークンを送信する、ことを実行するよう構成されており、複数の種類の目的ノンファンジブルトークンを生成可能である。開示のシステムは、ノンファンジブルトークンを生成する処理を実行するよう構成されたノンファンジブルトークン生成システムであって、複数の素材データを備えるデータベースを備え、前記ノンファンジブルトークンを生成する前記処理は、識別情報を有するノンファンジブルトークン要求を受信し、前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、ことを備え得る。
 本開示の他の側面は、ファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法である。開示の方法は、識別情報を有するノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記識別情報に基づいて識別された種類の目的ノンファンジブルトークンを生成し、生成された前記目的ノンファンジブルトークンを送信する、ことを備える。開示の方法は、ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であって、前記ノンファンジブルトークン生成システムは、複数の素材データを備えるデータベースを備え、前記方法は、識別情報を有するノンファンジブルトークン要求を受信し、前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、ことを備え得る。
 更なる詳細は、後述の実施形態として説明される。
図1は、第1実施形態に係るノンファンジブルトークン生成システムの構成図である。 図2は、ボックスNFT、パックNFT、カードNFTの関係の説明図である。 図3は、NFT生成処理に関するタイミングチャートである。 図4は、ユーザ端末における操作画面である。 図5は、ユーザ端末におけるNFT要求のための操作及び操作手順を示すフローチャートである。 図6は、目的NFT生成処理のフローチャートである。 図7は、スマートコントラクトの構成図である。 図8は、第1モジュールによる処理のフローチャートである。 図9は、第2モジュールによる処理のフローチャートである。 図10は、第3モジュールによる処理のフローチャートである。 図11は、第4モジュールによる処理のフローチャートである。 図12は、第5モジュールによる処理のフローチャートである。 図13は、第2実施形態に係るノンファンジブルトークン生成システムの構成図である。 図14は、第2実施形態に係るスマートコントラクトによる処理のフローチャートである。 図15は、第3実施形態に係るノンファンジブルトークン生成システムの構成図である。 図16は、第3実施形態に係るスマートコントラクトによる処理のフローチャートである。 図17は、目的ノンファンジブルトークン生成の説明図である。 図18は、第5実施形態に係るノンファンジブルトークン生成システムの構成図である。 図19は、第6実施形態に係るノンファンジブルトークン生成システムの構成図である。 図20は、第7実施形態に係るノンファンジブルトークン生成システムの構成図である。 図21は、第8実施形態に係るノンファンジブルトークン生成システムの構成図である。
<1.ノンファンジブルトークン生成システム及びノンファンジブルトークン生成システムによって実行される方法の概要>
(1)実施形態に係るノンファンジブルトークン生成システム(以下、単に「システム」ということがある)は、ノンファンジブルトークンを生成するよう構成されている。ノンファンジブルトークン及びファンジブルトークンは、ブロックチェーンにおいて取引が記録され得る。ノンファンジブルトークンの所有者は、ブロックチェーンにおいて記録され得る。ブロックチェーンにおいて記録されたノンファンジブルトークンは、ブロックチェーンにおいて公開され得るものであって、参照可能であり得る。ノンファンジブルトークンは、例えば、コンピュータゲームにおいて取引されるアイテム若しくはキャラクタ、デジタルトレーディングカード、デジタルチケット、デジタル証書又はその他のデジタルデータとして用いられ得る。デジタルトレーディングカードは、デジタルコレクタブルカードとも呼ばれる。ノンファンジブルトークンは、一例として、Ethereum Request for Comments(ERC)721規格に従って発行されたトークンであり得る。ノンファンジブルトークンは、他のノンファンジブルトークンとは区別される独自の価値を有することがある。このため、ノンファンジブルトークンは、他のノンファンジブルトークンとの区別を可能にするための固有の識別子を有する。NFTの識別子は、例えば、ブロックチェーンにおいてノンファンジブルトークンを示すアドレス又はその他の識別子である。NFTの識別子は、NFT-IDとも呼ばれる。
 実施形態に係るシステムは、一つのコンピュータによって構成されてもよいし、複数のコンピュータからなるコンピュータネットワークによって構成されていてもよい。コンピュータネットワークは、例えば、インターネットであり得る。コンピュータネットワークは、P2Pコンピュータネットワークであり得る。P2Pコンピュータネットワークは、例えば、インターネットによって複数のコンピュータが接続されたネットワークである。システムは、ブロックチェーンを構成するコンピュータネットワークを含み得る。
 システムによるノンファンジブルトークンの提供は、例えば、ノンファンジブルトークンの販売、譲渡、又は他のノンファンジブルトークンとの交換のために行われる。販売、譲渡、又は交換等のために、システムから提供されるノンファンジブルトークンを、目的ノンファンジブルトークンという。システムが目的ノンファンジブルトークンを送信することで、目的ノンファンジブルトークンが提供される。
 実施形態に係るシステムは、一例として、ノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求に応じた目的ノンファンジブルトークンを生成し、前記目的ノンファンジブルトークンを送信する、ことを実行するよう構成され得る。生成される目的ノンファンジブルトークンは、1個でもよいし、複数でも良い。システムは、ノンファンジブルトークン要求を受信したことをトリガとして、目的ノンファンジブルトークンを生成することができる。システムは、ノンファンジブルトークン要求を受信する度に、ノンファンジブルトークン要求に応じた目的ノンファンジブルトークンを生成することができる。システムは、ノンファンジブルトークン要求を受信する前の時点において、ノンファンジブルトークン要求に応じた目的ノンファンジブルトークンを非保有でよい。すなわち、システムは、提供すべき目的ノンファンジブルトークンの在庫を保有する必要がない。
 前記ノンファンジブルトークン要求は、例えば、目的ノンファンジブルトークンの送信をシステムに要求するコマンドである。前記ノンファンジブルトークン要求は、例えば、目的ノンファンジブルトークンの購入又は譲受の希望を示すコマンド、又は、あるノンファンジブルトークンから目的ノンファンジブルトークンへの交換の希望を示すコマンドである。ノンファンジブルトークン要求は、目的ノンファンジブルトークンの送信をシステムに対して明示的に要求するものであってもよいし、明示的な要求を示してはいないが、システムが、その受信に対する応答として、目的ノンファンジブルトークンの送信が必要であると判断し得るコマンドであってもよい。例えば、システムは、トークンの受信をノンファンジブルトークン要求であるとみなすように構成されていていてもよい。ノンファンジブルトークン要求であるとみなされるトークンを「要求送信トークン」という。要求送信トークンは、例えば、ファンジブルトークン又はノンファンジブルトークンである。また、ノンファンジブルトークン要求は、要求送信トークンと、トークン以外の情報と、を含んでも良い。要求送信トークンは、ノンファンジブルトークン要求としてのコマンドととともに送信されてもよい。
 前記ノンファンジブルトークン要求は、ネットワークを介して、システムへ送信され得る。ノンファンジブルトークン要求の送信元は、例えば、目的ノンファンジブルトークンの提供を受けるユーザの端末、目的ノンファンジブルトークンの提供を受けるユーザのために動作する第三者のコンピュータ、その他目的ノンファンジブルトークンを受信することになるコンピュータである。前記ノンファンジブルトークン要求の送信が、要求送信トークンの送信を含む場合、その要求送信トークンの送信元は、要求送信トークンの所有者であるユーザのアカウント(ブロックチェーンにおけるユーザのアドレス)である。なお、目的ノンファンジブルトークンの送信先は、ノンファンジブルトークン要求の送信元であってもよいし、ノンファンジブルトークン要求の送信元以外であってもよい。目的ノンファンジブルトークンの送信先は、例えば、要求送信トークンの所有者であるユーザのアカウント(ブロックチェーンにおけるユーザのアドレス)であり得る。
 システムは、一つのノンファンジブルトークン要求に応じて、一つの目的ノンファンジブルトークンを生成し、送信し得る。また、システムは、一つのノンファンジブルトークン要求に応じて、複数の目的ノンファンジブルトークンを生成し、送信し得る。この場合、システムは、複数の目的ノンファンジブルトークンを一括提供できる。
 システムは、複数の種類の目的ノンファンジブルトークンを生成可能である。この場合、システムは、様々な種類の目的ノンファンジブルトークンを提供できる。また、システムは、一つのノンファンジブルトークン要求に応じて、複数の種類の目的ノンファンジブルトークンを生成し得る。この場合、システムは、複数の種類の目的ノンファンジブルトークンを一括提供し得る。目的ノンファンジブルトークンの種類(タイプ)は、例えば、後述の目的ノンファンジブルトークンのNFTのタイプのほか、目的ノンファンジブルトークンのカテゴリ又はジャンルであってもよい。目的ノンファンジブルトークンの種類は、システムによって識別され得る。カテゴリは、例えば、後述のカードNFTに設定された区分を示す。タイプは、例えば、後述のカードNFT、パックNFT、ボックスNFTといった区分を示す。目的ノンファンジブルトークンの種類は、後述のチケットNFTの種類であってもよいし、後述の証書NFTの種類であってもよい。
 なお、ここでの「種類」は、ノンファンジブルである一つ一つのノンファンジブルトークンの違いによって区別されるものであってもよいが、好ましくは、2以上のノンファンジブルトークンに共通する性質としてシステムによって識別され得るものである。複数のノンファンジブルトークンにおいて、ノンファンジブルトークンの種類が同じである場合、ノンファンジブルトークンを構成する構成データの少なくとも一部が共通であり得る。逆に、ノンファンジブルトークンの種類が異なる場合、目的ノンファンジブルトークンを構成する構成データが異なり得る。
 前記ノンファンジブルトークン要求は、識別情報を有することができる。識別情報は、生成すべき目的ノンファンジブルトークンの種類を識別するために用いられ得る。ノンファンジブルトークン要求が前記識別情報を有することで、システムは、ノンファンジブルトークン要求を受信すると、生成すべき目的ノンファンジブルトークンの種類を識別し、要求に応じた適切な目的ノンファンジブルトークンを生成することができる。したがって、ノンファンジブルトークン要求を受信するシステムは、自律的に、適切な種類の目的ノンファンジブルトークンを生成できる。
 前記識別情報は、ノンファンジブルトークン要求自体であり得る。例えば、ノンファンジブルトークン要求のためのコマンドが、目的ノンファンジブルトークンの複数の種類に応じて、複数用意されている場合、ノンファンジブルトークン要求自体が、目的ノンファンジブルトークンの種類を識別するために用いられ得る。
 前記識別情報は、ノンファンジブルトークン要求に含まれる情報であり得る。例えば、複数の種類の目的ノンファンジブルトークン要求のために共通して用いられるコマンドが、目的ノンファンジブルトークンの種類を示すパラメータを含んでいても良い。
 前記識別情報は、ノンファンジブルトークン要求とともに送信された情報であり得る。例えば、ノンファンジブルトークン要求とともに送信さる情報は、例えば、目的ノンファンジブルトークンに交換されるノンファンジブルトークン、ファンジブルトークン、又はその他のデジタルデータである。ここで、「ノンファンジブルトークン要求とともに送信」とは、ノンファンジブルトークン要求と完全に同時に送信される必要はなく、多少時間が前後しても、ノンファンジブルトークン要求と関連付け又は対応付けられており、ノンファンジブルトークン要求とともに送信されたと実質的にみなせる情報であれば足りる。前記識別情報は、前記要求送信トークンの数又は種類であり得る。
 ノンファンジブルトークン要求が要求送信トークンを含む場合、前記識別情報は、例えば、要求送信トークンの数であってもよい。要求送信トークンは、例えば、目的ノンファンジブルトークンを購入するための対価として用いられるファンジブルトークンである。この場合、要求送信トークンとしてのファンジブルトークンの数に応じて、目的ノンファンジブルトークンの種類が識別され得る。要求送信トークンとしてのノンファンジブルトークンの数は、目的ノンファンジブルトークンの値段に相当し得る。なお、前記識別情報は、要求送信トークンとしてのノンファンジブルトークンの数であってもよい。前記識別情報は、要求送信トークンの種類であってもよい。要求送信トークンは、例えば、目的ノンファンジブルトークンと交換される他のノンファンジブルトークンである。この場合、要求送信トークンとしてのノンファンジブルトークンの種類に応じて、目的ノンファンジブルトークンの種類が識別され得る。前記識別情報は、前記要求送信トークンがノンファンジブルトークンであるか、ファンジブルトークンであるか、の違いで示される情報あってもよい。この場合、例えば、前記要求送信トークンがノンファンジブルトークンである場合には、目的ノンファンジブルトークンが第1の種類であると識別され、前記要求送信トークンがファンジブルトークンであるか場合には、目的ノンファンジブルトークンが第2の種類であると識別され得る。
 前記識別情報は、前述した識別情報のいずれか1つ単独又は2つ以上の組み合わせであってもよい。2つ以上の情報の組み合わせを用いることで、様々な種類の中から、適切な種類を識別するのが容易になる。
 前記目的ノンファンジブルトークンを生成することは、前記識別情報に基づいて識別された種類の前記目的ノンファンジブルトークンを生成することを備え得る。この場合、システムは、ノンファンジブルトークン要求が有する識別情報に基づいて識別された適切な種類の目的ノンファンジブルトークンを生成することができる。したがって、システムは、種類毎の目的ノンファンジブルトークンを予め保有しておく必要がない。システムは、ノンファンジブルトークン要求を受信する前から、システムが有している素材データを用いてノンファンジブルトークンを生成することができる。システムは、ノンファンジブルトークン生成に用いられる素材データを、識別情報に基づいて決定することができる。
(2)前記ノンファンジブルトークン要求を受信することは、ファンジブルトークン又はノンファンジブルトークンである要求送信トークンを受信することを含み、前記目的ノンファンジブルトークンの種類は、前記要求送信トークンの数又は種類を前記識別情報として用いて識別されるのが好ましい。
(3)システムは、前記要求送信トークンとしてファンジブルトークン及びノンファンジブルトークンのいずれも受信可能に構成されているのが好ましい。前記要求送信トークンとして前記ファンジブルトークンを受信した場合、前記目的ノンファンジブルトークンの種類は、前記要求送信トークンとして受信した前記ファンジブルトークンの数に基づいて識別され、前記要求送信トークンとして前記ノンファンジブルトークンを受信した場合、前記目的ノンファンジブルトークンの種類は、前記要求送信トークンとして受信した前記ノンファンジブルトークンの種類に基づいて識別されるのが好ましい。
(4)システムは、ブロックチェーンにおけるスマートコントラクトを実行するコントラクトコンピュータを備えることができる。スマートコントラクトは、ブロックチェーンを構成するコンピュータによって実行されるソフトウェア(コンピュータプログラム)である。スマートコントラクトは、例えば、システムの管理者によって、ブロックチェーンにおいて実行されるように、ブロックチェーンに実装される。コントラクトコンピュータは、ブロックチェーンを構成するコンピュータネットワークシステムを構成するいずれかのコンピュータである。ブロックチェーンを構成するコンピュータネットワークを構成する複数のコンピュータのうち、コントラクトコンピュータとして機能するコンピュータは、動的に変動し得る。
 前記スマートコントラクトは、前記識別情報を有するノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記識別情報に基づいて、生成すべき前記目的ノンファンジブルトークンの種類を識別し、識別された種類の前記目的ノンファンジブルトークンを生成し、生成された前記目的ノンファンジブルトークンを送信する、ことを前記コントラクトコンピュータに実行させるよう構成されているのが好ましい。前記コントラクトコンピュータは、複数の種類の目的ノンファンジブルトークンを生成可能であるのが好ましい。システムにおいては、ユーザの選択操作を受け付けるユーザ用コンピュータが利用され得る。前記ユーザ用コンピュータは、前記ユーザの前記選択操作による選択に応じて前記要求送信トークンの数又は種類を特定し、特定された数又は種類の前記要求送信トークンを前記スマートコントラクトへ送信させるよう構成されているのが好ましい。この場合、ユーザの選択操作に応じた要求送信トークンの数又は種類が特定され、その要求送信トークンの数又は種類が前記識別情報となり得る。要求送信トークンの送信元は、例えば、前記ブロックチェーンにおける前記ユーザのアカウント(ブロックチェーンにおけるユーザのアドレス)であり、この場合、ユーザ用コンピュータは、ユーザのために、要求送信トークンの送信処理を実行することになる。なお、ユーザ用コンピュータは、例えば、後述のサーバ350又はユーザ端末300である。ユーザ用コンピュータは、ユーザのために動作するコンピュータであれば足り、ユーザによって所有されている必要はない。つまり、ユーザ用コンピュータは、ユーザ端末300である必要はなく、ユーザ以外の者(例えば、システムの管理者)によって所有又は管理されているサーバであってもよい。
(5)前記ノンファンジブルトークンを生成することは、複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、前記目的ノンファンジブルトークンを生成することを含むのが好ましい。前記識別情報に基づいて選択されたデータを用いることは、選択された素材データ自体を用いることであってもよいし、選択された素材データの複製データを用いることであってもよい。前記ノンファンジブルトークンを生成することは、ブロックチェーンにおけるノンファンジブルトークン発行処理を実行することで発行される初期ノンファンジブルトークンに、構成データを組み込むことを備えるのが好ましい。前記構成データは、前記識別情報に基づいて生成されるのが好ましい。なお、素材データは、システムにおいて、識別情報に対応付けて保存されているか、識別情報に基づいて識別される種類に対応付けて保存されているのが好ましい。
 ブロックチェーンにおけるノンファンジブルトークン発行処理は、例えば、ノンファンジブルトークン発行のためのコマンドを実行することによって行われる。ノンファンジブルトークン発行のためのコマンドは、例えば、ノンファンジブルトークンが発行されるブロックチェーンにおいて用意されている。ノンファンジブルトークン発行処理は、ブロックチェーンを構成するコンピュータにおいて実行される。ノンファンジブルトークン発行処理によって発行されたノンファンジブルトークンには、ノンファンジブルトークンの識別子(NFT-ID)が付与される。ノンファンジブルトークンの識別子は、ノンファンジブルトークンをユニークに識別するためにノンファンジブルトークン毎に付与される。ノンファンジブルトークンの識別子は、ブロックチェーンにおけるノンファンジブルトークンのアドレスであってもよいし、それ以外の識別子であってもよい。システムは、発行されたノンファンジブルトークンの識別子を取得し得る。
 初期ノンファンジブルトークンは、ノンファンジブルトークン発行処理によって発行されるトークンであり、構成データが組み込まれていない状態の未完成のノンファンジブルトークンであり得る。初期ノンファンジブルトークンに構成データが組み込まれて、目的ノンファンジブルトークンが完成する。初期ノンファンジブルトークンは、少なくとも、ノンファンジブルトークンの識別子を有している。初期ノンファンジブルトークンは、識別子以外に、その他の必要な情報を含んでも良い。構成データの組み込みは、初期ノンファンジブルトークンの発行とほぼ同時に行われても良いし、初期ノンファンジブルトークンの発行後に行われても良い。
 前記構成データは、例えば、画像データ、音データ、及び文字データの少なくともいずれか一つである。前記構成データは、一つのデータであってもよいし、複数のデータの組み合わせであってもよい。画像データ及び文字データは、ノンファンジブルトークンを保有するユーザ又は第三者の端末において、保有するノンファンジブルトークンを画面表示するために用いられ得る。音データは、ノンファンジブルトークンを保有するユーザ又は第三者の端末において、画像データ又は文字データの表示とともに、出力され得る。画像データは、動画データであってもよいし、静止画データであってもよい。画像データは、後述のトレーディングカードにおける題材、後述のチケットの内容、又は後述の保証証書の内容若しくは保証対象の製品に対応したものであってもよい。
 前記構成データは、前記識別情報に基づいて識別された前記種類に基づいて生成され得るため、前記種類に応じた適切な構成データが、初期ノンファンジブルトークンに組み込まれ得る。同じ種類の目的ノンファンジブルトークンには、その種類に対応した少なくとも1つの共通データが前記構成データとして組み込まれ得る。つまり、複数の目的ノンファンジブルトークンが同じ種類である場合、それらの目的ノンファンジブルトークンは、少なくとも1つの共通する構成データを有し得る。また、複数の目的ノンファンジブルトークンが異なる種類である場合、それらの目的ノンファンジブルトークンには、種類の違いに応じた構成データの違いが存在し得る。このような目的ノンファンジブルトークンの種類の違いがあっても、システムは、ノンファンジブルトークン要求から種類を識別して、適切な構成データを決定し得る。
(6)前記目的ノンファンジブルトークンは、選択された前記データの複製データを示す識別子を有するのが好ましい。
前記複製データを示す識別子は、前記複製データを示すユニフォームリソースアイデンティファイアであるのが好ましい。なお、前記ノンファンジブルトークン発行処理は、前記ノンファンジブルトークン要求を受信した後に行われるのが好ましい。この場合、初期ノンファンジブルトークンをノンファンジブルトークン要求の受信前に発行しておいて予め在庫として準備しておく必要がない。前記構成データは、他の構成データの生成にも用いられ得る複数の素材データの中から前記識別情報を用いて決定された素材データを用いて、前記目的ノンファンジブルトークンのためのユニークなデータとして生成されるのが好ましい。この場合、目的ノンファンジブルトークンに組み込まれた構成データは、個々の目的ノンファンジブルトークンについてユニークなデータとなり、稀少価値を生じさせ易い。構成データは、他の構成データの生成にも共通して用いられる素材データを複製して生成され得る。ある構成データは、他の構成データとは異なるファイル名で保存又は他の構成データとは異なる位置に保存されることで、仮にそのデータ内容が同じであっても、他の構成データとは区別し得るユニークなものとなる。構成データは、素材データを複製して得られたものに、シリアル番号・その他の文字若しくは記号又は画像データなどのデータが付加されていることで、他の構成データと区別がより容易なものとなる。前記初期ノンファンジブルトークンに前記構成データを組み込むことは、前記初期ノンファンジブルトークンに、前記構成データの識別子を対応付けることを備えるのが好ましい。前記構成データの識別子は、例えば、前記構成データのユニフォームリソースアイデンティファイア(URI)である。URIは、例えば、ユニフォームリソースロケータ(URL)である。生成された構成データは、例えば、インターネット上のデータサーバに格納され、URI又はURLは、そのデータサーバに格納された構成データを示す識別子として機能し得る。なお、URIは、ユニフォームリソースネーム(URN)であってもよい。
(8)前記システムは、前記識別情報に基づいて、生成すべき前記目的ノンファンジブルトークンの個数を識別することを更に実行するよう構成されているのが好ましい。この場合、前記識別情報は、生成すべき目的ノンファンジブルトークンの個数を識別するための情報としても用いられる。
 システムは、第1コンピュータと、第2コンピュータと、を備えて構成されていてもよい。第1コンピュータ及び第2コンピュータは、それぞれ、1台のコンピュータによって構成されていてもよいし、ネットワークを介して接続された複数のコンピュータによって構成されていてもよい。第1コンピュータは、ブロックチェーンを構成するコンピュータネットワークシステムであってもよい。前記第1コンピュータと第2コンピュータとは、ネットワークを介して接続されているのが好ましい。第2コンピュータは、前記構成データの候補又は元となる複数の素材データを備えているのが好ましい。
 前記第1コンピュータは、前記ノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記情報を用いて前記種類を識別し、前記ノンファンジブルトークン発行処理を実行することで、前記初期ノンファンジブルトークンを発行する、ことを少なくとも備える第1処理を実行するよう構成されているのが好ましい。第1処理は、ブロックチェーンにおけるノンファンジブルトークン発行処理を備えるため、ブロックチェーンに実装されたスマートコントラクトによって実行されるのが好ましい。
 前記第2コンピュータは、前記第1コンピュータが識別した前記種類に応じて、前記複数の素材データの中から前記構成データとなる素材データを選択する第2処理を実行するよう構成されているのが好ましい。第2処理は、選択された素材データの複製を前記構成データとして保存することを更に含んでも良い。保存された前記構成データを示すURI(URL)は、第2コンピュータから、スマートコントラクト(第1コンピュータ)に与えられ、スマートコントラクト(第1コンピュータ)は、そのURI(URL)を初期ノンファンジブルトークンに対応付けることができる。第2コンピュータは、ブロックチェーンとは別に設けられたコンピュータであるのが好ましい。第2コンピュータは、例えば、システムの管理者によって管理されるサーバコンピュータである。
 第1処理と第2処理とを別々のコンピュータで実行することにより、それぞれの処理を分けて管理でき、管理が容易になる。特に、第2処理は、多種多様になり得る素材データを扱うため、第1処理とは分離することで、素材データの変更等があっても、第1処理側の変更を回避、又は、変更を少なくできる。また、スマートコントラクトは、記述できるプログラムコード量(記述できる工程数)に制約が設けられていることがあるため、第1処理がスマートコントラクトによって実行される場合、第1処理と第2処理とを分離しておくことで、第1処理の工程数の増大を回避するのが容易である。
 前記第2処理は、前記第1コンピュータが前記初期ノンファンジブルトークンを発行したことを、前記第2コンピュータが検出した場合に実行されるのが好ましい。この場合、前記第1コンピュータが前記初期ノンファンジブルトークンを発行したことをトリガとして、第2処理を開始することができる。第2コンピュータは、第1コンピュータが初期ノンファンジブルトークンを発行したことを、第1コンピュータからの通知の受信によって検出してもよい。また、第2コンピュータは、第1コンピュータ(第1処理を実行するスマートコントラクト)の挙動を監視し、初期ノンファンジブルトークンが発行されたことを、第1コンピュータからの通知なしで第2コンピュータが自発的に検出してもよい。なお、ノンファンジブルトークンの発行及び発行されたノンファンジブルトークンの内容は、ブロックチェーンにおいて参照可能に記録されているため、第2コンピュータは、ブロックチェーンにおけるノンファンジブルトークン発行状況及びその内容を確認することで、第1コンピュータによる初期ノンファンジブルトークンの発行を検出してもよい。
 第1コンピュータ(スマートコントラクト)は、目的ノンファンジブルトークンの種類を示す情報を有する初期ノンファンジブルトークンを発行してもよい。この場合、第2コンピュータは、ブロックチェーンにおいて、発行された初期ノンファンジブルトークンが有する情報を参照し、目的ノンファンジブルトークンの種類を識別し、その種類に応じた適切な構成データを決定し、その構成データを初期ノンファンジブルトークンに組み込むことができる。
 前記第2コンピュータは、前記第1コンピュータから、前記目的ノンファンジブルトークンの前記種類を示す情報を備える生成条件を取得するよう構成されていてもよい。
(9)前記ノンファンジブルトークン要求を受信することは、ノンファンジブルトークンである要求送信トークンを受信することを含むことができる。前記要求送信トークンであるノンファンジブルトークンは、生成すべき前記目的ノンファンジブルトークンの種類を識別するために用いられる前記識別情報を有するのが好ましい。前記要求送信トークンであるノンファンジブルトークンが有する前記識別情報は、例えば、前記要求送信トークンであるノンファンジブルトークンの種類を示す情報である。システムは、前記要求送信トークンであるノンファンジブルトークンが有する前記識別情報に基づいて、生成すべき目的ノンファンジブルトークンを識別することができる。前記識別情報は、前記目的ノンファンジブルトークンに組み込まれる構成データとして用いられる情報を有していても良い。この場合、システムは、前記要求送信トークンであるノンファンジブルトークンが有する情報を、目的ノンファンジブルトークンに組み込まれる構成データの少なくとも一部として用いて、目的ノンファンジブルトークンを生成できる。
(10)前記ノンファンジブルトークン要求が有する前記識別情報は、前記複数の素材データのいずれかを示すデータを含むのが好ましい。前記システムは、前記目的ノンファンジブルトークンを生成するための生成用プライベートキーを備え、前記生成用プライベートキーを用いて前記目的ノンファンジブルトークンを生成するよう構成されているのが好ましい。
 実施形態に係る方法は、ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であり得る。前記方法は、識別情報を有するノンファンジブルトークン要求を受信し、前記ノンファンジブルトークン要求が有する前記識別情報に基づいて識別された種類の目的ノンファンジブルトークンを生成し、生成された前記目的ノンファンジブルトークンを送信する、ことを備える。また、実施形態に係る方法は、ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であって、前記ノンファンジブルトークン生成システムは、複数の素材データを備えるデータベースを備え得る。前記方法は、識別情報を有するノンファンジブルトークン要求を受信し、前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、ことを備え得る。実施形態に係るシステムは、ノンファンジブルトークンを生成する処理を実行するよう構成されたノンファンジブルトークン生成システムであって、複数の素材データを備えるデータベースを備え得る。前記ノンファンジブルトークンを生成する前記処理は、識別情報を有するノンファンジブルトークン要求を受信し、前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、ことを備え得る。前記システムは、前記ノンファンジブルトークンを生成するための生成用プライベートキーを備え、前記プライベートキーを用いて前記ノンファンジブルトークンを生成するよう構成されているのが好ましい。
 実施形態に係るコンピュータプログラムは、開示の処理のすくなくともいずれか1つをプロセッサに実行させる。コンピュータプログラムは、コンピュータ読み取り可能な、非一時的な記憶媒体に格納される。
<2.ノンファンジブルトークン生成システム及びノンファンジブルトークン生成システムによって実行される方法の例>
 以下、図面を参照して、好適な実施形態を説明する。以下の説明は、好適な実施形態の一例を示すものであり、本発明を限定するものではない。
<2.1 第1実施形態:カードNFT生成システム>
 図1は、第1実施形態に係るノンファンジブルトークン生成システム10(NFT生成システム)の一例を示している。第1実施形態に係るシステム10は、ブロックチェーン等のコンピュータネットワークシステム100に実装されたスマートコントラクト101を備え得る。スマートコントラクト101は、ブロックチェーン等のコンピュータネットワークシステム100(第1コンピュータ)に実装されたソフトウェア(コンピュータプログラム)であり、所定のプロトコルを自動的に実行する。実施形態に係るスマートコントラクト101は、ブロックチェーンにおけるアドレスであるコントラクトアドレスを有する。スマートコントラクト101は、コントラクトアドレスに格納されている。スマートコントラクト101は、他のコンピュータによって呼び出されることで実行される。スマートコントラクト101を呼び出すコンピュータは、例えば、ユーザのために動作するサーバ350、又は、ユーザ端末300である。サーバ350は、例えば、ユーザ端末300によってアクセスされるアプリケーションサーバである。サーバ350は、システム10を構成し得る。サーバ350は、インターネット等のネットワーク上に設けられ得る。スマートコントラクト101は、実施形態に係るNFT生成処理(第1処理)を実行するよう構成されている。ブロックチェーンは、図1に示すように、複数のコンピュータが相互に接続されたP2Pのコンピュータネットワークによって構成されている。スマートコントラクト101は、コンピュータネットワークシステム100を構成する複数のコンピュータのいずれかによって実行され得る。
 第1実施形態に係るシステム10は、サーバ200(第2コンピュータ)を備える。サーバ200は、例えば、スマートコントラクト101における処理(第1処理;NFT生成処理)処理を補助する。サーバ200は、後述のユーザ端末300における処理を補助してもよい。サーバ200は、その他、システム10の管理のための処理を行っても良い。システム10は、前述のサーバ350を、システム10の構成要素の一つとして備えても良い。
 サーバ200(第2コンピュータ)は、インターネット等のネットワークを介して、スマートコントラクト101が実装されたコンピュータネットワークシステム100(第1コンピュータ)と接続されている。サーバ200とスマートコントラクト101とは相互に通信可能である。
 サーバ200は、プロセッサ210及びメモリ220を備えるコンピュータによって構成されている。前述のサーバ350も同様である。サーバ200及びサーバ350は複数のコンピュータによって構成されてもよい。メモリ220は、プロセッサ210に接続されている。メモリ220は、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。メモリ220は、プロセッサ210によって実行されるコンピュータプログラム260を備える。プロセッサ210は、メモリ220に格納されたコンピュータプログラム260を読み出して実行する。コンピュータプログラム260は、サーバ200が実行する処理のためのプログラムコードを有する。サーバ200が実行する処理は、例えば、後述のNFT構成データ組込処理212(第2処理)を含む。
 メモリ220は、データベース230を備える。データベース230は、例えば、NFT用素材データ240(素材データのデータベース)を備える。データベース230は、複数の素材データを備える。システム10は、複数の素材データの中から選択されたデータを用いて、ノンファンジブルトークンを生成し得る。データベース230は、さらに、NFT生成規則250を備え得る。NFT用素材データ240及びNFT生成規則250については後述される。データベース230は、後述のノンファンジブルトークン要求(NFT要求)を受信する前から、素材データを備える。したがって、システム10は、NFTの生成の際に、既に有している素材データを、システム10外部から、受信する必要がない。
 第1実施形態に係るシステム10は、デジタルカードNFTの販売及び交換サービスを提供するため、デジタルカードNFTを生成する。システム10は、デジタルカードNFTを無償配布するサービスを提供してもよい。システム10は、デジタルカードNFTの購入又は交換を希望するユーザが有する端末300(ユーザ端末)との間で、ネットワークを介して、通信可能である。ユーザ端末300は、例えば、ユーザが有するスマートフォン、タブレット、ウェアラブルデバイス、パーソナルコンピュータ、又はその他のコンピュータである。第1実施形態に係るシステム10は、複数の種類のNFT(デジタルカードNFT;目的NFT)を生成可能に構成されている。第1実施形態に係るシステム10は、NFTの取得を希望するユーザの操作に基づいて生成されたノンファンジブルトークン要求を受信すると、NFTを生成し、生成したNFTの所有者が前記ユーザであることをブロックチェーンに記録する処理を実行するよう構成されている。例えば、第1実施形態に係るシステム10は、複数の種類のNFTの中からユーザが選択した種類のNFTを生成し、ユーザ(ブロックチェーンにおけるユーザアカウント)へ送信する。データベース230は、複数の種類それぞれに対応した素材データを備え得る。システム10は、データベース230が備える複数の素材データの中から、作成すべきNFTの種類に対応した素材データを選択し、選択されたデータを用いて、NFTを生成し得る。なお、システム10は、素材データのほか、システム10外部から受信したデータも用いてNFTを生成してもよい。
 第1実施形態に係るシステム10によって提供されるデジタルカードNFTは、例えば、デジタルトレーディングカードをNFT化したものである。NFT化とは、データ又はデータを直接的又は間接的に示すURI等の識別子をブロックチェーンにおけるトークンとして記録することである。デジタルカードは、デジタル化されたトレーディングカードである。デジタルトレーディングカードは、コンピュータ画面上に表示される。以下では、デジタルカードNFTを、カードNFT(cardNFT)という。カードNFTは、任意の第三者との間で、取引可能である。カードNFTの取引記録及び過去及び現在のカードNFTの所有者は、ブロックチェーンにおいて記録される。カードNFT及びその他のNFTは、システム10外の取引所コンピュータにおいても取引可能である。
 トレーディングカードは、コレクタブルカードとも呼ばれる。トレーディングカードは、そのトレーディングカードにおける題材に対応した様々な画像を有し、収集又は交換のために、販売される。題材となる画像は、例えば、芸能人、歌手、スポーツ選手、その他著名人、漫画・ゲーム・アニメーションなどのキャラクタ、ゲームのアイテム、乗物、機械、器具、動物、植物などの画像である。画像は、カードNFTの表示のため、カードNFTの保有者のコンピュータ又はそのカードNFTを参照できる第三者のコンピュータの画面に表示される。トレーディングカードは、題材となる画像等によって、異なる価値を有することがある。発行数の少ないトレーディングカードは、稀少価値を有することがある。
 図2に示すように、実施形態に係るカードNFTには、カードNFTの題材となる画像データD1,D2,D3等が組み込まれて構成されている。また、実施形態に係るカードNFTには、複数のカテゴリC1,C2,C3が設定されている。カテゴリC1,C2,C3は、システム管理者によって設定されたカードNFTの種類であり、カードNFTのランク、ジャンル、又は性質などを示す。同じ画像データD1,D2,D3を有するカードNFTであっても、そのカードに付与されたカテゴリC1,C2,C3が異なれば、異なる種類のカードNFTとして扱われる。したがって、カテゴリの数がM個であり、システム10に用意された題材となる画像データの数がN個である場合、カードNFTの種類はM×Nとなり得る。したがって、非常に多種類のカードNFTが存在し得ることになり、ユーザによるカードNFTの収集・交換の楽しみが増加する。
 実施形態において、カードNFTは、パック(pack)と呼ばれる単位で販売又は取引され得る。1個のパックは、システム10を利用することで、1又は複数のカードNFTと交換可能である。つまり、パックの保有者は、パックを1又は複数のカードNFTと引き換える権利を有する。ただし、ユーザは、パックがどのようなカードNFTと交換されるかは、実際に交換されるまで知り得ない。第1実施形態においては、パックもNFT化されている。NFT化されたパックをパックNFT(packNFT)という。
 実施形態において、パックNFTは、1又は複数のカードNFTと交換可能であることを示すだけであり、交換される前の時点においては、そのパックNFTが実際にどのようなカードNFTと交換されるかを示さない。また、パックNFTは、そのパックNFTと交換されるカードNFTを備えているわけではなく、そのパックNFTと交換されるカードNFTに関する情報を有しているわけではない。したがって、ユーザは、パックNFTを保有していても、そのパックNFTがどのようなカードNFTと交換されるかは、実際に交換されるまで知り得ない。この結果、パックNFTを保有するユーザは、現物の未開封パックを有しているのと同様の体験(Experience)が得られる。すなわち、現物のトレーディングカードが封入された現物の未開封パックは、開封するまで、どのようなトレーディングカードがはいっているかわからないという楽しみがある。同様に、パックNFTにおいてもカードNFTに交換するまで、どのようなカードNFTが得られるかわからないという楽しみが得られる。
 パックNFTは、任意の第三者との間で、取引可能である。取引記録及び過去及び現在のカードNFTの所有者は、ブロックチェーンにおいて記録される。パックNFTも取引可能であるため、パックNFTの転売も可能である。特定の種類のパックNFTが限定販売である場合、稀少価値が期待できる。
 図2に示すように、パックNFTとしては、一例として、6枚のカードNFTと交換されるpack6NFTと、3枚のカードNFTと交換されるpack3NFTと、がある。複数の種類のパックNFTが容易されていることでユーザの利便性が向上する。
 実施形態において、パックNFTは、ボックス(box)と呼ばれる単位で販売又は取引され得る。1個のボックスは、システムを利用することで、複数のパックNFTと交換される。ここでは、一例として、図2に示すように、1個のボックスは、6個のpack6NFTと交換される。つまり、ボックスの保有者は、ボックスを6個のパックと引き換える権利を有する。第1実施形態においては、ボックスもNFT化されている。NFT化されたボックスをボックスNFT(boxNFT)という。
 実施形態において、ボックスNFTは、複数のパックNFTと交換可能であることを示すだけであり、交換される前の時点においては、そのボックスNFTが実際にどのパックNFTと交換されるかを示さない。また、ボックスNFTは、そのボックスNFTと交換されるパックNFTを備えているわけではなく、そのボックスNFTと交換されるパックNFTに関する情報を有しているわけではない。
 ボックスNFTは、任意の第三者との間で、取引可能である。取引記録及び過去及び現在のボックスNFTの所有者は、ブロックチェーンにおいて記録される。ボックスNFTも取引可能であるため、ボックスNFTの転売も可能である。特定の種類のボックスNFTが限定販売である場合、稀少価値が期待できる。
 以上のように、第1実施形態に係るシステム10によって提供されるNFTには、カードNFT、パックNFT、ボックスNFTの3つのタイプがある。すなわち、第1実施形態に係るシステム10によって提供されるNFTには、少なくとも3つの種類がある。また、第1実施形態に係るシステム10によって提供されるカードNFTには、M個のカテゴリがある。すなわち、第1実施形態に係るシステム10によって提供されるカードNFTには、少なくともM個の種類がある。このように、第1実施形態に係るシステム10は、複数の種類のNFTをユーザに提供できる。実施形態において、各NFTに設定された種類(タイプ又はカテゴリ)は、各NFTが有する識別情報によって、システム10によって識別され得る。識別情報は、各NFTが有する画像データであってもよく、この場合、画像データの種類が、NFTの種類を表す。また、識別情報は、その識別情報を有するNFTの種類を表す文字又は記号であってもよい。なお、要求送信トークンであるNFTが、そのNFTの種類を示す識別情報を有することで、要求送信トークンであるNFT自体を、目的NFTの種類を識別するための識別情報として用いることができる。具体的には、要求送信トークンであるNFTが有する識別情報が、生成すべき目的ノンファンジブルトークンの種類を識別するための識別情報として用いられ得る。
 また、カードNFTに組み込まれる画像データの種類がNであれば、第1実施形態に係るシステム10によって提供されるカードNFTには、少なくともN個の種類がある。さらに、カードNFTのカテゴリ及びカードNFTに組み込まれる画像データの種類を総合すると、カードNFTには、M×N個の種類があり得る。なお、パックNFT及びボックスNFTにも、複数の種類があってもよい。種類に応じて、交換により得られるカードNFT及びパックNFTに違いを設けることもできる。
 ボックスNFT及びパックNFTは、システム10によって、目的ノンファンジブルトークンに交換され得る要求送信トークン(要求送信ノンファンジブルトークン)として機能し得る。すなわち、システム10が受信した要求送信トークンが、ボックスNFT及びパックNFTによって、生成される目的ノンファンジブルトークンの種類が異なるものとなる。
 図3は、システム10によって実行されるNFT生成処理の流れを示している。なお、図3に示すNFT生成処理は、スマートコントラクト101によって実行されるが、サーバ200が、その処理の一部(第2処理)を担う。NFT生成処理のうち、スマートコントラクト101(第1コンピュータ;コントラクトコンピュータ)によって実行される処理を第1処理といい、サーバ200(第2コンピュータ)によって実行される処理を第2処理という。なお、ここで説明するスマートコントラクト101とサーバ200との役割分担の仕方は、一例であり、役割分担の仕方が特に限定されるわけではなく、役割分担されなくてもよい。
 図3に示すNFT生成処理においては、まず、ユーザ端末300などのコンピュータから、ノンファンジブルトークン要求(NFT要求)が、システム10へ送信される(ステップS11)。NFT要求は、例えば、スマートコントラクト101によって受信される(ステップS21)。NFT要求は、サーバ350からスマートコントラクト101へ送信されてもよいし、ユーザ端末300からサーバ350を介してスマートコントラクト101へ送信されてもよい。なお、ユーザは、ブロックチェーンを利用するためブロックチェーンアドレスを有する。ブロックチェーンアドレスは、例えば、0x00000のように表記され得る。ブロックチェーンアドレスは、ブロックチェーンアカウントとも呼ばれる。ユーザは、ブロックチェーンアカウントに対応するプライベートキー(秘密鍵)を有する。プライベートキーは、例えば、ユーザ端末300又は他の装置に保存される。プライベートキーは、ブロックチェーンに記録されるトランザクションの電子署名に用いられる。
 図4は、ユーザ端末300(ユーザ用コンピュータ)におけるNFT要求のための操作画面310を示している。ユーザ端末300には、NFTの購入・交換・管理のためのユーザ用アプリケーションプログラムがインストールされている。図4に示す操作画面310は、ユーザ用アプリケーションプログラムによってユーザ端末300のディスプレイに表示される。なお、ユーザ用アプリケーションプログラムは、ユーザが保有するNFT又は購入・交換しようとするNFTを、ユーザ端末300に画面表示することもできる。図4に示す操作画面310は、ユーザ端末300がアクセスしたサーバ350(ユーザ用コンピュータ)によってユーザ端末300のディスプレイに表示されてもよい。
 図4に示すように、操作画面310は、ボタン311,312,313,314,315を備える。ボタン311は、パック6個入りのボックス(ボックスNFT)購入操作を受け付ける。ボタン312は、カード6枚入りパック(pack6NFT)購入操作を受け付ける。ボタン313は、カード3枚入りパック(pack3NFT)購入操作を受け付ける。ボタン314は、ボックスNFTをカード6枚入りパック(pack6NFT)に交換する操作を受け付ける。ボックスNFTをカード6枚入りパック(pack6NFT)に交換する操作は、ボックスNFTの開封操作(openbox操作)と呼んでも良い。ボタン315は、パックNFT(pack6NFT又はpack3NFT)を、6枚又は3枚のカードNFTに交換する操作である。
 ここでは、操作画面310において、ユーザがボタン311を選択する操作を「第1タイプ要求の操作」といい、ボタン312を選択する操作を「第2タイプ要求の操作」といい、ボタン313を選択する操作を「第3タイプ要求の操作」といい、ボタン314を選択する操作を「第4タイプ要求の操作」といい、ボタン315を選択する操作を「第5タイプ要求の操作」という。このように、ユーザは、操作画面310において、ボタン311,312,313,314,315の選択操作をすることができる。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザの選択操作を受け付けることができる。
 第1実施形態において、第1タイプ要求はボックスNFTの要求であり、第2タイプ要求はpack6NFTの要求であり、第3タイプ要求はpack3NFTの要求であり、第4タイプ要求はpack6NFTの要求であり、第5タイプ要求はカードNFTの要求である。なお、ここでの要求は、システム10に対して、NFTの送信を要求することである。
 第1タイプ要求は、必要数のファンジブルトークンとボックスNFTとの交換要求でもある。ファンジブルトークンは、例えば、イーサリアム又はビットコインのような暗号資産(仮想通過)である。以下では、ファンジブルトークンを「FT」ともいう。
 第2タイプ要求は、必要数のFTとpack6NFTとの交換要求でもある。第3タイプ要求は、必要数のFTとpack3NFTとの交換要求でもある。FTの必要数は、交換されるNFTの種類によって異なり得る。このように、要求は、FTと引き換えにNFTの提供をシステム10に求めるものであってもよい。
 第4タイプ要求は、ボックスNFTとpack6NFTとの交換要求でもある。第5タイプ要求は、pack6NFT又はpack3NFTとカードNFTとの交換要求でもある。このように、要求は、ある種類のNFTをシステム10に渡す代わりに、他の種類のNFTの提供をシステム10求めるものであってもよい。この場合、システム10から提供されるNFTの種類は、システム10に渡されるNFTの種類によって決まり得る。
 前述のように、実施形態においては、ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザのボタン選択操作による選択に応じて要求送信トークンとして送信すべきファンジブルトークン数又はノンファンジブルトークンの種類を特定し、特定された数又は種類の要求送信トークンをスマートコントラクト101へ送信させるよう構成されている。
 実施形態において、スマートコントラクト101は、一例として、所定の数のトークン又は所定の種類のトークン(要求送信トークン)を受信したときだけ目的ノンファンジブルトークンの生成・送信を実行するよう構成されている。すなわち、スマートコントラクト101は、所定の数以外の数のトークンを受信しても目的ノンファンジブルトークンの生成・送信をしないよう構成され、所定の種類以外のトークンを受信しても目的ノンファンジブルトークンの生成・送信を実行しないよう構成されている。そこで、ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザの選択操作による選択に応じて、適切な要求送信トークンだけをスマートコントラクト101へ送信するよう機能する。
 図5は、ユーザ端末300におけるNFT要求のための操作及びNFT要求のための手順を示している。なお、図5に示す手順の一部又は全部は、ユーザ端末300がアクセスしたサーバ350によって実行されてもよい。ユーザは、ボックスNFTの購入を希望する場合、ボタン311を選択する操作、すなわち、第1タイプ要求の操作を行う(ステップS51)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、第1タイプ要求の操作を受け付けると、第1タイプ要求をスマートコントラクト101へ送信する(図3のステップS11参照)。第1タイプ要求の操作が行われた場合、NFT要求の送信は、スマートコントラクト101において第1タイプ要求に対応する第1モジュール111(図7参照)を呼び出すとともに、ボックスNFTを取得するため必要な数のFTを、スマートコントラクト101へ送信することを含む(図5のステップS56)。FTの送信は、例えば、ブロックチェーンにおけるユーザのアドレス(ブロックチェーンにおけるユーザアカウント)からスマートコントラクト101のコントラクトアドレスへ、FTを送信することによって行われる。ユーザアカウントからスマート01へのFTの送信は、例えば、サーバ350によって実行され得る。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、操作画面310におけるユーザの選択(ボタン311の選択)に応じて、送信すべきトークン(要求送信トークン)がFTであること、及びそのFTの必要数を特定し、特定された数のFTをスマートコントラクト101へ送信させる。
 ユーザは、pack6NFTの購入を希望する場合、ボタン312を選択する操作、すなわち、第2タイプ要求の操作を行う(ステップS52)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、第2タイプ要求の操作を受け付けると、第2タイプ要求をスマートコントラクト101へ送信する(図3のステップS11参照)。第2タイプ要求の操作が行われた場合、NFT要求の送信は、スマートコントラクト101において第2タイプ要求に対応する第2モジュール112(図7参照)を呼び出すとともに、pack6NFTを取得するために必要な数のFTをスマートコントラクト101へ送信することを含む(図5のステップS56)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザがボタン312を選択したことに応じて、送信すべきトークン(要求送信トークン)がFTであること、及びそのFTの必要数を特定し、特定された数のFTをスマートコントラクト101へ送信させる。
 ユーザは、pack3NFTの購入を希望する場合、ボタン313を選択する操作、すなわち、第3タイプ要求の操作を行う(ステップS53)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、第3タイプ要求の操作を受け付けると、第3タイプ要求をスマートコントラクト101へ送信する(図3のステップS11参照)。第3タイプ要求の操作が行われた場合、NFT要求の送信は、スマートコントラクト101において第3タイプ要求に対応する第3モジュール113(図7参照)を呼び出すとともに、pack3NFTを取得するために必要な数のFTをスマートコントラクト101へ送信することを含む(図5のステップS56)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザがボタン313を選択したことに応じて、送信すべきトークン(要求送信トークン)がFTであること、及びそのFTの必要数を特定し、特定された数のFTをスマートコントラクト101へ送信させる。
 ユーザは、ボックスNFTからpack6NFTへの交換を希望する場合、ボタン314を選択する操作、すなわち、第4タイプ要求の操作を行う(ステップS54)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、第4タイプ要求の操作を受け付けると、第4タイプ要求をスマートコントラクト101へ送信する(図3のステップS11参照)。第4タイプ要求の操作が行われた場合、NFT要求の送信は、スマートコントラクト101において第4タイプ要求に対応する第4モジュール114(図7参照)を呼び出すとともに、ボックスNFTをスマートコントラクト101へ送信することを含む(図5のステップS57)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザがボタン314を選択したことに応じて、送信すべきトークン(要求送信トークン)の種類がボックスNFTであることを特定し、特定されたボックスNFTをスマートコントラクト101へ送信させる。
 ユーザは、pack6NFT又はpack3NFTからカードNFTへの交換を希望する場合、ボタン315を選択する操作、すなわち、第5タイプ要求の操作を行う(ステップS55)。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、第5タイプ要求の操作を受け付けると、第5タイプ要求をスマートコントラクト101へ送信する(図3のステップS11参照)。第5タイプ要求の操作が行われた場合、NFT要求の送信は、スマートコントラクト101において第5タイプ要求に対応する第5モジュール115(図7参照)を呼び出すとともに、pack6NFT又はpack3NFTをスマートコントラクト101へ送信することである(図5のステップS58)。pack6NFT及びpack3NFTのうち、いずれが送信されるかは、ユーザの選択操作によって選択され得る。なお、第5タイプ要求の操作は、ユーザが所有するpack6NFT又はpack3NFTを選択する操作であってもよい。ユーザ用コンピュータであるユーザ端末300又はサーバ350は、ユーザの選択操作に応じて、送信すべきトークン(要求送信トークン)の種類がpack6NFT及びpack3NFTであることを特定し、特定されたpack6NFT及びpack3NFTをスマートコントラクト101へ送信させる。
 図3に戻り、システム10は、ユーザ端末300から送信されたNFT要求を受信すると(ステップS21)、NFT要求に応じて、目的ノンファンジブルトークン(目的NFT)を生成する(ステップS22)。システム10は、目的NFTを生成するために用いられる生成用プライベートキー(秘密鍵)を有し、その生成用プライベートキーを用いて、目的NFTを生成する。例えば、システム10は、生成用プライベートキーを用いて、目的NFT生成のためのトランザクションに電子署名する。電子署名が付加されたトランザクションは、ブロックチェーンに記録される。システム10は、生成用プライベートキーを有しているため、目的NFTを取得することになるユーザのプライベートキーを用いなくても、当該ユーザが取得するNFTを生成できる。そして、システム10は、生成した目的NFTを、ユーザ端末300(ユーザアカウント)へ送信する(ステップS23)。送信された目的NFTはユーザ端末300によって受信される(ステップS12)。なお、目的NFTの送信は、ブロックチェーンにおいて、目的NFTの所有者がユーザに変更され、ユーザのアカウントに目的NFTが保有されている状態にする操作であれば足りる。すなわち、システム10は、生成した目的NFTの所有者が前記ユーザであることをブロックチェーンに記録するよう構成されていれば足りる。
 つまり、目的NFTは、ユーザ端末300という特定の装置に向けて現実に送信される必要はなく、ユーザが端末300を介してアクセスできるユーザアカウント(ユーザのブロックチェーンアドレス)に送信されれば足りる。ユーザアカウントは、例えば、ブロックチェーンにおけるアカウントであり、そのようなアカウントは、ブロックチェーンにおけるユニークなアドレスによって識別され得る。ユーザアカウントへ送信された目的NFTの所有者は、当該ユーザとなり、当該ユーザは、目的NFTをユーザ端末300に表示させて参照できる。なお、システム10は、NFT要求の送信元を、前述のようなユーザアカウントによって認識してもよく、目的NFTの送信先も、前述のようなユーザアカウントによって認識し得る。システム10は、NFT要求の送信元を、目的NFTの送信先として認識し得る。つまり、システム10は、目的NFTを、NFT要求の送信元へ送信し得る。システム10は、目的NFTの送信先を示すデータを、NFT要求を受信すると同時に取得してもよいし、NFT要求を受信した後に取得してもよい。
 図6は、前述の目的NFTを生成する処理(ステップS22)を示している。システム10は、受信したNFT要求が有する情報(識別情報)を用いて、生成すべき目的NFTの種類を識別する(ステップS61)。ここでは、目的NFTの種類を識別するために用いられる「識別情報」は、NFT要求自体である。つまり、NFT要求の種類が、第1タイプ要求、第2タイプ要求、第3タイプ要求、第4タイプ要求、及び第5タイプ要求のいずれかであるかによって、生成すべき目的NFTの種類が識別される。また、「識別情報」は、要求送信トークンの数又は種類であってもよく、要求送信トークンの数又は種類によって、生成すべき目的NFTの種類が識別され得る。「識別情報」は、NFT要求が有するその他のデータであってもよい。
 また、システム10は、識別された種類に応じて、目的NFTの生成条件決定する(ステップS61)。生成条件は、目的NFTの生成の際に用いられる。生成条件は、例えば、どのような目的NFTが生成されるべきかを示す。生成条件は、生成される目的NFTの個数(発行数)を示してもよい。前述の「識別情報」は、生成される目的NFTの個数を示し得る。生成条件については後述される。
 システム10は、生成条件に従って、初期NFTを発行する(ステップS62)。例えば、システム10は、生成条件が示す発行数に応じた数の初期NFTを発行する。初期NFTの発行は、システム10によって用いられるブロックチェーンにおいて用意されたNFT発行コマンドを実行することによって達成される。ブロックチェーンにおいてNFT発行コマンドが実行されると、ブロックチェーンを構成するコンピュータは、NFT発行コマンドを受け付けると、ブロックチェーンにおけるNFTの発行の処理を実行する。発行されたNFTは、ブロックチェーンにおける台帳に記録され、その記録は公開される。ブロックチェーンにおいて発行されたNFTには、そのNFTにユニークな識別子(NFTのアドレス又はNFT-ID)が付与される。システム10は、初期NFT発行のためのNFT発行コマンドの実行後、ブロックチェーンにおいて初期NFTの発行がなされるまで待機する。その待機時間は、ブロックチェーンにおいて異なるが、短い方が好ましい。待機時間を経て、システム10は、発行された初期NFTの識別子を取得することができる。
 続いて、システム10は、NFT構成データ組込処理212を実行する(図2及び図6参照)。NFT構成データ組込処理212は、目的NFTの生成条件及び初期NFTの識別子を取得し、初期NFTの識別子に、生成条件(例えば、目的NFTの種類)に応じたNFT構成データを対応付ける。NFT構成データの候補となる複数のNFT用素材データ240は、データベース230に格納されている。NFT構成データ組込処理212において、システム10は、生成条件に従って、複数のNFT用素材データ240の中から、目的NFTの種類に応じたものを決定し、その素材データを用いて構成データを生成する。なお、決定された素材データをそのまま構成データとして用いても良い。構成データは、例えば、画像データ及び文字データである。システム10は、生成した構成データを、初期NFTの識別子と対応付ける処理を行う。これによって、初期NFTと構成データとが一体化され、目的NFTが生成される。以上によって目的NFTの生成が完了する(ステップS63)。なお、組込処理212は、スマートコントラクト101(スマートコントラクト101を実行するコントラクトコンピュータ;第1コンピュータ)によって実行されてもよいし、サーバ200(第2コンピュータ)によって実行されてもよい。
 なお、ここでは、一例として、ステップS21,S22,S23を第1処理といい、処理212を第2処理という。一例として、第1処理は、図1におけるスマートコントラクト101(第1コンピュータ)によって実行され、第2処理は、サーバ200(第2コンピュータ)によって実行される。また、ここでは、一例として、目的NFTを生成する処理(ステップS22)のうち、ステップS61,S62,S63は、第1処理であり、組込処理212は、第2処理である。
 NFT構成データ組込処理212は、サーバ200が、スマートコントラクト101による初期NFTの発行を検出した場合に、実行される。NFTの発行の検出は、例えば、スマートコントラクト101におけるNFT発行イベントの発生を、サーバ200が監視することによって行われる。すなわち、処理212は、イベントドリブン型の処理である。NFT発行イベントは、例えば、スマートコントラクト101がNFT発行コマンドを実行することによってスマートコントラクト101に生じる動作である。
 サーバ200は、NFT発行コマンドの発生を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得する。生成条件及び初期NFTの識別子は、スマートコントラクト101から取得され得る。サーバ200は、取得した生成条件にしたがって、複数のNFT用素材データ240の中から、目的NFTの種類に応じたものを決定し、構成データを生成する。サーバ200は、生成した構成データを、スマートコントラクト101によって保有されている初期NFTの識別子に対応付ける処理を実行し、目的NFTを完成させる。つまり、システム10は、複数の素材データ240の中から、識別情報に基づいて選択されたデータを用いて、目的NFTを生成する。識別情報に基づいてデータを選択することは、識別情報に基づいて識別された目的NFTの種類に基づいてデータを選択することを含み得る。生成した目的NFTには、構成データが組み込まれている。構成データが組み込まれたNFTは、例えば、構成データを示すユニフォームリソースアイデンティファイア(URI)を有する。ここで、構成データを示すURIは、NFTのメタデータに備えられていてもよい。また、メタデータを示すURIは、NFTのインデックスデータに備えられていてもよい。なお、初期NFTの発行(ステップS62)と組込処理212とは、別々に行われる必要はなく、ステップS62において、構成データが組み込まれたNFTを生成してもよい。サーバ200は、処理212が完了すると、組込完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、目的NFTの生成が完了(ステップS63)したことを認識し、目的NFTを送信する(図3のステップS23)。目的NFTの送信は、目的NFTの新たな所有者が送信先(ユーザアカウント)になるように、ブロックチェーンにおいて所有者を記録する動作を伴う。つまり、目的NFTの送信は、目的NFTの譲渡又は販売となる。
 実施形態においては、一例として、スマートコントラクト101は、図1及び図7に示すように、第1スマートコントラクト110と、第2スマートコントラクト120と、を備える。すなわち、実施形態においては、第1スマートコントラクト110を構成するソフトウェア及び第2スマートコントラクトを構成するソフトウェアそれぞれが、ブロックチェーンのためのコンピュータネットワークシステムにおいて実行されるように、ブロックチェーンに実装されている。第1スマートコントラクト110及び第2スマートコントラクト120は互いに通信可能である。
 図7に示す第1スマートコントラクト110は、一例として、第1モジュール111、第2モジュール112、第3モジュール113、第4モジュール114、ファンジブルトークン数判定モジュール116(FT数判定モジュール)、及びNFTタイプ判定モジュール117を備える。図7に示す第2スマートコントラクト120は、一例として、第5モジュール115を備える。なお、ここでの「モジュール」は、ソフトウェアとしてのモジュールであり得る。「モジュール」は、例えば、コンピュータプログラム上で定義される関数、プロシージャ又はサブルーチンである。各モジュールは、ブロックチェーンを構成するコンピュータネットワークにおけるいずれかのコンピュータによって実行され得る。
 第1モジュール111は、ボックスNFT購入のための処理が規定されたboxNFT購入モジュールである。第2モジュール112は、pack6NFT購入のための処理が規定されたpack6NFT購入モジュールである。第3モジュール113は、pack3NFT購入のための処理が規定されたpack6NFT購入モジュールである。第4モジュール114は、ボックスNFTをカード6枚入りパック(pack6NFT)に交換する処理が規定されたボックス交換モジュールである。第5モジュール115は、パックNFT(pack6NFT又はpack3NFT)を、6枚又は3枚のカードNFTに交換する処理が規定されたバック交換モジュールである。
 FT数判定モジュール116は、スマートコントラクト101(第1スマートコントラクト110)が受信したFTの数が、目的NFT購入のためのFT必要数と一致するか否かを判定する際に呼び出されるモジュールである。NFTタイプ判定モジュール117は、スマートコントラクト101(第1スマートコントラクト110又は第2スマートコントラクト120)が受信したNFTのタイプ(種類)を判定する際に呼び出されるモジュールである。NFTタイプ判定モジュール117は、受信したトークンがFTであるかNFTであるかといったトークンの種類を判定するトークン判定モジュールとして機能してもよい。
 実施形態においては、NFT要求が第1タイプ要求であれば第1モジュール111が呼び出され、第2タイプ要求であれば第2モジュール112が呼び出され、第3タイプ要求であれば第3モジュール113が呼び出され、第4タイプ要求であれば第4モジュール114が呼び出され、第5タイプ要求であれば第5モジュール115が呼び出される。つまり、NFT要求の種類に応じて、呼び出されるモジュールが決まる。また、スマートコントラクト101へ送信された要求送信トークンの数又は種類に応じて、呼び出されるモジュールが決まっても良い。このように、システム10は、NFT要求の種類を識別し、実行されるモジュール111,112,113,114,115を選択する。システム10は、NFT要求が第1タイプ要求であれば第1モジュール111を実行し、第2タイプ要求であれば第2モジュール112を実行し、第3タイプ要求であれば第3モジュール113を実行し、第4タイプ要求であれば第4モジュール114を実行し、第5タイプ要求であれば第5モジュール115を実行する。
 図8は、第1モジュール111(ボックスNFT購入モジュール)における処理手順を示している。まず、第1スマートコントラクト110は、ユーザ用コンピュータであるユーザ端末300又はサーバ350から第1タイプ要求を受信する。第1タイプ要求とともに、必要数のFTも受信される。ボックスNFTのための必要数のFTの受信をしたことが第1タイプ要求の受信とみなされてもよい。第1モジュール111及び他のモジュール112,113へのFTの送信は、FTの所有者を送信元(ユーザアカウント)からスマートコントラクト101又はスマートコントラクト101の管理者のアカウントへ変更する操作を伴う。つまり、FTが、ユーザから支払われたことになる。所有者変更はブロックチェーンにおいて記録される。
 第1タイプ要求は、第1モジュール111の呼び出しであるため、第1モジュール111が動作開始される。第1モジュール111における処理においては、まず、第1タイプ要求とともに受信したFTの数量が、ボックスNFT購入の必要数に合致しているか否かが判定される(ステップS81)。この判定は、FT数判定モジュール116によって行われる。なお、ボックスNFT購入の必要数は、予めユーザ端末へ通知されている。
 FTの数量が、ボックスNFT購入の必要数に合致していない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS82)。この場合、第1モジュール111における処理は終了する。スマートコントラクト101は、ボックスNFTを取得するための必要数のFTを受信したことで、動作開始すべきモジュールが第1モジュール111であることを特定し、特定された第1モジュール111を動作開始させてもよい。つまり、FTの数が、識別情報を表し、識別情報としてのFTの数が生成条件を決定する。この場合、ステップS81,S82は省略可能であり、ステップS83から実行される。また、実施形態のように、スマートコントラクト101がFT及びNFTのいずれも受信可能である場合、スマートコントラクト101は、受信したトークン(要求送信トークン)が、FTであるかNFTであるかを判別する機能を有していても良い。
 FTの数量が、ボックスNFT購入の必要数に合致している場合、続いて、目的NFTの生成条件が決定される(ステップS83)。ここでは、生成条件として、目的NFTの発行数P=1、及び、目的NFTの種類T=第1タイプ(box)が決定される。この生成条件は、目的NFTとして、第1タイプであるボックスNFTが1個発行されるべきことを示す。生成条件は、受信したFTの数に応じて決定され得る。
 続いて、生成条件に従って、P個(1個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS84)。発行される初期NFTに、目的NFTの種類T=第1タイプ(box)などの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるボックスNFTを生成する(ステップS85)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「初期NFTの種類T」などの生成条件を取得してもよい。
 NFT構成データ組込処理では、目的NFTの種類T=第1タイプ(box)に従い、複数のNFT用素材データ240の中から、ボックスNFTのための構成データ(例えば、ボックスNFTのための画像データ、ボックスNFTの名称等を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、第1タイプ(box)であるボックスNFTのための素材データを含む。システム10は、受信した識別情報に基づいて識別された種類Tに基づいて、構成データとなる素材データを選択し得る。素材データ240以外のその他のデータ(例えば、ボックスNFTのシリアル番号)が構成データに付加されてもよい。そして、ボックスNFTのための構成データが初期NFTに組み込まれ、ボックスNFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。ボックスNFTが完成すると、サーバ200は、完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、ボックスNFTの生成の完了を認識し(ステップS86)、ボックスNFTを、FTの送信元であるユーザアカウントへ送信する(ステップS87)。
 以上のようにして、ユーザは、FTの支払いと引き換えに、ボックスNFTを入手できる。実施形態に係るシステム10は、FTが支払われた後にボックスNFTを生成するため、FTが支払われる前において、ユーザに渡すべきボックスNFTを保有する必要がない。システム10が生成すべきNFTが、ボックスNFTであることは、スマートコントラクト101へ送信されたFTの数によって識別され得る。
 図9は、第2モジュール112(pack6NFT購入モジュール)における処理手順を示している。まず、第1スマートコントラクト110は、ユーザ用コンピュータであるユーザ端末300又はサーバ350から第2タイプ要求を受信する。第2タイプ要求とともに、必要数のFTも受信される。pack6NFTのための必要数のFTの受信をしたことが第2タイプ要求の受信とみなされてもよい。
 第2タイプ要求は、第2モジュール112の呼び出しであるため、第2モジュール112が動作開始される。第2モジュール112における処理においては、まず、第2タイプ要求とともに受信したFTの数量が、pack6NFT購入の必要数に合致しているか否かが判定される(ステップS91)。この判定は、FT数判定モジュール116によって行われる。なお、pack6NFT購入の必要数は、予めユーザ端末へ通知されている。
 FTの数量が、pack6NFT購入の必要数に合致していない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS92)。この場合、第2モジュール112における処理は終了する。スマートコントラクト101は、pack6NFTを取得するための必要数のFTを受信したことで、動作開始すべきモジュールが第2モジュール112であることを特定し、特定された第2モジュール112を動作開始させてもよい。つまり、FTの数が、識別情報を表し、識別情報としてのFTの数が生成条件を決定する。この場合、ステップS91,S92は省略可能であり、ステップS93から実行される。
 FTの数量が、pack6NFT購入の必要数に合致している場合、続いて、目的NFTの生成条件が決定される(ステップS93)。ここでは、生成条件として、目的NFTの発行数P=1、及び、目的NFTの種類T=第2タイプ(pack6)が決定される。この生成条件は、目的NFTとして、第2タイプであるpack6NFTが1個発行されるべきことを示す。生成条件は、受信したFTの数に応じて決定され得る。
 続いて、生成条件に従って、P個(1個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS94)。発行される初期NFTに、目的NFTの種類T=第2タイプ(pack6)などの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるpack6NFTを生成する(ステップS95)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「目的NFTの種類T」などの生成条件を取得してもよい。NFT構成データ組込処理では、目的NFTの種類T=第2タイプ(pack6)に従い、複数のNFT用素材データ240の中から、pack6NFTのための構成データ(例えば、pack6NFTのための画像データ、pack6NFTの名称等を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、第2タイプ(pack6)であるpack6NFTのための素材データを含む。システム10は、受信した識別情報に基づいて識別された種類Tに基づいて、構成データとなる素材データを選択し得る。素材データ240以外のその他のデータ(例えば、pack6NFTのシリアル番号)が構成データに付加されてもよい。そして、pack6NFTのための構成データが初期NFTに組み込まれ、pack6NFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。pack6NFTが完成すると、サーバ200は、完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、pack6NFTの生成の完了を認識し(ステップS96)、pack6NFTを、FTの送信元であるユーザアカウントへ送信する(ステップS97)。
 以上のようにして、ユーザは、FTの支払いと引き換えに、pack6NFTを入手できる。実施形態に係るシステム10は、FTが支払われた後にpack6NFTを生成するため、FTが支払われる前において、ユーザに渡すべきpack6NFTを保有する必要がない。システム10が生成すべきNFTが、pack6NFTであることは、スマートコントラクト101へ送信されたFTの数によって識別され得る。
 図10は、第3モジュール113(pack3NFT購入モジュール)における処理手順を示している。まず、第1スマートコントラクト110は、ユーザ用コンピュータであるユーザ端末300又はサーバ350から第3タイプ要求を受信する。第3タイプ要求とともに、必要数のFTも受信される。pack3NFTのための必要数のFTの受信をしたことが第3タイプ要求の受信とみなされてもよい。
 第3タイプ要求は、第3モジュール113の呼び出しであるため、第3モジュール113が動作開始される。第3モジュール113における処理においては、まず、第3タイプ要求とともに受信したFTの数量が、pack3NFT購入の必要数に合致しているか否かが判定される(ステップS101)。この判定は、FT数判定モジュール116によって行われる。なお、pack3NFT購入の必要数は、予めユーザ端末へ通知されている。
 FTの数量が、pack3NFT購入の必要数に合致していない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS102)。この場合、第3モジュール113における処理は終了する。スマートコントラクト101は、pack3NFTを取得するための必要数のFTを受信したことで、動作開始すべきモジュールが第3モジュール113であることを特定し、特定された第3モジュール113を動作開始させてもよい。つまり、FTの数が、識別情報を表し、識別情報としてのFTの数が生成条件を決定する。この場合、ステップS101,S102は省略可能であり、ステップS103から実行される。
 FTの数量が、pack3NFT購入の必要数に合致している場合、続いて、目的NFTの生成条件が決定される(ステップS103)。ここでは、生成条件として、目的NFTの発行数P=1、及び、目的NFTの種類T=第3タイプ(pack3)が決定される。この生成条件は、目的NFTとして、第3タイプであるpack3NFTが1個発行されるべきことを示す。生成条件は、受信したFTの数に応じて決定され得る。
 続いて、生成条件に従って、P個(1個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS104)。発行される初期NFTに、目的NFTの種類T=第3タイプ(pack3)などの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるpack3NFTを生成する(ステップS105)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「目的NFTの種類T」などの生成条件を取得してもよい。NFT構成データ組込処理では、目的NFTの種類T=第3タイプ(pack3)に従い、複数のNFT用素材データ240の中から、pack3NFTのための構成データ(例えば、pack3NFTのための画像データ、pack3NFTの名称等を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、第3タイプ(pack3)であるpack3NFTのための素材データを含む。システム10は、受信した識別情報に基づいて識別された種類Tに基づいて、構成データとなる素材データを選択し得る。素材データ240以外のその他のデータ(例えば、pack3NFTのシリアル番号)が構成データに付加されてもよい。そして、pack3NFTのための構成データが初期NFTに組み込まれ、pack3NFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。pack3NFTが完成すると、サーバ200は、完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、pack3NFTの生成の完了を認識し(ステップS106)、pack3NFTを、FTの送信元であるユーザアカウントへ送信する(ステップS107)。
 以上のようにして、ユーザは、FTの支払いと引き換えに、pack3NFTを入手できる。実施形態に係るシステム10は、FTが支払われた後にpack3NFTを生成するため、FTが支払われる前において、ユーザに渡すべきpack3NFTを保有する必要がない。システム10が生成すべきNFTが、pack3NFTであることは、スマートコントラクト101へ送信されたFTの数によって識別され得る。
 図11は、第4モジュール114(ボックス交換モジュール)における処理手順を示している。まず、第1スマートコントラクト110は、ユーザ用コンピュータであるユーザ端末300又はサーバ350から第4タイプ要求を受信する。第4タイプ要求とともに、NFT(ボックスNFT)も受信される。第4モジュール114のボックスNFTの送信は、ボックスNFTの所有者を送信元(ユーザアカウント)からスマートコントラクト101又はスマートコントラクト101の管理者のアカウントへ変更する操作を伴う。つまり、ボックスNFTが、ユーザからスマートコントラクトへ譲渡されたことになる。NFTの所有者の変更は、ブロックチェーンにおいて記録される。ボックスNFTをしたことが第4タイプ要求の受信とみなされてもよい。
 第4タイプ要求は、第4モジュール114の呼び出しであるため、第4モジュール114が動作開始される。第4モジュール114における処理においては、まず、第4タイプ要求とともに受信したNFTの種類が、ボックスNFTであるか否かが判定される(ステップS111)。この判定は、NFTタイプ判定モジュール117によって行われる。なお、NFTの種類の判定は、例えば、判定対象のNFTに含まれる種類Tを示す情報、又はブロックチェーンにおける判定対象NFTの記録が示す種類Tに基づいて行われる。
 受信したNFTの種類が、ボックスNFTではない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS112)。この場合、第4モジュール114における処理は終了する。スマートコントラクト101は、ボックスNFTを受信したことで、動作開始すべきモジュールが第4モジュール114であることを特定し、特定された第4モジュール114を動作開始させてもよい。つまり、受信したNFTの種類(ボックスNFT)が、識別情報を表し、識別情報としてのNFTの種類が生成条件を決定する。この場合、ステップS111,S112は省略可能であり、ステップS113から実行される。
 受信したNFTの種類が、ボックスNFTである場合、続いて、目的NFTの生成条件が決定される(ステップS113)。ここでは、生成条件として、目的NFTの発行数P=6、及び、目的NFTの種類T=第2タイプ(pack6)が決定される。この生成条件は、目的NFTとして、第2タイプであるpack6NFTが6個発行されるべきことを示す。つまり、ボックスNFTは、6個のpack6NFTと交換される。生成条件は、受信したNFTの種類がボックスNFTであることに応じて決定され得る。
 続いて、生成条件に従って、P個(6個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS114)。発行される初期NFTに、目的NFTの種類T=第2タイプ(pack6)などの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるpack6NFTを生成する(ステップS115)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「目的NFTの種類T」などの生成条件を取得してもよい。NFT構成データ組込処理では、目的NFTの種類T=第2タイプ(pack6)に従い、複数のNFT用素材データ240の中から、pack6NFTのための構成データ(例えば、pack6NFTのための画像データ、pack6NFTの名称等を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、第2タイプ(pack6)であるpack6NFTのための素材データを含む。システム10は、受信した識別情報に基づいて識別された種類Tに基づいて、構成データとなる素材データを選択し得る。素材データ240以外のその他のデータ(例えば、pack6NFTのシリアル番号)が構成データに付加されてもよい。構成データは、6個のNFT分生成される。そして、6個の初期NFTそれぞれに、pack6NFTのための構成データが組み込まれ、6個のpack6NFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。6個のpack6NFTが完成すると、サーバ200は、完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、6個のpack6NFTの生成の完了を認識し(ステップS116)、pack6NFTを、ボックスNFTの送信元であるユーザアカウントへ送信する(ステップS117)。
 以上のようにして、ユーザは、ボックスNFTを引き渡す代わりに、6個のpack6NFTを入手できる。つまり、ユーザは、6個のpackが含まれるボックスを開封したのと同様の体験が得られる。実施形態に係るシステム10は、ボックスNFTが引き渡された後にpack6NFTを生成するため、ボックスNFTが引き渡される前において、ユーザに渡すべきpack6NFTを保有する必要がない。システム10が生成すべきNFTが、pack6NFTであることは、スマートコントラクト101へ送信されたNFTの種類がボックスNFTであることによって識別され得る。
 図12は、第5モジュール115(パック交換モジュール)における処理手順を示している。まず、第1スマートコントラクト110は、ユーザ用コンピュータであるユーザ端末300又はサーバ350から第5タイプ要求を受信する。第5タイプ要求とともに、NFT(pack6NFT又はpack3NFT)も受信される。第5モジュール115のパックNFTの送信は、パックNFTの所有者を送信元(ユーザアカウント)からスマートコントラクト101又はスマートコントラクト101の管理者のアカウントへ変更する操作を伴う。つまり、パックNFTが、ユーザからスマートコントラクトへ譲渡されたことになる。NFTの所有者の変更は、ブロックチェーンにおいて記録される。pack6NFT又はpack3NFTをしたことが第5タイプ要求の受信とみなされてもよい。
 また、第5タイプ要求の送信の際には、送信されるpack6NFT又はpack3NFTと交換される複数のcardNFTそれぞれのカテゴリC1,C2,C3,・・・の組み合わせを示す情報(組み合わせ情報)も送信される。
 実施形態においては、サーバ200は、pack6NFT又はpack3NFTと交換される複数のcardNFTの種類を決定するためのNFT生成規則250を備える。NFT生成規則250は一例として、pack6NFT又はpack3NFTと交換される複数のcardNFTそれぞれのカテゴリC1,C2,C3,・・・の組み合わせである。カテゴリC1,C2,C3の組み合わせパターンが、NFT生成規則250が多数設定されている。例えば、pack6NFTのための組み合わせパターンの一例は、カテゴリC1のカードNFTが2枚、カテゴリC3のカードNFTが2枚、カテゴリC4のカードNFTが1枚、カテゴリC6のカードNFTが1枚である。pack3NFTのための組み合わせパターンの一例は、カテゴリC2のカードNFTが1枚、カテゴリC4のカードNFTが1枚、カテゴリC5のカードNFTが1枚である。NFT生成規則250において発生頻度の低いカテゴリのカードNFTは、レアカードとして扱われる可能性がある。
 実施形態においては、一例として、ユーザ端末300(のアプリケーションプログラム)又はサーバ350は、第5タイプ要求を送信する際に、サーバ200にアクセスし、pack6NFT又はpack3NFTと交換される複数のcardNFTそれぞれのカテゴリC1,C2,C3,・・・の組み合わせを示す情報(組み合わせ情報)を取得する。取得した組み合わせ情報は、目的NFTの種類を識別するために用いられる情報として、第5タイプ要求とともに、スマートコントラクト101へ送信される。
 第5タイプ要求は、第2スマートコントラクト120における第5モジュール115の呼び出しであるため、スマートコントラクト101が第5タイプ要求を受信すると、第5モジュール115が動作開始される。第5モジュール115における処理においては、まず、第5タイプ要求とともに受信したNFTの種類が、pack6NFT又はpack3NFTであるか否かが判定される(ステップS121)。この判定は、NFTタイプ判定モジュール117によって行われる。
 受信したNFTの種類が、pack6NFT又はpack3NFTではない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS122)。この場合、第5モジュール115における処理は終了する。スマートコントラクト101は、pack6NFT又はpack3NFTを受信したことで、動作開始すべきモジュールが第5モジュール115であることを特定し、特定された第5モジュール115を動作開始させてもよい。つまり、受信したNFTの種類(pack6NFT又はpack3NFT)が、識別情報を表し、識別情報としてのNFTの種類が生成条件を決定する。この場合、ステップS121,S122は省略可能であり、ステップS213から実行される。
 受信したNFTの種類が、pack6NFT又はpack3NFTである場合、受信したNFTの種類及び組み合わせ情報に応じて、目的NFTの生成条件が決定される(ステップS123)。ここでは、受信したNFTが、pack6NFTである場合、NFT生成条件として、目的NFTの発行数P=6、及び、目的NFTの種類T=第4タイプ(card)、生成される目的カードNFTのカテゴリと枚数、が決定される。生成されるカードNFTのカテゴリと枚数は、受信した組み合わせ情報のとおり決定される。この生成条件は、目的NFTとして、第4タイプであるcardNFTが6個発行されるべきことを示す。つまり、pack6NFTは、6個のcardNFTと交換される。また、この生成条件は、生成される6個のcardNFTのカテゴリとカテゴリ毎の枚数を示す。カテゴリとカテゴリ毎の枚数は、例えば、前述のとおり、カテゴリC1のカードNFTが2枚、カテゴリC3のカードNFTが2枚、カテゴリC4のカードNFTが1枚、カテゴリC6のカードNFTが1枚である。
 受信したNFTが、pack3NFTである場合、NFT生成条件として、目的NFTの発行数P=3、及び、目的NFTの種類T=第4タイプ(card)、生成されるカードNFTのカテゴリと枚数、が決定される。この生成条件は、目的NFTとして、第4タイプであるcardNFTが3個発行されるべきことを示す。つまり、pack3NFTは、3個のcardNFTと交換される。また、この生成条件は、生成される6個のcardNFTのカテゴリとカテゴリ毎の枚数を示す。カテゴリとカテゴリ毎の枚数は、例えば、前述のとおり、カテゴリC2のカードNFTが1枚、カテゴリC4のカードNFTが1枚、カテゴリC5のカードNFTが1枚である。
 なお、生成される目的カードNFTのカテゴリと枚数は、スマートコントラクト120が、サーバ200から取得してもよい。
 続いて、生成条件に従って、P個(6個又は3個)の初期NFT発行処理が実行され、P個の初期NFTの識別子が得られる(ステップS124)。発行される初期NFTそれぞれに、目的NFTの種類T=第4タイプ(card)及びカテゴリなどの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるcardNFTを生成する(ステップS125)。サーバ200は、ブロックチェーンにおける初期NFTそれぞれの記録を参照することで、各初期NFTの「目的NFTの種類T」及び「カテゴリ」などの生成条件を取得してもよい。NFT構成データ組込処理では、目的NFTの種類T=第4タイプ(card)及び「カテゴリ」に従い、複数のNFT用素材データ240の中から、cardNFTのための構成データが選択される。データベース230が備える複数の素材データ240は、第4タイプ(card)であるcardNFTのための素材データを含む。システム10は、受信した識別情報に基づいて識別された種類Tに基づいて、構成データとなる素材データを選択し得る。cardNFTのための構成データは、例えば、cardNFTのカテゴリC1,C2,C3,・・を示す画像データ、cardNFTのカテゴリ名称を示す文字データ、cardNFTの題材に応じた画像データD1,D2,D3,・・・などを含む。カテゴリの名称は、例えば、プラチナ、ゴールド、又はシルバーといったランクを示す。
 cardNFTのカテゴリC1,C2,C3,・・を示す画像データ、及び、cardNFTのカテゴリ名称を示す文字データは、生成条件が示す「カテゴリ」に従って、複数のNFT用素材データ240の中から選択される。cardNFTの題材に応じた画像データD1,D2,D3,・・・は、例えば、cardNFTの題材に応じた画像データの候補となる素材データの中から、サーバ200によってランダムに決定される。例えば、cardNFTの題材が、あるスポーツチームの選手である場合、そのスポーツチームに所属する複数の選手の画像データが、cardNFTの題材に応じた画像データD1,D2,D3の候補として、登録されている。サーバ200は、その候補の中から、ランダムに、cardNFTの題材に応じた画像データを決定する。なお、cardNFTの題材は、pack6又はpack3の種類に応じて決定されてもよい。例えば、チームAの選手のカードNFTと交換されるチームA用pack6NFTと、チームBの選手のカードNFTと交換されるチームB用pack6NFTと、が存在してもよい。この場合、システム10は、チームA用pack6NFTを受信した場合、チームAの選手の複数の画像データの中から選択された画像データを用いて、チームAに属するある選手のカードNFTを生成し得る。また、システム10は、チームB用pack6NFTを受信した場合、チームBの選手の複数の画像データの中から選択された画像データを用いて、チームBに属するある選手のカードNFTを生成し得る。
 実施形態においては、題材に応じた画像データとは別に、カテゴリに応じた画像データも、カードNFTに付与されるため、カードNFTのバリエーションが多くなり、収集の楽しみが大きくなっている。例えば、同じ選手の画像データが付与されたcardNFTであっても、カテゴリC1の画像が付与されたものと、カテゴリC2の画像が付与されたものとでは、異なる種類のものとして認識され得る。例えば、ある選手の同じ画像データを有する複数のcardNFTであっても、カテゴリC1である「プラチナ」を示す文字及び「プラチナ」に関する画像を有するものと、カテゴリC2である「ゴールド」を示す文字及び「ゴールド」に関する画像を有するものとでは、異なる種類のものとして認識され得る。同じ選手の画像データを有するcardNFTであっても、カテゴリが異なるため、cardNFTの価値は異なり得る。
 このようにして、P個(6個又は3個)のNFT分の構成データが生成される。そして、P個の初期NFTそれぞれに、cardNFTのための構成データが組み込まれ、P個(6個又は3個)のcardNFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。P個のcardNFTが完成すると、サーバ200は、完了通知をスマートコントラクト101へ送信する。スマートコントラクト101は、組込完了通知を受信すると、P個のcardNFTの生成の完了を認識し(ステップS126)、cardNFTを、パックNFTの送信元であるユーザアカウントへ送信する(ステップS127)。なお、構成データは、cardNFTのシリアル番号など、個々のcardNFTを、他のcardNFTから区別してユニークにするための識別情報を含んでも良い。cardNFTをユニークにするための識別情報を有していることで、あるcardNFTが、他のcardNFTにも用いられ得る共通の素材データを有していても、稀少価値を高め得る。
 以上のようにして、ユーザは、ボックスNFTを引き渡す代わりに、P個のcardNFTを入手できる。つまり、ユーザは、6枚又は3枚のカードが含まれるパックを開封したのと同様の体験が得られる。実施形態に係るシステム10は、パックNFTが引き渡された後にcardNFTを生成するため、パックNFTが引き渡される前において、ユーザに渡すべきcardNFTを保有する必要がない。特に、実施形態に係るシステム10においては、M×N個(カテゴリの数M×題材に応じた画像データN)という多くの種類のcardNFTが存在し得るが、そのような多種類のcardNFTを予め生成し、システム10に保有させておく必要がない。
 また、実施形態に係るシステム10では、cardNFTと交換されるpack6NFT又はpack3NFTは、どのような種類のcardNFTと交換されるかは、予め決まっていない。したがって、販売される多数のpack6NFT又はpack3NFTそれぞれに、交換されるcardNFTを予め割り当てておく作業が不要である。システム10が生成すべきNFTが、cardNFTであることは、スマートコントラクト101へ送信されたNFTの種類がpack6NFT又はpack3NFTであることによって識別され得る。また、実施形態のスマートコントラクト101は、受信した要求送信トークンの数又は種類によって、どのような目的ノンファンジブルトークンを生成すべきかを識別して、適切な目的ノンファンジブルトークンを生成することができる。
 以上のように、実施形態に係るスマートコントラクト101は、受信した要求送信トークンとして何を受信したかによって、どのような目的NFTを生成して送信するかが設定されている。そして、実施形態においては、スマートコントラクト101の動作開始(アクティブ化)の契機は、ユーザがスマートコントラクト101に何かを送ったことである。より具体的には、スマートコントラクト101の動作開始(アクティブ化)の契機は、ユーザがスマートコントラクト101に何らかのトークン(要求送信トークン)を送信したことである。
<2.2 第2実施形態:チケットNFT生成システム>
 図13は、第2実施形態に係るシステム20の一例を示している。第2実施形態において特に説明しない点については、第1実施形態に係るシステム10と同様である。
 第2実施形態に係るシステム20は、ブロックチェーン等のコンピュータネットワークシステムに実装されたスマートコントラクト102と、サーバ200と、を備える。第2実施形態に係るシステム20は、デジタルチケットNFTの販売又は発行サービスを提供するため、デジタルチケットNFTを生成する。システム20は、デジタルチケットNFTの購入又は発行を希望するユーザが有する端末300(ユーザ端末)との間で、ネットワークを介して、通信可能である。
 第2実施形態に係るスマートコントラクト102は、チケットNFT生成処理を実行するよう構成されている。第2実施形態に係るサーバ200は、NFT構成データ組込処理212を実行するよう構成されている。また、第2実施形態に係るサーバ200は、チケットNFT発行のため、ユーザからの予約受付処理215を実行し得る。
 第2実施形態に係るシステム20によって提供されるデジタルチケットNFTは、チケットをNFT化したものである。デジタルチケットNFTは、コンピュータ画面上に表示される。以下では、デジタルチケットNFTを、チケットNFTという。チケットNFTも、任意の第三者との間で、取引可能である。
 チケットは、例えば、コンサート・ライブ・劇・映画・セミナーなどのイベントへの参加のためのチケット、美術館・博物館などの施設への入場のためのチケット、鉄道・飛行機・バスなどの交通機関を利用するためのチケットで、商品・サービスの提供を受けるための引換チケット又は商品券である。チケットは、商品・サービス購入のための割引クーポンを含み得る。
 実施形態に係るチケットNFTは、ブロックチェーンにおいて発行されたNFTに、チケットであることを示す画像データ又は文字データなどの構成データを組み込んで構成されている。構成データが組み込まれたNFTは、例えば、構成データ自体又は構成データを示す直接的又は間接的に示すURIを有する。URIは、構成データを直接的に示してもよいし間接的に示してもよい。例えば、イベントのためのチケットNFTであれば、イベントのための画像データ又は文字データが組み込まれている。チケットNFTに組み込まれる構成データは、チケットNFTの目的(例えば、特定のイベント)毎に異なり得る。したがって、チケットNFTの種類は、複数存在し得る。
 第2実施形態に係るシステム20は、イベントの種類・目的等に応じた種類のチケットNFTを生成して、ユーザに提供できる。図13に示すように、第2実施形態に係るシステム20は、ユーザ用コンピュータであるユーザ端末300等からのチケットNFT要求(NFT要求)を受信し、目的NFTとして、チケットNFTをユーザのアカウントへ送信する。ここでのチケットNFT要求は、チケット発行スマートコントラクト102の呼び出しとして行われる。チケット発行スマートコントラクト102は、呼び出されると、チケットNFT生成処理を実行する。
 図14は、チケット発行スマートコントラクト102におけるチケットNFT生成処理の手順を示している。まず、スマートコントラクト102は、ユーザ用コンピュータであるユーザ端末300等から、NFT要求を受信する。NFT要求は、ユーザ用コンピュータであるサーバから受信してもよい。ここでのNFT要求は、チケットNFTの発行の要求である。NFT要求のため、チケットNFT購入代金としてのFTが受信される。FTの送信は、FTの所有者を送信元(ユーザアカウント)からスマートコントラクト101又はスマートコントラクト101の管理者のアカウントへ変更する操作を伴う。つまり、チケットNFT購入代金としてのFTが、ユーザから支払われたことになる。所有者変更はブロックチェーンにおいて記録される。チケットNFT要求の受信は、チケットNFTと交換されるNFT(チケット引き換えNFT)の受信として行われても良い。チケット引き換えNFTは、後述のチケット情報を有していてもよい。スマートコントラクト102は、チケット引き換えNFTが有するチケット情報を用いて、チケットNFTを生成することができる。
 また、スマートコントラクト102は、NFT要求とともに、チケット情報も受信する。チケット情報は、例えば、チケット番号、イベント名、予約された座席情報、イベントの日付、イベントの名前等を含む。チケット情報は、例えば、サーバ200の予約受付処理215によって生成され、予約受付成立によって生成されたチケット情報が、ユーザ端末のチケット予約アプリケーションプログラムへ送信される。チケット予約アプリケーションプログラムは、受信したチケット情報とともにNFT要求をスマートコントラクト102へ送信する処理を、ユーザ用コンピュータであるユーザ端末300(コンピュータ)等に実行させることができる。チケット情報は、目的NFTであるチケットNFTの種類を識別するための識別情報として用いられ得る。生成すべきチケットNFTの種類は、スマートコントラクト102が受信した要求送信トークンとしてのFT又はNFT(チケット引き換えNFT)の数又は種類によって表されても良い。
 スマートコントラクト102は、NFT要求を受信すると、受信したFTの数量が、要求されたチケットNFT購入の必要数に合致しているか否かを判定する(ステップS141)。この判定は、FT数判定モジュール116によって行われる。なお、チケットNFT購入の必要数は、予めユーザ端末へ通知されている。
 FTの数量が、チケットNFT購入の必要数に合致していない場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS142)。この場合、チケット発行処理は終了する。
 FTの数量が、チケットNFT購入の必要数に合致している場合、続いて、目的NFTの生成条件が決定される(ステップS143)。ここでは、生成条件として、受信したチケット情報に基づき、目的NFTの発行数P=1、及び、目的NFTの種類T=Eイベントが決定される。この生成条件は、目的NFTとして、EイベントのためのチケットNFTが1個発行されるべきことを示す。生成条件は、スマートコントラクト102が受信した要求送信トークンとしてのFT又はNFT(チケット引き換えNFT)の数又は種類によって決定されてもよい。
 続いて、生成条件に従って、P個(1個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS144)。発行される初期NFTに、目的NFTの種類T=Eイベントなどの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTであるチケットNFTを生成する(ステップS145)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「初期NFTの種類T」などの生成条件を取得してもよい。
 NFT構成データ組込処理では、目的NFTの種類T=Eイベントに従い、複数のNFT用素材データ240の中から、Eイベントのための構成データ(例えば、Eイベントのための画像データ、Eイベントの名称、チケット番号、座席、日付等を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、イベントの種類が複数あることに応じて、複数の素材データを有する。つまり、データベース230は、Eイベントのための素材データを備える。システム20は、受信した識別情報に基づいて識別された種類Tに基づいて、複数の素材データの中から、構成データとなる素材データを選択し得る。ここでは、識別情報として受信したチケット情報(Eイベント)は、複数の素材データのいずれかを示すため、システム20は、識別情報(Eイベント)に基づいて、複数の素材データの中から、NFTに組み込まれるデータを選択できる。そして、Eイベントのための構成データが初期NFTに組み込まれ、EイベントのためのチケットNFTが完成する。Eイベントの名称等は、他の構成データの生成にも用いられ得る共通の素材データであり、チケット番号等は、構成データを、ユニークなデータとするための情報である。なお、構成データは初期NFTの発行時に組み込まれてもよい。システム20は、チケットNFTを生成するために用いられるプライベートキーを有し、そのプライベートキーを用いて、チケットNFTを生成する。システム10は、NFT生成用のプライベートキーを有しているため、ユーザのプライベートキーを用いなくても、チケットNFTを生成できる。チケットNFTが完成すると、サーバ200は、完了通知をスマートコントラクト102へ送信する。スマートコントラクト102は、組込完了通知を受信すると、チケットNFTの生成の完了を認識し(ステップS146)、チケットNFTを、FTの送信元であるユーザアカウントへ送信する(ステップS147)。
 以上のようにして、ユーザは、FTの支払いと引き換えに、チケットNFTを入手できる。実施形態に係るシステム20は、FTが支払われた後にチケットNFTを生成するため、FTが支払われる前において、ユーザに渡すべき様々な種類のチケットNFTを保有する必要がない。なお、チケットNFT要求は、チケットNFT購入代金の支払いを伴わなくてもよい。
<2.3 第3実施形態:証書NFT生成システム>
 図15は、第3施形態に係るシステム30の一例を示している。第3実施形態において特に説明しない点については、第1実施形態に係るシステム10及び第2実施形態に係るシステム20と同様である。
 第3実施形態に係るシステム30は、ブロックチェーン等のコンピュータネットワークシステムに実装されたスマートコントラクト103と、サーバ200と、を備える。第3実施形態に係るシステム30は、保証証書NFTなどの証書NFTを提供するため、証書NFTを生成する。システム30は、証書NFTの発行を希望するユーザが有する端末300(ユーザ端末)等のユーザ用コンピュータとの間で、ネットワークを介して、通信可能である。
 第3実施形態に係るスマートコントラクト103は、証書NFT生成処理を実行するよう構成されている。第2実施形態に係るサーバ200は、NFT構成データ組込処理212を実行するよう構成されている。
 第3実施形態に係るシステム30によって提供される証書NFTは、保証証書などの証書をNFT化したものである。証書NFTは、コンピュータ画面上に表示される。証書NFTも、任意の第三者との間で、取引可能である。
 保証証書は、例えば、日用品、宝飾品、電気製品、電子製品、機械製品、その他の商品、サービス又は権利関係(権利、義務、又は責任)についての何らかの保証を証明する文書である。証書は、前述の保証又はその他の事実を証明する文書である。
 実施形態に係る保証証書NFTは、ブロックチェーンにおいて発行されたNFTに、保証証書であることを示す画像データ又は文字データなどの構成データを組み込んで構成されている。構成データが組み込まれたNFTは、例えば、構成データ自体又は構成データを示すURIを有する。URIは、構成データを直接的に示してもよいし間接的に示してもよい。例えば、家電製品などの製品の不完全性・欠陥・故障についての修理等を保証する保証証書として機能する保証証書NFTであれば、その家電製品の画像データ及び保証内容を示す文字データが組み込まれている。証書NFTに組み込まれる構成データは、証書としての種類毎に異なり得る。したがって、保証証書NFTの種類は、複数存在し得る。
 第3実施形態に係るシステム30は、保証対象の製品の種類に応じた保証証書NFTを生成して、ユーザに提供できる。図15に示すように、第3実施形態に係るシステム30は、ユーザ端末300からの証書NFT要求を受信し、目的NFTとして、保証証書NFTを生成し、ユーザ端末300(ユーザアカウント)へ送信する。保証対象の製品の保証期間は、製品の購入日を起算日(保証の起算日)としてもよいが、保証証書NFTをブロックチェーンにおいて発行した日を起算日(保証の起算日)としてもよい。
 図16は、保証証書発行スマートコントラクト103における保証証書発行処理の手順を示している。まず、スマートコントラクト103は、ユーザ端末300から、NFT要求を受信する。ここでのNFT要求は、保証証書NFTの発行の要求である。スマートコントラクト103は、NFT要求とともに、保証対象製品の製品情報も受信する。製品情報は、製品名、製品の購入日時、製品の購入場所、及び製品固有記号(製品固有識別子)等の少なくとのもいずれか1つを含む。製品情報は、例えば、製品又は製品に付属した書類その他の物体に付された、機械読み取り可能なコード(例えば、2次元コード)に記録されているのが好ましい。例えば、ユーザ端末300のカメラ(コード読み取り器)によって、2次元コードなどを読み取ることで、ユーザ端末300は、製品情報を得られる。製品情報は、機械読み取り可能なコードによって示されるURI(Uniform Resource Identifier)によって示される、ネットワーク上のコンピュータ(例えば、サーバ200)に格納された電子データとして存在してもよい。この場合、ユーザ端末300のカメラによってコードを読み取って、そのコードが示すURIへネットワークアクセスすることで、製品情報が得られる。
 製品情報は、目的NFTである保証証書NFTの種類を識別するために用いられる。
 スマートコントラクト103は、NFT要求を受信すると、受信した製品情報の適否を判定する(ステップS161)。この判定は、例えば、製品固有記号が、実際に存在するか否かの判定である。
 FTの数量が、製品情報が不適である場合、その旨をユーザ端末300へ通知するなどのエラー処理が行われる(ステップS162)。この場合、保証証書発行処理は終了する。
 製品情報が適切である場合、続いて、目的NFTの生成条件が決定される(ステップS163)。ここでは、生成条件として、受信した製品情報に基づき、目的NFTの発行数P=1、及び、目的NFTの種類T=G製品が決定される。この生成条件は、目的NFTとして、G製品のための保証証書NFTが1個発行されるべきことを示す。
 続いて、生成条件に従って、P個(1個)の初期NFT発行処理が実行され、初期NFTの識別子が得られる(ステップS164)。発行される初期NFTに、目的NFTの種類T=G製品などの生成条件を示すデータが含まれるように、初期NFTの発行処理が行われても良い。
 サーバ200は、初期NFT発行を検出すると、目的NFTの生成条件及び初期NFTの識別子を取得し、NFT構成データ組込処理を実行し、目的NFTである保証証書NFTを生成する(ステップS165)。サーバ200は、ブロックチェーンにおける初期NFTの記録を参照することで、「初期NFTの種類T」などの生成条件を取得してもよい。
 NFT構成データ組込処理では、目的NFTの種類T=G製品に従い、複数のNFT用素材データ240の中から、G製品のための構成データ(例えば、G製品のための画像データ、G製品の名称、G製品の購入日時、G製品の購入場所、及び製品固有記号(製品固有識別子)、保証期間を示す文字データ)が選択される。データベース230が備える複数の素材データ240は、製品の種類が複数あることに応じて、複数の素材データを有する。つまり、データベース230は、G製品のための素材データを備える。システム30は、受信した識別情報に基づいて識別された種類Tに基づいて、複数の素材データの中から、構成データとなる素材データを選択し得る。ここでは、識別情報として受信した製品情報(G製品)は、複数の素材データのいずれかを示すため、システム30は、識別情報(G製品)に基づいて、複数の素材データの中から、NFTに組み込まれるデータを選択できる。そして、G製品のための構成データが初期NFTに組み込まれることで、G製品のための保証証書NFTが完成する。なお、構成データは初期NFTの発行時に組み込まれてもよい。システム30は、保証書NFTを生成するために用いられるプライベートキーを有し、そのプライベートキーを用いて、保証書NFTを生成する。システム10は、NFT生成用のプライベートキーを有しているため、ユーザのプライベートキーを用いなくても、保証書NFTを生成できる。保証証書NFTが完成すると、サーバ200は、完了通知をスマートコントラクト103へ送信する。スマートコントラクト103は、組込完了通知を受信すると、保証証書NFTの生成の完了を認識し(ステップS166)、保証証書NFTを、NFT要求の送信元であるユーザアカウントへ送信する(ステップS167)。G製品の名称等は、他の構成データの生成にも用いられ得る共通の素材データであり、製品固有記号等は、構成データを、ユニークなデータとするための情報である。
 以上のようにして、ユーザは、保証証書NFTを入手できる。実施形態に係るシステム30は、NFT要求を受信した後に、保証証書NFTを生成するため、NFT要求前(例えば、製品を製造してから販売されるまでの間)において、保証証書NFTを準備する必要がなく、販売されていない製品のための保証証書NFT作成の手間を省略できる。
<2.4 第4実施形態:構成データの保存と参照>
 図17は、前述及び後述の各実施形態において利用し得る、構成データの保存と参照方法を示している。素材データのデータベース240には、複数の素材データが格納されている。例えば、複数の素材データは、第1素材データを含み、第1素材データは、あるタレントの画像データであるとする。第1素材データは複製されて、第1構成データとしてサーバ200の構成データのデータベース245に保存される。つまり、第1構成データは、第1素材データの複製データである。第1構成データは、第1素材データとは異なるファイル名を有すること又は異なる位置に保存されることで、第1素材データとは別個のデータとして存在する。インターネット等のネットワークにおける第1構成データは第1URI(第1ユニフォームリソースアイデンティファイア)によって示される。第1構成データが第1初期NFTに組み込まれることで、第1目的NFTが生成される。
 また、第1素材データは、複製されて、第2構成データとしてサーバ200の構成データのデータベース245に保存される。つまり、第2構成データは、第1素材データの複製データである。第2構成データは、第1素材データ及び第1構成データとは異なるファイル名を有すること又は異なる位置に保存されることで、第1素材データ及び第1構成データとは別個のデータとして存在する。インターネット等のネットワークにおける第2構成データは、第1URIとは異なる第2URI(第2ユニフォームリソースアイデンティファイア)によって示される。第2構成データが、第1初期NFTとは異なる第2初期NFTに組み込まれることで、第2目的NFTが生成される。
 したがって、第1目的NFT及び第2目的NFTは、同じタレントの同じ画像データを構成データとして有している。つまり、第1目的NFTが有する第1構成データは、第2目的NFTが有する第2構成データの生成にも用いられた第1素材データから生成されている。しかし、構成データのデータベース245に保存された第1構成データ及び第2構成データは、それぞれ別個のデータである。つまり、第1構成データは、第1目的NFTのためのユニークなデータであり、第1目的NFT以外のNFTに組み込まれることはない。同様に、第2構成データは、第2目的NFTのためのユニークなデータであり、第2目的NFTに組み込まれることはない。したがって、第1目的NFT及び第2目的NFTそれぞれを唯一無二のものとすることができる。したがって、例えば、第1目的NFTには、タレントのサイン画像を付加することで、第2目的NFTとの価値の相違を生じさせることができる。また、第1目的NFTの所有者履歴によって、第2目的NFTとの価値の相違を生じさせることができる。
 第1目的NFTになる第1初期NFTに第1構成データを組み込むことは、例えば、第1初期NFTに、第1URI又は第1URIに対応付けられた識別子を書き込むことであってもよい。第1URIは、複製データである第1構成データを示す。第1目的NFTが第1URIを有することで、サーバ200は、第1URIによるネットワークアクセスを受け付け、第1構成データを第1目的NFTの所有者の端末等に表示させることができる。第1URIに対応付けられた識別子は、例えば、サーバ200が、第1URIを認識するために用いられる情報であれば足りる。又第1目的NFTが第1URIに対応付けられた識別子を有することで、サーバ200は、第1URIに対応付けられた識別子を用いたネットワークアクセスを受け付け、その識別子から第1URIを特定し、その第1URIが示す第1構成データを第1目的NFTの所有者の端末等に表示させることができる。第2目的NFTについても同様である。
 また、第1目的NFTになる第1初期NFTに、第1構成データを組み込むには、サーバ200に、第1目的NFT(第1初期NFT)の識別子(NFT-ID)と、第1URIと、の対応関係を設定することであってもよい。サーバ200は、第1目的NFTの識別子(NFT-ID)を用いたネットワークアクセスを受け付け、第1目的NFTの識別子(NFT-ID)から第1URIを特定し、その第1URIが示す第1構成データを第1目的NFTの所有者の端末等に表示させることができる。第2NFTについても同様である。
 データベース246は、一例として、IPFS(InterPlanetary File System)によって構成され得る。IPFSは、P2P(Peer to Peer)分散ファイルシステムの一例である。IPFSにおいて、保存されたデータ(コンテンツ)は、そのデータから求められたハッシュ値を用いたURIによって指定される。このURIは、構成データを示す識別子であり、コンテンツ識別子とも呼ばれる。NFTに構成データを組み込むには、例えば、IPFSに保存された構成データ(コンテンツ)を指定するURIをNFTに書き込めばよい。すなわち、NFTは、IPFSに保存された構成データを示すURIを有し得る。なお、NFTは、構成データ(コンテンツ)と、構成データ(コンテンツ)を示すURIを含むメタデータと、メタデータを示すURIを含むインデックスデータと、を備え得る。インデックスデータは、NFTの識別子(NFT-ID;トークン識別子)及びNFTの所有者(所有者ブロックチェーンアドレス)を含み得る。一例として、インデックスデータは、ブロックチェーンに記録され、構成データ及びメタデータは、IPFSに記録され得る。前述の初期NFTは、インデックスデータを有し、メタデータ及び構成データを有していてなくてもよい。メタデータ及び構成データは、構成データの組込処理によって、NFTに付加され得る。ブロックチェーンに記録されたインデックスデータは、IPFS等のブロックチェーン外に保存された構成データを直接的に示すURIを有していてもよいし、構成データを直接的に示すURIを含むメタデータを示すURIのように、間接的に構成データを示すURIを有していてもよい。このように、NFTは、その全てがブロックチェーンに記録されている必要はなく、インデックスデータなどの少なくとも一部のデータがブロックチェーンに記録されていれば足りる。
<2.5 第5実施形態>
 図18は、第5実施形態に係るシステムシステム50の一例を示している。第5実施形態において特に説明しない点については、前述の実施形態に係るシステム10,20,30と同様である。
 システム50は、端末300等のコンピュータから、画像P1を示すコードC1を有するNFT要求を受信し得る(ステップS181A)。コードC1は、目的NFTの種類をシステム50が識別するための識別情報であり得る。システム50が備えるデータベース230は、複数の素材データP1,P2,P3を備え、各素材データP1,P2,P3にはコードC1,C2,C3が対応付けられている。素材データP1,P2,P3に対応付けられたコードC1は、対応する素材データP1,P2,P3を示す。システム50は、ステップS181Aにおいて受信したコードC1に対応する第1素材データP1を選択し、選択された第1素材データP1を用いて、目的NFTを生成する(ステップS182)。第1素材データP1を用いて生成された目的NFTは、「画像P1を有する」という種類のNFTであり得る。第1素材データP1を用いて生成された目的NFTは、例えば、第1素材データの識別子(例えば、URI)、又は、第1素材データの複製データの識別子(例えば、URI)を備え得る。
 また、システム50は、端末300等のコンピュータから、画像P2を示すコードC2を有するNFT要求を受信し得る(ステップS181B)。コードC2は、目的NFTの種類をシステム50が識別するための識別情報であり得る。システム50は、ステップS181Bにおいて受信したコードC2に対応する第2素材データP2を選択し、選択された第2素材データP2を用いて、目的NFTを生成する(ステップS182)。第2素材データP2を用いて生成された目的NFTは、「画像P2を有する」という種類のNFTであり得る。第2素材データP2を用いて生成された目的NFTは、例えば、第2素材データの識別子(例えば、URI)、又は、第2素材データの複製データの識別子(例えば、URI)を備え得る。
 システム50は、NFTの生成に用いられる画像など素材データを有しているため、端末300などの外部のコンピュータから、NFTの生成に用いられる素材データを取得しなくても、NFTを生成できる。ただし、システム50は、NFTの生成に用いられる素材データの一部を外部のコンピュータから取得してもよい。システム50は、NFT要求を受信する(ステップS181A,S181B)前から有している素材データP1,P2,P3を少なくとも用いて、NFTを生成することができる。
<2.6 第6実施形態>
 図19は、第6実施形態に係るシステムシステム60の一例を示している。第6実施形態において特に説明しない点については、前述の実施形態に係るシステム10,20,30,50と同様である。
 システム60は、図示しない端末300等のコンピュータから、NFT要求を受信し得る(ステップS191)。NFT要求は、生成される目的NFTのタイプを示すデータを有する。タイプを示すデータは、目的NFTの種類をシステム50が識別するための識別情報であり得る。システム60が備えるデータベース230は、複数のタイプに応じた素材データを備える。例えば、図19に示すデータベース230は、第1タイプ(TYPE_A)のための複数の素材データP11,P12,P13を備えるとともに、第2タイプ(TYPE_B)のための複数の素材データP21,P22,P23を備える。
 システム60は、第1タイプ(TYPE_A)を示すデータを識別情報として有するNFT要求を受信すると(ステップS191A)、そのNFT要求に基づいてタイプが第1タイプ(TYPE_A)であることを識別する。さらに、システム60は、識別したタイプに応じた複数の素材データP11,P12,P13の中から、目的NFTの生成に用いられる素材データ(例えば、画像P12)を選択する。目的NFTの生成に用いられる素材データは、識別されたタイプ(TYPE_A)に応じた複数の素材データP11,P12,P13の中から、所定の規則又はランダムに選択される。システム60は、選択された素材データを用いて、目的NFTを生成する(ステップS192)。生成された目的NFTは、TYPE_Aという種類のNFTであり得る。
 システム60は、第2タイプ(TYPE_B)を示すデータを識別情報として有するNFT要求を受信すると(ステップS191B)、そのNFT要求に基づいてタイプが第2タイプ(TYPE_B)であることを識別する。さらに、システム60は、識別したタイプに応じた複数の素材データP21,P22,P23の中から、目的NFTの生成に用いられる素材データ(例えば、画像P23)を選択する。目的NFTの生成に用いられる素材データは、識別されたタイプ(TYPE_B)に応じた複数の素材データP21,P22,P23の中から、所定の規則又はランダムに選択される。システム60は、選択された素材データを用いて、目的NFTを生成する(ステップS192)。生成された目的NFTは、TYPE_Bという種類のNFTであり得る。
<2.7 第7実施形態>
 図20は、第7実施形態に係るシステムシステム70の一例を示している。第7実施形態において特に説明しない点については、前述の実施形態に係るシステム10,20,30,50,60と同様である。
 システム70は、図示しないユーザ端末300から、NFT要求を受信し得る(ステップS191)。NFT要求は、コードを有し得る。コードは、NFTの取得を希望するユーザに付与又は通知されたデータである。コードは、ユーザがNFTを取得するための資格情報であり得る。例えば、第1ユーザは、第1ユーザに付与又は通知された第1コードをシステム70に送信することで、NFTを受信することができる。また、第2ユーザは第2ユーザに付与又は通知された第2コードをシステム70に送信することで、NFTを受信することができ、第3ユーザは、第3ユーザに付与又は通知された第3コードをシステム70に送信することで、NFTを受信することができる。
 コードは、目的NFTの種類をシステム70が識別するための識別情報であり得る。コードは、システム70が素材データのタイプを識別するためのデータであり得る。システム70が備えるデータベース230は、複数のタイプに応じた素材データを備える。例えば、図20に示すデータベース230は、第1タイプ(TYPE_A)のための複数の素材データP11,P12,P13を備えるとともに、第2タイプ(TYPE_B)のための複数の素材データP21,P22,P23を備える。
 システム70は、受信する可能性のあるコードの一覧を示すコードリスト(図示省略)を有し得る。コードリストに含まれる複数のコードそれぞれには、タイプが対応付けられている。一例として、システム70においては、第1コード及び第2コードは第1タイプ(TYPE_A)に対応付けられており、第3コードは、第2タイプ(TYPE_B)に対応付けられている。この場合、システム70は、第1コードを有するNFT要求を受信した場合(ステップS201A)、又は、第2コードを有するNFT要求を受信した場合(ステップS201B)、受信したコードに基づいて、素材データのタイプが第1タイプ(TYPE_A)であることを識別する。システム70は、第1タイプ(TYPE_A)用素材データP11,P12,P13の中から、目的NFTの生成に用いられる素材データ(例えば、画像P11)を選択する。目的NFTの生成に用いられる素材データは、識別されたタイプ(TYPE_A)に応じた複数の素材データP11,P12,P13の中から、所定の規則又はランダムに選択される。システム70は、選択された素材データを用いて、目的NFTを生成する(ステップS202)。生成された目的NFTは、TYPE_Aという種類のNFTであり得る。
 システム70は、第3コードを有するNFT要求を受信した場合(ステップS201C)、受信したコードに基づいて、素材データのタイプが第2タイプ(TYPE_B)であることを識別する。システム70は、第2タイプ(TYPE_B)用素材データP21,P22,P23の中から、目的NFTの生成に用いられる素材データ(例えば、画像P22)を選択する。目的NFTの生成に用いられる素材データは、識別されたタイプ(TYPE_B)に応じた複数の素材データP21,P22,P23の中から、所定の規則又はランダムに選択される。システム70は、選択された素材データを用いて、目的NFTを生成する(ステップS202)。生成された目的NFTは、TYPE_Bという種類のNFTであり得る。
 なお、NFT要求が、コードなどの識別情報を有しない場合、システム10,20,30,50,60,70は、NFT要求を受信すると、目的NFTの生成に用いられる素材データを、複数の識別データの中から、所定の規則に従って又はランダムに選択することができる。
<2.7 第7実施形態:プライベートキーの利用>
 図21は、プライベートキーの取り扱いに関する技術を示している。図21に示す技術は、第1実施形態のシステム10及び他の実施形態のシステムにおいて採用可能である。NFT要求(ステップS212)を受信したスマートコントラクト110,120は、スマートコントラクト110,120のサーバ200が有する1又は複数のプライベートキーKey1,Key2,Key3のいずれかを用いて、NFT生成のためのトランザクションに電子署名する(ステップS213)。電子署名されたトランザクションは、ブロックチェーンに記録される。これによりNFTが生成される(ステップS214)。第三者から参照可能なブロックチェーン上のスマートコントラクト110,120は、第三者が参照可能なため、プライベートキーを有していると、第三者にプライベートキーが知られるおそれがある。サーバ200などの外部のコンピュータが、NFT生成用プライベートキーKey1,Key2,Key3を有していることで、プライベートキーKey1,Key2,Key3を安全に保管できる。
 スマートコントラクト110,120は、NFT生成(ステップS214)の必要が生じた場合、その旨をサーバ200へ通知し、電子署名のためのプライベートキーを取得する。サーバ200は、複数のプライベートキーKey1,Key2,Key3の中からNFT生成に用いられる一つのプライベートキーを適宜選択し、スマートコントラクト110,120に提供する。スマートコントラクト110,120は、取得したプライベートキーを用いて電子署名をする。すなわち、システム10は、スマートコントラクト110,120によってNFTを生成するが、スマートコントラクト110,120の外部のコンピュータ200に保管されているプライベートキーを用いて、NFTを生成する。なお、電子署名は、サーバ200がおこなってもよい。
 図21において、スマートコントラクト110,120は、Webサーバ350から、NFT要求を受信し得る(ステップS212)。Webサーバ350は、図1に示すユーザ用コンピュータの一例である。Webサーバ350は、ユーザインターフェースをユーザ端末300に提供し得る。ユーザインターフェースは、例えば、NFT化される画像を表示するとともに、NFTの取得のためのユーザ操作を受け付けるWebサイトである。ユーザは、ユーザ端末300を利用して、Webサイトにサインインし得る(ステップS211)。サインインには、ユーザのプライベートキー301が用いられる。ユーザは、プライベートキー301に対応するブロックチェーンアドレス302を有する。図21において、ユーザのブロックチェーンアドレス302は、一例として、0x13579である。ブロックチェーンアドレス302は、プライベートキー301から生成され得る。
 ユーザは、プライベートキー301を用いてWebサイトにサインインすることで、Webサイトを介して、ブロックチェーンの操作が可能となる。すなわち、Webサーバ350は、Webサイトにサインインしたユーザのために、ブロックチェーンに記録されるトランザクションにプライベートキー301を用いて電子署名することができる。なお、電子署名は、ユーザ端末300が行ってもよい。
 Webサーバ350によるブロックチェーンの操作は、一例として、スマートコントラクト1110,120の呼び出しである(ステップS212)。ここでのスマートコントラクトの呼び出しは、スマートコントラクトへのNFT要求の送信でもある。
 スマートコントラクト110,120の呼び出しの際には、ユーザのブロックチェーンアドレス302がスマートコントラクト110,120へ送信される。スマートコントラクト302は、生成したNFTを、受信したブロックチェーンアドレス302へ送信する。このように、スマートコントラクト110,120は、NFT要求と生成したNFTの送信先アドレス302とを受信し得る。なお、ブロックチェーンアドレス302は、スマートコントラクト110,120が呼び出された後に、スマートコントラクト110,120へ送信されてもよい。
 図21に示す技術によると、ユーザは、生成されたNFTの送信先となるブロックチェーンアドレス302をシステム10(例えば、スマートコントラクト110,120)に提供すればよく、ユーザは、NFT生成のため、自身のプライベートキー301をシステム10(例えば、スマートコントラクト110,120)に提供する必要がない。したがって、ユーザのプライベートキー301の秘匿性を確保しやすい。
 NFTの生成に用いられるプライベートキーが、ユーザが有するプライベートキー301ではなく、システム10が有するプライベートキーKey1,Key2,Key3であるため、NFTを生成した時点において、NFTの所有者はシステム10である。しかし、NFTは生成された後、ユーザのアドレス302へ送信されるため、生成されたNFTの所有者はユーザになる。
 本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
 実施形態に係るシステムは、次のとおりであってもよい。すなわち、実施形態に係るシステムは、ノンファンジブルトークンを生成する処理を実行するよう構成されたノンファンジブルトークン生成システムであって、複数の素材データを備えるデータベースを備え得る。前記ノンファンジブルトークンを生成する前記処理は、ノンファンジブルトークン要求を受信すると、前記データベースが備える複数の素材データの中から、所定の規則に従って又はランダムに、データを選択し、選択された前記データを用いて、ノンファンジブルトークンを生成する、ことを備え得る。
 実施形態に係る方法は、次のとおりであってもよい。すなわち、実施形態に係る方法は、ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であって、前記ノンファンジブルトークン生成システムは、複数の素材データを備えるデータベースを備え得る。前記方法は、ノンファンジブルトークン要求を受信すると、前記データベースが備える複数の素材データの中から、所定の規則に従って又はランダムに、データを選択し、選択された前記データを用いて、ノンファンジブルトークンを生成する、ことを備え得る。
10       :ノンファンジブルトークン生成システム
20       :ノンファンジブルトークン生成システム
30       :ノンファンジブルトークン生成システム
50       :ノンファンジブルトークン生成システム
60       :ノンファンジブルトークン生成システム
70       :ノンファンジブルトークン生成システム
100      :コンピュータネットワークシステム
101      :スマートコントラクト
102      :チケット発行スマートコントラクト
103      :保証証書発行スマートコントラクト
110      :第1スマートコントラクト
111      :第1モジュール
112      :第2モジュール
113      :第3モジュール
114      :第4モジュール
115      :第5モジュール
116      :ファンジブルトークン数判定モジュール
117      :NFTタイプ判定モジュール
120      :第2スマートコントラクト
200      :サーバ
210      :プロセッサ
212      :NFT構成データ組込処理
215      :予約受付処理
220      :メモリ
230      :データベース
240      :NFT用素材データ(素材データのデータベース)
245      :構成データのデータベース
250      :NFT生成規則
260      :コンピュータプログラム
300      :ユーザ端末(ユーザ用コンピュータ)
301      :プライベートキー
302      :ブロックチェーンアドレス
310      :操作画面
311      :ボタン
312      :ボタン
313      :ボタン
314      :ボタン
315      :ボタン
350      :サーバ(アプリケーションサーバ;ユーザ用コンピュータ)
C1       :カテゴリ
C2       :カテゴリ
C3       :カテゴリ
D1       :画像データ
D2       :画像データ
D3       :画像データ
M        :カテゴリデータ数
N        :画像データ数
P        :発行数
T        :種類

Claims (15)

  1.  ノンファンジブルトークン生成システムであって、
     識別情報を有するノンファンジブルトークン要求を受信し、
     前記ノンファンジブルトークン要求が有する前記識別情報に基づいて、生成すべき目的ノンファンジブルトークンの種類を識別し、
     識別された種類の前記目的ノンファンジブルトークンを生成し、
     生成された前記目的ノンファンジブルトークンを送信する、
    ことを実行するよう構成されており、複数の種類の目的ノンファンジブルトークンを生成可能である
     ノンファンジブルトークン生成システム。
  2.  前記ノンファンジブルトークン要求を受信することは、ファンジブルトークン又はノンファンジブルトークンである要求送信トークンを受信することを含み、
     前記目的ノンファンジブルトークンの種類は、前記要求送信トークンの数又は種類を前記識別情報として用いて識別される
     請求項1に記載のノンファンジブルトークン生成システム。
  3.  前記要求送信トークンとしてファンジブルトークン及びノンファンジブルトークンのいずれも受信可能に構成されており、
     前記要求送信トークンとして前記ファンジブルトークンを受信した場合、前記目的ノンファンジブルトークンの種類は、前記要求送信トークンとして受信した前記ファンジブルトークンの数に基づいて識別され、
     前記要求送信トークンとして前記ノンファンジブルトークンを受信した場合、前記目的ノンファンジブルトークンの種類は、前記要求送信トークンとして受信した前記ノンファンジブルトークンの種類に基づいて識別される
     請求項2に記載のノンファンジブルトークン生成システム。
  4.  ブロックチェーンにおけるスマートコントラクトを実行するコントラクトコンピュータを備え、
     前記スマートコントラクトは、
      前記識別情報を有するノンファンジブルトークン要求を受信し、
      前記ノンファンジブルトークン要求が有する前記識別情報に基づいて、生成すべき前記目的ノンファンジブルトークンの種類を識別し、
      識別された種類の前記目的ノンファンジブルトークンを生成し、
      生成された前記目的ノンファンジブルトークンを送信する、
    ことを前記コントラクトコンピュータに実行させるよう構成されている
     請求項1から請求項3のいずれか1項に記載のノンファンジブルトークン生成システム。
  5.  前記目的ノンファンジブルトークンを生成することは、複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、前記目的ノンファンジブルトークンを生成することを含む
     請求項1から請求項4のいずれか1項に記載のノンファンジブルトークン生成システム。
  6.  前記目的ノンファンジブルトークンは、選択された前記データの複製データを示す識別子を有する
     請求項5に記載のノンファンジブルトークン生成システム。
  7.  前記複製データを示す識別子は、前記複製データを示すユニフォームリソースアイデンティファイアである
     請求項6に記載のノンファンジブルトークン生成システム。
  8.  前記識別情報に基づいて、生成すべき前記目的ノンファンジブルトークンの個数を識別することを更に実行するよう構成されている
     請求項1から請求項7のいずれか1項に記載のノンファンジブルトークン生成システム。
  9.  前記ノンファンジブルトークン要求を受信することは、ノンファンジブルトークンである要求送信トークンを受信することを含み、
     前記要求送信トークンであるノンファンジブルトークンは、生成すべき前記目的ノンファンジブルトークンの種類を識別するために用いられる前記識別情報を有する
     請求項1から請求項8のいずれか1項に記載のノンファンジブルトークン生成システム。
  10.  前記ノンファンジブルトークン要求が有する前記識別情報は、前記複数の素材データのいずれかを示すデータを含む
     請求項1から請求項9のいずれか1項に記載のノンファンジブルトークン生成システム。
  11.  前記目的ノンファンジブルトークンを生成するための生成用プライベートキーを備え、前記生成用プライベートキーを用いて前記目的ノンファンジブルトークンを生成するよう構成されている
     請求項1から請求項10のいずれか1項に記載のノンファンジブルトークン生成システム。
  12.  ノンファンジブルトークンを生成する処理を実行するよう構成されたノンファンジブルトークン生成システムであって、
     複数の素材データを備えるデータベースを備え、
     前記ノンファンジブルトークンを生成する前記処理は、
      識別情報を有するノンファンジブルトークン要求を受信し、
      前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、
     ことを備える、
     ノンファンジブルトークン生成システム。
  13.  前記ノンファンジブルトークンを生成するための生成用プライベートキーを備え、前記プライベートキーを用いて前記ノンファンジブルトークンを生成するよう構成されている
     請求項12に記載のノンファンジブルトークン生成システム。
  14.  ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であって、
    前記方法は、
     識別情報を有するノンファンジブルトークン要求を受信し、
     前記ノンファンジブルトークン要求が有する前記識別情報に基づいて識別された種類の目的ノンファンジブルトークンを生成し、
     生成された前記目的ノンファンジブルトークンを送信する、
    ことを備える、
     ノンファンジブルトークン生成方法。
  15.  ノンファンジブルトークン生成システムによって実行されるノンファンジブルトークン生成方法であって、
     前記ノンファンジブルトークン生成システムは、複数の素材データを備えるデータベースを備え、
     前記方法は、
     識別情報を有するノンファンジブルトークン要求を受信し、
     前記データベースが備える複数の素材データの中から、受信した前記識別情報に基づいて選択されたデータを用いて、ノンファンジブルトークンを生成する、
     ことを備える、
     ノンファンジブルトークン生成方法。
PCT/JP2022/013864 2021-03-26 2022-03-24 ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法 WO2022202973A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2023509288A JPWO2022202973A1 (ja) 2021-03-26 2022-03-24
JP2023052813A JP7367948B2 (ja) 2021-03-26 2023-03-29 ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法
JP2023137329A JP2023153393A (ja) 2021-03-26 2023-08-25 ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-053535 2021-03-26
JP2021053535 2021-03-26

Publications (1)

Publication Number Publication Date
WO2022202973A1 true WO2022202973A1 (ja) 2022-09-29

Family

ID=83397337

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/013864 WO2022202973A1 (ja) 2021-03-26 2022-03-24 ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法

Country Status (2)

Country Link
JP (3) JPWO2022202973A1 (ja)
WO (1) WO2022202973A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102516729B1 (ko) * 2022-12-01 2023-03-31 (주)엠나인파이브 Nft 발행 시스템
JP7411946B1 (ja) 2023-01-16 2024-01-12 Institution for a Global Society株式会社 情報処理システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190299105A1 (en) * 2018-03-27 2019-10-03 Truly Simplistic Innovations Inc Method and system for converting digital assets in a gaming platform
JP2020140400A (ja) * 2019-02-27 2020-09-03 富士通株式会社 電子通貨、プログラム及び電子通貨取引システム
JP6804073B1 (ja) * 2020-03-19 2020-12-23 bacoor dApps株式会社 スマートコントラクトとして機能させるためのコンピュータプログラム
JP2021028827A (ja) * 2019-08-09 2021-02-25 広志 谷本 プログラム、チャレンジ支援システム、チャレンジ支援方法、端末

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019213700A1 (en) 2018-05-07 2019-11-14 Dream Channel Pty. Ltd. Films on a blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190299105A1 (en) * 2018-03-27 2019-10-03 Truly Simplistic Innovations Inc Method and system for converting digital assets in a gaming platform
JP2020140400A (ja) * 2019-02-27 2020-09-03 富士通株式会社 電子通貨、プログラム及び電子通貨取引システム
JP2021028827A (ja) * 2019-08-09 2021-02-25 広志 谷本 プログラム、チャレンジ支援システム、チャレンジ支援方法、端末
JP6804073B1 (ja) * 2020-03-19 2020-12-23 bacoor dApps株式会社 スマートコントラクトとして機能させるためのコンピュータプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102516729B1 (ko) * 2022-12-01 2023-03-31 (주)엠나인파이브 Nft 발행 시스템
JP7411946B1 (ja) 2023-01-16 2024-01-12 Institution for a Global Society株式会社 情報処理システム

Also Published As

Publication number Publication date
JPWO2022202973A1 (ja) 2022-09-29
JP2023153393A (ja) 2023-10-17
JP7367948B2 (ja) 2023-10-24
JP2023110918A (ja) 2023-08-09

Similar Documents

Publication Publication Date Title
JP6710401B1 (ja) 対象物を管理する方法及び管理サーバ
JP7367948B2 (ja) ノンファンジブルトークン生成システム及びノンファンジブルトークン生成方法
JP2022550924A (ja) トークン化プラットフォーム
US7814025B2 (en) Methods and apparatus for title protocol, authentication, and sharing
US20060170759A1 (en) Methods and apparatus for optimizing digital asset distribution
US20050273805A1 (en) Methods and apparatus for a title transaction network
US20140019372A1 (en) Methods and apparatus for title structure & management
CN113656767A (zh) 利用分布式网络及分布式id的作者认证装置及方法
US20230108610A1 (en) Systems for secure data replication and original destruction using a blockchain distributed ledger
JP5465695B2 (ja) 進捗状況提示装置、進捗状況提示システム、進捗状況提示プログラム、及び進捗状況提示方法
US20100235257A1 (en) Multimedia gift registry system
JP7340897B1 (ja) ギフト贈呈システム
JP2010039702A (ja) バリュー管理サーバ、プログラム、バリュー管理システム及びバリュー管理方法
WO2023286773A1 (ja) 印刷によって製造される商品の製造方法及びシステム
WO2023007867A1 (ja) チケット管理システム、プログラム、および方法
WO2022137834A1 (ja) 情報管理方法、及び情報管理プログラム
KR102523264B1 (ko) 음원 앨범에 수록된 qr 인식을 통한 음원 콘텐츠의 nft 발행 및 거래 서비스를 제공하기 위한 방법
JP7397534B2 (ja) 販売済み商品管理システム、販売済み商品管理方法、及びプログラム
JP7493823B2 (ja) 情報処理方法、情報処理装置及びプログラム
JP2019075053A (ja) 贈答品用メッセージ管理システム及び贈答品用メッセージ管理方法
US20240046267A1 (en) Virtual Blockchain Applications for Stored Value Tokens
WO2023176439A1 (ja) ギフティングを行うための装置、方法及びそのためのプログラム
JP2023165019A (ja) 情報処理方法、情報処理装置及びプログラム
JP2023167674A (ja) 情報処理方法、プログラム及び情報処理システム
JP2024044225A (ja) 出所保証システム、出所保証方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22775754

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023509288

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22775754

Country of ref document: EP

Kind code of ref document: A1