| CPC G06Q 20/10 (2013.01) [G06Q 20/3678 (2013.01); G06Q 20/42 (2013.01); G06Q 2220/00 (2013.01)] | 20 Claims |

|
1. A computer-implemented method performed by a swap platform, the method comprising:
receiving, from a user device of a user, an order to swap a starting amount of a source asset in exchange for a destination asset;
selecting a subset of intermediate assets from a datasource of assets based on asset data;
selecting a subset of exchanges from a datasource of exchanges based on the source asset, the destination asset, and exchange data;
generating a graph based on the subset of intermediate assets and the subset of exchanges, wherein the graph is a data structure comprising:
a plurality of nodes comprising:
a source node representing the source asset;
a destination node representing the destination asset; and
a plurality of intermediate nodes presenting the subset of intermediate assets;
a plurality of directed edges linking the plurality of nodes, wherein each edge links a pair of nodes and represents a transfer from a first asset represented by a first node of the pair to a second asset represented by a second node of the pair;
traversing the graph along every unique path from the source node to the destination node to evaluate a set of transfer paths, wherein each transfer path exchanges a portion of the starting amount of the source asset for an amount of the destination asset;
ranking the set of transfer paths based on the respective amount of destination asset received after transaction fees by each transfer path in the set of transfer paths;
determining a multi-route transfer comprising a combination of non-conflicting transfer paths that optimize a total amount of destination asset exchanged for the starting amount of the source asset after transaction fees, wherein the combination of non-conflicting transfer paths are selected from the set of transfer paths based on the ranking;
sending, to the user device, data indicating the multi-route transfer and the combination of transfer paths;
receiving, from the user device, a user input to execute the multi-route transfer; and
executing the multi-route transfer.
|