Transferring self-custodied cryptocurrency tokens using marketplaces
Disclosed are various embodiments for transferring self-custodied cryptocurrency tokens using marketplaces. A marketplace service can determine that a first amount of a cryptocurrency has been transferred to a marketplace wallet address from a first user wallet address. Then, the marketplace service can, in response to a determination that the first amount of the cryptocurrency has been transferred to the marketplace wallet address, invoke a transfer function provided by a non-fungible token (NFT) smart contract, wherein the transfer function causes ownership of a non-fungible token (NFT) managed by the NFT smart contract to be transferred to a specified user wallet address. Subsequently, the marketplace service can, in response to the NFT being transferred to the specified user wallet address, send a second amount of the cryptocurrency from the marketplace wallet address to a second user wallet address.
1 . A system, comprising:
a computing device comprising a processor and a memory; and
machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:
determine that a first amount of a cryptocurrency has been transferred to a marketplace wallet address from a first user wallet address that is hosted on a first type of blockchain technology;
access a listing ledger to determine an amount of the cryptocurrency specified in a listing of a non-fungible token (NFT), wherein the listing ledger stores at least one of an indication of the first amount of the cryptocurrency, an NFT identifier, an NFT smart contract wallet address, a user wallet address associated with a seller, a minimum bid for the NFT, or an initial bid for the NFT;
send a cryptographic challenge to a user device that submitted the listing, the cryptographic challenge being encrypted with a public key;
receive an unencrypted challenge from the user device including a signature generated by a private key that is associated with the public key;
determine that the listing is valid based at least in part on receiving the unencrypted challenge;
determine, based at least in part on determining that the listing is valid, that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the NFT;
in response to a determination that the first amount of the cryptocurrency has been transferred to the marketplace wallet address and a determination that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the listing of the NFT, invoke a transfer function provided by a non-fungible token (NFT) smart contract, wherein the transfer function causes ownership of a non-fungible token (NFT) managed by the NFT smart contract to be transferred to a specified user wallet address; and
in response to the NFT being transferred to the specified user wallet address, utilize a bridge to wrap a second amount of the cryptocurrency from the marketplace wallet address and send the second amount of the cryptocurrency to a second user wallet address that is hosted on a second type of blockchain technology, wherein wrapping the second amount of the cryptocurrency enables the second amount of the cryptocurrency to be compatible on the second type of blockchain technology.
2 . The system of claim 1 , wherein the machine-readable instructions further cause the computing device to at least:
generate the marketplace wallet address as a unique wallet address for the purchase of the NFT; and
evaluate a blockchain to determine that the first amount of the cryptocurrency has been transferred to a unique wallet address.
3 . The system of claim 1 , wherein
the machine-readable instructions further cause the computing device to at least generate a unique transaction identifier for the transaction; and
the machine-readable instructions that cause the computing device to determine that the first amount of the cryptocurrency has been transferred to the marketplace wallet address from the first user wallet address further cause the computing device to evaluate a blockchain to identify a transaction that comprises the unique transaction identifier to determine that the first amount of the cryptocurrency has been transferred to the marketplace wallet address.
4 . The system of claim 1 , wherein the machine-readable instructions further cause the computing device to at least query the NFT smart contract to determine that the NFT has been transferred to the specified user wallet address.
5 . The system of claim 1 , wherein the NFT smart contract is hosted on a first blockchain, and the first user wallet address is hosted on a second blockchain, and the second user wallet address is hosted on a third blockchain.
6 . The system of claim 1 , wherein entries in the listing ledger are created at a time that a seller of the NFT for sale through a marketplace service.
7 . The system of claim 1 , wherein the first type of blockchain type technology is different than the second type of blockchain type technology.
8 . The system of claim 1 , wherein the first type of blockchain type technology is modular blockchain and the second type of blockchain type technology is a high-throughput blockchain.
9 . The system of claim 1 , further comprising invoking the transfer function in response to the first type of blockchain type technology being different than the second type of blockchain type technology.
10 . A method, comprising:
determining that a first amount of a cryptocurrency has been transferred to a marketplace wallet address from a first user wallet address that is hosted on a first type of blockchain technology;
accessing a listing ledger to determine an amount of the cryptocurrency specified in a listing of a non-fungible token (NFT), wherein the listing ledger stores at least one of an indication of the first amount of the cryptocurrency, an NFT identifier, an NFT smart contract wallet address, a user wallet address associated with a seller, a minimum bid for the NFT, or an initial bid for the NFT;
sending a cryptographic challenge to a user device that submitted the listing, the cryptographic challenge being encrypted with a public key;
receiving an unencrypted challenge from the user device including a signature generated by a private key that is associated with the public key;
determining that the listing is valid based at least in part on receiving the unencrypted challenge;
determining, based at least in part on determining that the listing is valid, that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the NFT;
in response to determining that the first amount of the cryptocurrency has been transferred to the marketplace wallet address and a determination that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the listing of the NFT, invoking a transfer function provided by a non-fungible token (NFT) smart contract, wherein the transfer function causes ownership of a non-fungible token (NFT) managed by the NFT smart contract to be transferred to a specified user wallet address; and
in response to the NFT being transferred to the specified user wallet address, utilize a bridge to wrap a second amount of the cryptocurrency from the marketplace wallet address and send the second amount of the cryptocurrency to a second user wallet address that is hosted on a second type of blockchain technology, wherein wrapping the second amount of the cryptocurrency enables the second amount of the cryptocurrency to be compatible on the second type of blockchain technology.
11 . The method of claim 10 , further comprising:
generating the marketplace wallet address as a unique wallet address for the purchase of the NFT; and
evaluating a blockchain to determine that the first amount of the cryptocurrency has been transferred to a unique wallet address.
12 . The method of claim 10 , further comprising:
generating a unique transaction identifier for the transaction; and
determining that the first amount of the cryptocurrency has been transferred to the marketplace wallet address from the first user wallet address further comprises evaluating a blockchain to identify a transaction that comprises the unique transaction identifier to determine that the first amount of the cryptocurrency has been transferred to the marketplace wallet address.
13 . The method of claim 10 , further comprising querying the NFT smart contract to determine that the NFT has been transferred to the specified user wallet address.
14 . The method of claim 10 , wherein the NFT smart contract is hosted on a first blockchain, and the first user wallet address is hosted on a second blockchain, and the second user wallet address is hosted on a third blockchain.
15 . A non-transitory, computer-readable medium, comprising machine readable instructions that, when executed by a processor of a computing device, cause the computing device to at least:
determine that a first amount of a cryptocurrency has been transferred to a marketplace wallet address from a first user wallet address that is hosted on a first type of blockchain technology;
accessing a listing ledger to determine an amount of the cryptocurrency specified in a listing of a non-fungible token (NFT), wherein the listing ledger stores at least one of an indication of the first amount of the cryptocurrency, an NFT identifier, an NFT smart contract wallet address, a user wallet address associated with a seller, a minimum bid for the NFT, or an initial bid for the NFT;
sending a cryptographic challenge to a user device that submitted the listing, the cryptographic challenge being encrypted with a public key;
receiving an unencrypted challenge from the user device including a signature generated by a private key that is associated with the public key;
determining that the listing is valid based at least in part on receiving the unencrypted challenge;
determining, based at least in part on determining that the listing is valid, that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the NFT;
in response to a determination that the first amount of the cryptocurrency has been transferred to the marketplace wallet address and a determination that the first amount of the cryptocurrency matches the amount of the cryptocurrency specified in the listing of the NFT, invoke a transfer function provided by a non-fungible token (NFT) smart contract, wherein the transfer function causes ownership of a non-fungible token (NFT) managed by the NFT smart contract to be transferred to a specified user wallet address; and
in response to the NFT being transferred to the specified user wallet address, utilize a bridge to wrap a second amount of the cryptocurrency from the marketplace wallet address and send the second amount of the cryptocurrency to a second user wallet address that is hosted on a second type of blockchain technology, wherein wrapping the second amount of the cryptocurrency enables the second amount of the cryptocurrency to be compatible on the second type of blockchain technology.
16 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions further cause the computing device to at least:
generate the marketplace wallet address as a unique wallet address for the purchase of the NFT; and
evaluate a blockchain to determine that the first amount of the cryptocurrency has been transferred to a unique wallet address.
17 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions further cause the computing device to at least generate a unique transaction identifier for the transaction; and
wherein the machine-readable instructions that cause the computing device to determine that the first amount of the cryptocurrency has been transferred to the marketplace wallet address from the first user wallet address further cause the computing device to evaluate a blockchain to identify a transaction that comprises the unique transaction identifier to determine that the first amount of the cryptocurrency has been transferred to the marketplace wallet address.
18 . The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions further cause the computing device to at least query the NFT smart contract to determine that the NFT has been transferred to the specified user wallet address.