Search

US-20260127161-A1 - WEB3 ASSET RECORDAL WITH TRANSPARENCY AND ERROR RECOVERY

US20260127161A1US 20260127161 A1US20260127161 A1US 20260127161A1US-20260127161-A1

Abstract

Systems include reception of metadata of a Web3 asset at a Web interface, storage of the metadata in a database in association with a tenant identifier, transmission of one or more instructions to execute a process to record the Web3 asset to a distributed ledger, updating, during execution of the process, of a current state of the process in a record of the database associated with the tenant identifier, determination of an error associated with execution of the process, determination of an error notification comprising a retry option based on the current state of the process in the record, reception of a selection of the retry option, and, in response to receipt of the selection, resume execution of the process at a state immediately prior to the current state of the process in the record.

Inventors

  • Keyoni McNAIR
  • Rohit Mukund DESHPANDE
  • Narek Asadorian
  • Michael Roth
  • Scott Young

Assignees

  • SAP SE

Dates

Publication Date
20260507
Application Date
20241104

Claims (20)

  1. 1 . A system comprising: a memory storing executable program code; and at least one processing unit to execute the program code to cause the system to: receive a request at a Web server to record a Web3 asset associated with data and metadata on a distributed ledger; store the data and metadata in a database; store a record in the database associating the Web3 asset with a first state of a recordal process, the first state associated with creating a collection keypair; transmit a first one or more encrypted transactions to create a collection keypair associated with the Web3 asset on the distributed ledger; receive first keys of the collection keypair; in response to reception of the first keys: store the first keys in the database; and modify the record in the database to associate the Web3 asset with a second state of the recordal process, the second state associated with deploying a smart contract; transmit a second one or more encrypted transactions to deploy a smart contract associated with the Web3 asset and the collection keypair on the distributed ledger; receive an error in response to the second one or more encrypted transactions; in response to reception of the error: retrieve the second state of the recordal process from the database; determine an error notification based on the second state of the recordal process and the error, the error notification comprising an option to retry; and present the error notification; receive a selection of the option to retry; and in response to the selection, transmit a third one or more encrypted transactions to deploy the smart contract associated with the Web3 asset and the collection keypair on the distributed ledger.
  2. 2 . The system of claim 1 , the at least one processing unit to execute the program code to cause the system to: modify the record in the database to associate the Web3 asset with a third state of the recordal process, the third state associated with uploading contract metadata; transmit a fourth one or more encrypted transactions to upload contract metadata associated with the Web3 asset and the collection keypair on the distributed ledger; receive a second error in response to the fourth one or more encrypted transactions; in response to reception of the second error: retrieve the third state of the recordal process from the database; determine a second error notification based on the third state of the recordal process and the second error, the second error notification comprising a second option to retry; and present the second error notification; receive a second selection of the second option to retry; and in response to the second selection, transmit a fifth one or more encrypted transactions to upload contract metadata associated with the Web3 asset and the collection keypair on the distributed ledger.
  3. 3 . The system of claim 2 , the at least one processing unit to execute the program code to cause the system to: modify the record in the database to associate the Web3 asset with a fourth state of the recordal process, the fourth state associated with setting a contract metadata uniform resource identifier (URI); transmit a sixth one or more encrypted transactions to set a contract metadata URI associated with the Web3 asset and the collection keypair on the distributed ledger; receive a third error in response to the sixth one or more encrypted transactions; in response to reception of the third error: retrieve the fourth state of the recordal process from the database; determine a third error notification based on the second state of the recordal process and the third error, the third error notification comprising a third option to retry; and present the third error notification; receive a third selection of the third option to retry; and in response to the third selection, transmit a seventh one or more encrypted transactions to set the contract metadata URI associated with the Web3 asset and the collection keypair on the distributed ledger.
  4. 4 . The system of claim 3 , the at least one processing unit to execute the program code to cause the system to: modify the record in the database to associate the Web3 asset with a fifth state of the recordal process, the fifth state associated with recording a Web3 asset; transmit an eighth one or more encrypted transactions to record the Web3 asset on the distributed ledger; receive a fourth error in response to the eighth one or more encrypted transactions; in response to reception of the fourth error: retrieve the fifth state of the recordal process from the database; determine a fourth error notification based on the fifth state of the recordal process and the fourth error, the fourth error notification comprising a fourth option to retry; and present the fourth error notification; receive a fourth selection of the fourth option to retry; and in response to the fourth selection, transmit a ninth one or more encrypted transactions to record the Web3 asset on the distributed ledger.
  5. 5 . The system of claim 4 , wherein the eighth one or more encrypted transactions to record the Web3 asset on the distributed ledger are to record a plurality of Web3 assets on the distributed ledger in association with the collection keypair, and wherein transmission of the ninth one or more encrypted transactions to record the Web3 asset on the distributed ledger comprises: determination of a first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair and a second set of the plurality of Web3 assets which have been not recorded on the distributed ledger in association with the collection keypair; and transmission of the ninth one or more encrypted transactions to record the second set of the plurality of Web3 assets and not the first set of the plurality of Web3 assets on the distributed ledger.
  6. 6 . The system of claim 5 , wherein determination of the first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair comprises determination of Web3 assets which are associated with a token ID in the database.
  7. 7 . The system of claim 1 , the at least one processing unit to execute the program code to cause the system to: modify the record in the database to associate the Web3 asset with a fifth state of the recordal process, the fifth state associated with recording a Web3 asset; transmit a fourth one or more encrypted transactions to record the Web3 asset on the distributed ledger; receive a second error in response to the fourth one or more encrypted transactions; in response to reception of the second error: retrieve the fifth state of the recordal process from the database; determine a second error notification based on the fifth state of the recordal process and the second error, the second error notification comprising a second option to retry; and present the second error notification; receive a second selection of the second option to retry; and in response to the second selection, transmit a fifth one or more encrypted transactions to record the Web3 asset on the distributed ledger.
  8. 8 . The system of claim 7 , wherein the fourth one or more encrypted transactions to record the Web3 asset on the distributed ledger are to record a plurality of Web3 assets on the distributed ledger in association with the collection keypair, and wherein transmission of the fifth one or more encrypted transactions to record the Web3 asset on the distributed ledger comprises: determination of a first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair and a second set of the plurality of Web3 assets which have been not recorded on the distributed ledger in association with the collection keypair; and transmission of the fifth one or more encrypted transactions to record the second set of the plurality of Web3 assets and not the first set of the plurality of Web3 assets on the distributed ledger.
  9. 9 . The system of claim 8 , wherein determination of the first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair comprises determination of Web3 assets which are associated with a token ID in the database.
  10. 10 . A method comprising: receiving metadata of a Web3 asset at a Web interface; storing the metadata in a database in association with a tenant identifier; transmitting one or more instructions to execute a process to record the Web3 asset to a distributed ledger; during execution of the process, updating a current state of the process in a record of the database associated with the tenant identifier; determining an error associated with execution of the process; determining an error notification comprising a retry option based on the current state of the process in the record; receiving a selection of the retry option; and in response to receipt of the selection, resuming execution of the process at a state immediately prior to the current state of the process in the record.
  11. 11 . The method of claim 10 , wherein the process comprises the states Create Collection Wallet, Deploy Smart Contract, Upload Contract Metadata, Set Contract Metadata, and Mint Web3 asset.
  12. 12 . The method of claim 10 , wherein the one or more instructions are to execute a process to record a plurality of Web3 assets to the distributed ledger, and wherein resuming execution of the process comprises: determining a first set of the plurality of Web3 assets which have been recorded on the distributed ledger and a second set of the plurality of Web3 assets which have been not recorded on the distributed ledger; and transmitting a second one or more encrypted transactions to record the second set of the plurality of Web3 assets and not the first set of the plurality of Web3 assets on the distributed ledger.
  13. 13 . The method of claim 12 , wherein determining the first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair comprises determining Web3 assets which are associated with a token ID in the database.
  14. 14 . One or more non-transitory media storing program code executable by at least one processing unit of a computing system to cause the computing system to: receive a request at a Web server to record a Web3 asset on a distributed ledger; store a record in the database associating the Web3 asset with a first state of a recordal process, the first state associated with creating a collection keypair; transmit a first one or more encrypted transactions to create a collection keypair associated with the Web3 asset on the distributed ledger; modify the record in the database to associate the Web3 asset with a second state of the recordal process, the second state associated with deploying a smart contract; transmit a second one or more encrypted transactions to deploy a smart contract associated with the Web3 asset and the collection keypair on the distributed ledger; receive an error in response to the second one or more encrypted transactions; in response to reception of the error: retrieve the second state of the recordal process from the database; determine an error notification based on the second state of the recordal process and the error, the error notification comprising an option to retry; and present the error notification; receive a selection of the option to retry; and in response to the selection, transmit a third one or more encrypted transactions to deploy the smart contract associated with the Web3 asset and the collection keypair on the distributed ledger.
  15. 15 . The one or more non-transitory media of claim 14 , the program code executable by at least one processing unit of a computing system to cause the computing system to: modify the record in the database to associate the Web3 asset with a third state of the recordal process, the third state associated with uploading contract metadata; transmit a fourth one or more encrypted transactions to upload contract metadata associated with the Web3 asset and the collection keypair on the distributed ledger; receive a second error in response to the fourth one or more encrypted transactions; in response to reception of the second error: retrieve the third state of the recordal process from the database; determine a second error notification based on the third state of the recordal process and the second error, the second error notification comprising a second option to retry; and present the second error notification; receive a second selection of the second option to retry; and in response to the second selection, transmit a fifth one or more encrypted transactions to upload contract metadata associated with the Web3 asset and the collection keypair on the distributed ledger.
  16. 16 . The one or more non-transitory media of claim 15 , the program code executable by at least one processing unit of a computing system to cause the computing system to: modify the record in the database to associate the Web3 asset with a fourth state of the recordal process, the fourth state associated with setting a contract metadata uniform resource identifier (URI); transmit a sixth one or more encrypted transactions to set a contract metadata URI associated with the Web3 asset and the collection keypair on the distributed ledger; receive a third error in response to the sixth one or more encrypted transactions; in response to reception of the third error: retrieve the fourth state of the recordal process from the database; determine a third error notification based on the second state of the recordal process and the third error, the third error notification comprising a third option to retry; and present the third error notification; receive a third selection of the third option to retry; and in response to the third selection, transmit a seventh one or more encrypted transactions to set the contract metadata URI associated with the Web3 asset and the collection keypair on the distributed ledger.
  17. 17 . The one or more non-transitory media of claim 16 , the program code executable by at least one processing unit of a computing system to cause the computing system to: modify the record in the database to associate the Web3 asset with a fifth state of the recordal process, the fifth state associated with recording a Web3 asset; transmit an eighth one or more encrypted transactions to record the Web3 asset on the distributed ledger; receive a fourth error in response to the eighth one or more encrypted transactions; in response to reception of the fourth error: retrieve the fifth state of the recordal process from the database; determine a fourth error notification based on the fifth state of the recordal process and the fourth error, the fourth error notification comprising a fourth option to retry; and present the fourth error notification; receive a fourth selection of the fourth option to retry; and in response to the fourth selection, transmit a ninth one or more encrypted transactions to record the Web3 asset on the distributed ledger.
  18. 18 . The one or more non-transitory media of claim 17 , wherein the eighth one or more encrypted transactions to record the Web3 asset on the distributed ledger are to record a plurality of Web3 assets on the distributed ledger in association with the collection keypair, and wherein transmission of the ninth one or more encrypted transactions to record the Web3 asset on the distributed ledger comprises: determination of a first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair and a second set of the plurality of Web3 assets which have been not recorded on the distributed ledger in association with the collection keypair; and transmission of the ninth one or more encrypted transactions to record the second set of the plurality of Web3 assets and not the first set of the plurality of Web3 assets on the distributed ledger.
  19. 19 . The one or more non-transitory media of claim 18 , wherein determination of the first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair comprises determination of Web3 assets which are associated with a token ID in the database.
  20. 20 . The one or more non-transitory media of claim 14 , the program code executable by at least one processing unit of a computing system to cause the computing system to: modify the record in the database to associate the Web3 asset with a fifth state of the recordal process, the fifth state associated with recording a Web3 asset; transmit a fourth one or more encrypted transactions to record a plurality of Web3 assets on the distributed ledger in association with the collection keypair; receive a second error in response to the fourth one or more encrypted transactions; in response to reception of the second error: retrieve the fifth state of the recordal process from the database; determine a second error notification based on the fifth state of the recordal process and the second error, the second error notification comprising a second option to retry; and present the second error notification; receive a second selection of the second option to retry; and in response to the second selection: determine a first set of the plurality of Web3 assets which have been recorded on the distributed ledger in association with the collection keypair and a second set of the plurality of Web3 assets which have been not recorded on the distributed ledger in association with the collection keypair; and transmit the fifth one or more encrypted transactions to record the second set of the plurality of Web3 assets and not the first set of the plurality of Web3 assets on the distributed ledger.

Description

BACKGROUND A non-fungible token (NFT) is a digital “Web3” asset that represents ownership of a digital or real-world item. NFTs are unique cryptographic tokens that cannot be replicated. NFTs exist on a blockchain and are similar to a certificate of authenticity that is issued by a creator of the NFT. The blockchain records the ownership of an NFT and allows the ownership to be transferred from one party to another party. Widespread use of NFTs is limited by the technical expertise required to create, manage and interact with NFTs. A typical user is not technically capable of manually generating the transactions required to record (or “mint”) NFTs on a blockchain. Moreover, all NFT creators grapple with a lack of transparency during the minting process. For example, existing systems provide limited, non-descriptive status information to a creator as minting progresses. This lack of actionable information can lead to confusion, uncertainty, and inefficient decision-making. Minting involves asynchronous calls to the blockchain and to the InterPlanetary File System (IPFS), which are inherently prone to failure due to network issues, congestion, or other unforeseen factors. Current systems lack a robust error-handling mechanism for dealing with such failures. When an error occurs during minting of an NFT, particularly during asynchronous calls to the blockchain or to the IPFS, creators are often unaware of the issue which caused the error and can therefore do little to remedy the issue. Current systems therefore risk incomplete or failed minting processes, complicating a creator's efforts to launch an NFT collection. With respect to such failed processes, current systems also fail to specify a point of failure. Because the point of failure is unknown, a failed minting process must necessarily be restarted from the beginning rather than from the point of failure. The minting process can be inefficient, time-consuming and resource-intensive as a result, negatively impacting the overall user experience. It is therefore desirable to provide semantically-useful status information to a creator during a minting process. It is also desirable to provide a robust error-handling and retry mechanism for dealing with failures. Both of the desires are hindered by the asynchronous nature of the NFT minting process. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a system to initiate and manage minting of NFTs using Web2 technology according to some embodiments. FIGS. 2A and 2B are a flow diagram of a process to mint an NFT according to some embodiments. FIG. 3 is a user interface for specifying metadata of an NFT according to some embodiments. FIGS. 4A-4E show a user interface for tracking an NFT minting process according to some embodiments. FIGS. 5A-5B shows a user interface for tracking an NFT minting process according to some embodiments. FIG. 6 is a block diagram of a system according to some embodiments. DETAILED DESCRIPTION The following description is provided to enable any person in the art to make and use the described embodiments. Various modifications, however, will be readily-apparent to those in the art. Embodiments may address the foregoing issues through the implementation of a feedback mechanism and a retry mechanism which enhance the efficiency of the NFT minting process. Advantageously, a user is notified of progress through various stages of the minting process. In response to an error, embodiments are capable of identifying the point of failure, providing a user with a useful description of the failure, and resuming processing from the point of failure. Embodiments may therefore reduce the need to re-initiate an entire minting process in response to a failure. Embodiments introduce a granular and descriptive state machine representing the NFT collection minting process. The states assist in pinpointing a stage of the minting process at which an error occurs, thereby enabling a clearer understanding of the minting process and facilitating efficient error recovery. The states include, for example, Create Collection Wallet, Deploy Smart Contract, Upload Contract Metadata, Set Contract Metadata, Minting, and Published Each state may be assigned a status indicating whether it has not started, started, completed, or has encountered an error. FIG. 1 is a block diagram illustrating system 100 to initiate and manage minting of NFTs using Web2 technology according to some embodiments. Each of the illustrated components may be implemented using any suitable combination of computing hardware and/or software that is or becomes known. In some embodiments, two or more components are implemented by a single computing device. Two or more components of system 100 may be co-located. One or more components may be implemented as a cloud service (e.g., Software-as-a-Service, Platform-as-a-Service). A cloud-based implementation of any components of system 100 may apportion computing resources elastically accordin