Search

US-12626234-B2 - Self-executing program for outbound messages

US12626234B2US 12626234 B2US12626234 B2US 12626234B2US-12626234-B2

Abstract

A custodial token platform may implement a single smart contract for outbound messages. The custodial token platform may deploy, to a blockchain distributed data store, a self-executing program that batches messages from the self-executing program to multiple addresses of the blockchain distributed data store that are external to a custodial token platform associated with the self-executing program. The custodial token platform may select, from the multiple withdrawal requests and based on selection criteria, a set of withdrawal requests to fulfill via a batch message from the self-executing program. The custodial token platform may broadcast, to the blockchain distributed data store, a message that calls the self-executing program. The message includes an indication of a set of external addresses associated with the set of withdrawal requests, and the message causes a transfer of a set of crypto tokens from the self-executing program to the external addresses via the batch message.

Inventors

  • Peter Jihoon Kim
  • Brock Miller
  • Kai Luo
  • Jiangchuan He
  • Vignesh Muralidharan
  • Rajeev Vishaka

Assignees

  • Coinbase, Inc.

Dates

Publication Date
20260512
Application Date
20230127

Claims (18)

  1. 1 . A method for data processing comprising: deploying, to a blockchain distributed data store of a blockchain network comprising a plurality of computing nodes that maintain a blockchain ledger, a self-executing program configured to batch messages from the self-executing program to a plurality of addresses of the blockchain distributed data store that are external to a custodial token platform that manages keys associated with management roles of the self-executing program; receiving, at the custodial token platform, a plurality of withdrawal requests, each withdrawal request of the plurality of withdrawal requests including respective indications of a crypto token type, an amount of the crypto token type, and an external address to receive the amount of the crypto token type; selecting, from the plurality of withdrawal requests and based at least in part on one or more selection criteria, a set of withdrawal requests to fulfill via a batch message from the self-executing program; broadcasting, to the blockchain ledger, a message that calls the self-executing program, wherein the message that calls the self-executing program includes indications of a set of external addresses associated with the set of withdrawal requests and a set of amounts of crypto tokens from the set of withdrawal requests, and wherein the message that calls the self-executing program causes the self-executing program to execute, via a single transaction on the blockchain ledger and after verification of the single transaction by one or more computing nodes of the plurality of computing nodes, a set of transfers of the set of amounts of crypto tokens from a single blockchain address associated with the self-executing program to the set of external addresses in accordance with the indications included in the message that calls the self-executing program via the batch message, wherein the set of amounts of crypto tokens comprise a first amount of a first crypto token associated with a first withdrawal request and a second amount of a second crypto token associated with a second withdrawal request, and wherein the first crypto token is different from the second crypto token; and identifying, after broadcasting the message that calls the self-executing program and that causes the self-executing program to execute the set of transfers, a record of the single transaction on the blockchain ledger based at least in part on the verification of the single transaction by the one or more computing nodes, wherein the single transaction includes multiple state transfers of respective amounts of crypto token types from the single blockchain address to the set of external addresses.
  2. 2 . The method of claim 1 , wherein the message that calls the self-executing program executes the set of transfers of a respective set of one or more crypto tokens to each of the set of external addresses associated with the set of withdrawal requests.
  3. 3 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: selecting at least a threshold quantity of withdrawal requests for the batch message.
  4. 4 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: determining that an external address corresponding to a withdrawal request of the plurality of withdrawal requests qualifies as a new address; and determining to not fulfill the withdrawal request via the batch message based at least in part on determining that the withdrawal request qualifies as the new address.
  5. 5 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: determining that an external address corresponding to a withdrawal request of the plurality of withdrawal requests qualifies as an existing address; and selecting the withdrawal request to fulfill via the batch message.
  6. 6 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: selecting the set of withdrawal requests in accordance with a first-in-first-out (FIFO) scheme, selecting withdrawal requests based on a withdrawal amount, or a combination thereof.
  7. 7 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: selecting the set of withdrawal requests based at least in part on the set of withdrawal requests being associated with a first crypto token that is native to the blockchain distributed data store or with a one or more second crypto tokens that are supported by respective self-executing programs on the blockchain distributed data store.
  8. 8 . The method of claim 1 , wherein selecting the set of withdrawal requests comprises: determining a total amount of a crypto token attributed to an address for the self-executing program on the blockchain distributed data store; and filtering or selecting the set of withdrawal requests based at least in part on the total amount of the crypto token and respective amounts associated with each withdrawal request of the plurality of withdrawal requests.
  9. 9 . The method of claim 1 , further comprising: broadcasting, to the blockchain distributed data store, a message that is configured to transfer an amount of a crypto token from an inbound address associated with the custodial token platform to an address associated with the self-executing program.
  10. 10 . The method of claim 1 , further comprising: retrieving, subsequent to selecting the set of withdrawal requests, the set of external addresses and message information for fulfilling the set of withdrawal requests from a withdrawal request data store, wherein the message that calls the self-executing program includes the set of external addresses and the message information in order to cause the set of transfers.
  11. 11 . The method of claim 1 , further comprising: receiving, via a user interface associated with the custodial token platform, an external address and message information; and storing, in a withdrawal request data store in response to receiving a withdrawal request at the custodial token platform, the external address and the message information for fulfilling the withdrawal request, wherein the withdrawal request data store comprises external addresses and message information for the plurality of withdrawal requests.
  12. 12 . The method of claim 1 , further comprising: verifying, by the one or more computing nodes of the plurality of computing nodes, the message that calls the self-executing program; and executing, by the self-executing program in response to verification of the message that calls the self-executing program, the set of transfers that transfers the set of amounts of the crypto token types to corresponding external address of the set of external addresses associated with the set of withdrawal requests, wherein execution of the set of transfers by the self-executing program results in the record of the single transaction including the multiple transfers on the blockchain ledger.
  13. 13 . An apparatus, comprising: a processor; memory coupled with the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to: deploy, to a blockchain distributed data store of a blockchain network comprising a plurality of computing nodes that maintain a blockchain ledger, a self-executing program configured to batch messages from the self-executing program to a plurality of addresses of the blockchain distributed data store that are external to a custodial token platform that manages keys associated with management roles of the self-executing program; receive, at the custodial token platform, a plurality of withdrawal requests, each withdrawal request of the plurality of withdrawal requests including respective indications of a crypto token type, an amount of the crypto token type, and an external address to receive the amount of the crypto token type; select, from the plurality of withdrawal requests and based at least in part on one or more selection criteria, a set of withdrawal requests to fulfill via a batch message from the self-executing program; broadcast, to the blockchain ledger, a message that calls the self-executing program, wherein the message that calls the self-executing program includes indications of a set of external addresses associated with the set of withdrawal requests and a set of amounts of crypto tokens from the set of withdrawal requests, and wherein the message that calls the self-executing program causes the self-executing program to execute, via a single transaction on the blockchain ledger and after verification of the single transaction by one or more computing nodes of the plurality of computing nodes, a set of transfers of the set of amounts of crypto tokens from a single blockchain address associated with the self-executing program to the set of external addresses in accordance with the indications included in the message that calls the self-executing program via the batch message, wherein the set of amounts of crypto tokens comprise a first amount of a first crypto token associated with a first withdrawal request and a second amount of a second crypto token associated with a second withdrawal request, and wherein the first crypto token is different from the second crypto token; and identify, after broadcasting the message that calls the self-executing program and that causes the self-executing program to execute the set of transfers, a record of the single transaction on the blockchain ledger based at least in part on the verification of the single transaction by the one or more computing nodes, wherein the single transaction includes multiple state transfers of respective amounts of crypto token types from the single blockchain address to the set of external addresses.
  14. 14 . The apparatus of claim 13 , wherein the message that calls the self-executing program executes the set of transfers of a respective set of one or more crypto tokens to each of the set of external addresses associated with the set of withdrawal requests.
  15. 15 . The apparatus of claim 13 , wherein the instructions to select the set of withdrawal requests are executable by the processor to cause the apparatus to: select at least a threshold quantity of withdrawal requests for the batch message.
  16. 16 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by a processor to: deploy, to a blockchain distributed data store of a blockchain network comprising a plurality of computing nodes that maintain a blockchain ledger, a self-executing program configured to batch messages from the self-executing program to a plurality of addresses of the blockchain distributed data store that are external to a custodial token platform that manages keys associated with management roles of the self-executing program; receive, at the custodial token platform, a plurality of withdrawal requests, each withdrawal request of the plurality of withdrawal requests including respective indications of a crypto token type, an amount of the crypto token type, and an external address to receive the amount of the crypto token type; select, from the plurality of withdrawal requests and based at least in part on one or more selection criteria, a set of withdrawal requests to fulfill via a batch message from the self-executing program; broadcast, to the blockchain ledger, a message that calls the self-executing program, wherein the message that calls the self-executing program includes indications of a set of external addresses associated with the set of withdrawal requests and a set of amounts of crypto tokens from the set of withdrawal requests, and wherein the message that calls the self-executing program causes the self-executing program to execute, via a single transaction on the blockchain ledger and after verification of the single transaction by one or more computing nodes of the plurality of computing nodes, a set of transfers of the set of amounts of crypto tokens from a single blockchain address associated with the self-executing program to the set of external addresses in accordance with the indications included in the message that calls the self-executing program via the batch message, wherein the set of amounts of crypto tokens comprise a first amount of a first crypto token associated with a first withdrawal request and a second amount of a second crypto token associated with a second withdrawal request, and wherein the first crypto token is different from the second crypto token; and identify, after broadcasting the message that calls the self-executing program and that causes the self-executing program to execute the set of transfers, a record of the single transaction on the blockchain ledger based at least in part on the verification of the single transaction by the one or more computing nodes, wherein the single transaction includes multiple state transfers of respective amounts of crypto token types from the single blockchain address to the set of external addresses.
  17. 17 . The non-transitory computer-readable medium of claim 16 , wherein the message that calls the self-executing program executes the set of transfers of a respective set of one or more crypto tokens to each of the set of external addresses associated with the set of withdrawal requests.
  18. 18 . The non-transitory computer-readable medium of claim 16 , wherein the instructions to select the set of withdrawal requests are executable by the processor to: select at least a threshold quantity of withdrawal requests for the batch message.

Description

FIELD OF TECHNOLOGY The present disclosure relates generally to token management, including techniques for self-executing program for outbound messages. BACKGROUND Blockchains and related technologies may be employed to support recordation of ownership of digital assets, such as cryptocurrencies, fungible tokens, non-fungible tokens (NFTs), and the like. Generally, peer-to-peer networks support transaction validation and recordation of transfer of such digital assets on blockchains. Various types of consensus mechanisms may be implemented by the peer-to-peer networks to confirm transactions and to add blocks of transactions to the blockchain networks. Example consensus mechanisms include the proof-of-work consensus mechanism implemented by the Bitcoin network and the proof-of-stake mechanism implemented by the Ethereum network. Some nodes of a blockchain network may be associated with a digital asset exchange, which may be accessed by users to trade digital assets or trade a fiat currency for a digital asset. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates an example of a computing environment that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 2 illustrates another example of an example of a computing environment that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 3 illustrates an example of a diagram of a system that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 4 illustrates an example of transfer logic that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 5 illustrates an example of management roles that support a self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 6 illustrates an example of a transaction pattern that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 7 illustrates an example of a process flow that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 8 illustrates a block diagram of an apparatus that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 9 illustrates a block diagram of a token manager that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIG. 10 illustrates a diagram of a system including a device that supports self-executing program for outbound messages in accordance with aspects of the present disclosure. FIGS. 11 through 15 illustrate flowcharts showing methods that support self-executing program for outbound messages in accordance with aspects of the present disclosure. DETAILED DESCRIPTION A user may access a custodial token platform to purchase, sell, exchange, or trade digital assets, such as cryptocurrencies, crypto tokens, or the like. A custodial token platform may support various types of wallets for deposits, withdrawals, and storage. For example, the custodial token platform may generate inbound wallets associated with inbound addresses for user deposits of crypto tokens to accounts associated with the user. The custodial token platform may also use outbound wallets for supporting withdrawals of crypto tokens and cold storage wallets for security. In some cases, the custodial token platform may support a wallet orchestration procedure that moves the crypto tokens between the various wallets of the custodial token platform for various reasons including liquidity management and security. In some examples, the wallet orchestration may be performed manually by administrators of the custodial token platform or may be performed via a static configuration. However, as cryptocurrency markets are increasingly dynamic, wallet orchestration between various wallets of a custodial token platform is increasingly complex, and may require consideration of current market states, market histories, and current wallet balances. In some examples, a wallet orchestration procedure may periodically flush crypto tokens from inbound addresses to other addresses associated with the custodial token platform via flush transactions. For example, the flush transactions may transfer or flush crypto tokens from an inbound address to an outbound address of an outbound wallet to support user withdrawals via withdrawal transactions. The custodial token platform may transmit messages to cause withdrawals for each user and/or each withdrawal request. For example, withdrawal requests by three different recipients (e.g., three different outbound addresses) may result in three withdrawal transactions. A withdrawal transaction is associated with transaction fees and thus, multiple withdrawal transactions may result in significant transaction fees