IP Library Granted Patent US 12,651,248
Granted Patent B2
US 12,651,248 · App. 18/118,644 · Granted Jun 9, 2026

Wallet as a service

Inventors: Yuga Cohler (Cambridge, MA); Brock Miller (New York City, NY); Alex Stone (San Francisco, CA); Jayasudha Jayakumaran (San Diego, CA); Paul Hamera (New York City, NY)
G06Q20/3678
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,651,248
App. No.
18/118,644
Granted
Jun 9, 2026
Kind
B2
Abstract

Methods, systems, and devices for data management are described. A wallet service may include one or more application programming interface (API) endpoints. An API endpoint may receive a set of requests to broadcast messages via one or more blockchain networks, the set of requests including a first request to broadcast a first message via a first blockchain network and a second request to broadcast a second message via a second blockchain network. A first blockchain message may be generated using a mapping of a plurality of sets of network-specific parameters to respective blockchain networks, and the first blockchain message may include a first set of network-specific parameters. A second blockchain message may also be generated using the mapping, and the second blockchain message may include a second set of network-specific parameters. The first and second blockchain messages may be broadcast via respective nodes of the blockchain networks.

Claims (73)

1 . A method by a wallet service supported by one or more servers, comprising:

receiving, by a first application programming interface (API) endpoint associated with the one or more servers and from a first client, a request to generate a first sender address in accordance with the wallet service including one or more multi-party computation (MPC) services;

generating, using the one or more MPC services and a MPC key generation technique, the first sender address and a first private key shard associated with the first sender address;

receiving, at a second API endpoint associated with the one or more servers, a set of requests to broadcast messages via one or more blockchain networks, the set of requests including:

a first request to broadcast a first message via a first blockchain network, wherein the first request includes the first sender address generated using the one or more MPC services and a partial signature using a second private key shard associated with the first sender address, and

a second request to broadcast a second message via a second blockchain network;

generating, by the one or more servers and using a mapping of a plurality of sets of network-specific parameters to respective blockchain networks, a first blockchain message corresponding to the first message and including the first sender address and a first set of network-specific parameters that are mapped to the first blockchain network in the mapping, the mapping stored in a data store of the one or more servers in association with the second API endpoint, wherein generating the first blockchain message comprises generating a full signature using the first private key shard associated with the first sender address and the partial signature;

generating, by the one or more servers using the mapping, a second blockchain message corresponding to the second message and including a second set of network-specific parameters that are mapped to the second blockchain network in the mapping, wherein the second set of network-specific parameters is different from the first set of network-specific parameters;

broadcasting the first blockchain message via a first node of the first blockchain network; and

broadcasting the second blockchain message via a second node of the second blockchain network.

2 . The method of claim 1 , wherein:

the first request includes a first token type, the first sender address, and excludes additional information on which broadcasting via the first blockchain network is conditioned; and

the second request includes a second token type, a second sender address, and excludes additional information on which broadcasting via the second blockchain network is conditioned.

3 . The method of claim 1 , wherein:

the first blockchain network and the second blockchain network are associated with respective sets of properties; and

the first request and the second request exclude indications of properties of the respective sets of properties.

4 . The method of claim 1 wherein the first request and the second request include a corresponding quantity of parameters.

5 . The method of claim 1 , wherein the first request excludes an indication of a nonce associated with the first blockchain message, and wherein generating the first blockchain message comprises:

generating the nonce associated with the first blockchain message using a nonce service associated with the second API endpoint.

6 . The method of claim 1 , wherein generating the first blockchain message comprises:

activating, after receiving the first request, a lock for the first sender address, the lock preventing generation of a subsequent blockchain message to the first blockchain message;

obtaining a next nonce associated with the first sender address;

generating the first blockchain message that includes the first set of network-specific parameters and the next nonce;

transmitting the first blockchain message to the first client for signing using at least a portion of the first private key shared associated with the first sender address;

receiving a signed version of the first blockchain message from the first client;

updating the next nonce associated with the first sender address; and

deactivating the lock for the first sender address after updating the next nonce.

7 . The method of claim 6 , further comprising:

storing the signed version of the first blockchain message for broadcasting until a prior blockchain message associated with the first sender address and having a previous nonce to the next nonce is associated with a final state on the first blockchain network, wherein the signed version of the first blockchain message is broadcast in response to detecting that the prior blockchain message having the previous nonce is associated with the final state.

8 . The method of claim 7 , further comprising:

detecting that the prior blockchain message that is associated with the first sender address and that has the previous nonce to the next nonce is associated with the final state on the first blockchain network, wherein the signed version of the first blockchain message is broadcast after detecting that the prior blockchain message having the previous nonce is confirmed.

9 . The method of claim 7 , further comprising:

refraining from transmitting the signed version of the first blockchain message in response to detecting that the prior blockchain message having the previous nonce is in an unconfirmed message pool associated with the first blockchain network.

10 . The method of claim 7 , further comprising:

refraining from transmitting the signed version of the first blockchain message in response to determining that the first sender address is associated with an insufficient funds error message, wherein the signed version of the first blockchain message is broadcast after the first sender address is associated with sufficient funds.

11 . The method of claim 7 , wherein the final state is a confirmed state or a failed on-chain state.

12 . The method of claim 1 , wherein the request to generate the first sender address excludes an indication of a private key.

13 . The method of claim 1 , wherein the request to generate the first sender address excludes an indication of one or more properties on which generation of addresses for use with the first blockchain network is conditioned.

14 . An apparatus for a wallet service supported by one or more servers, comprising:

one or more processors;

one or more memories coupled with the one or more processors; and

instructions stored in the one or more memories and executable by the one or more processors to cause the apparatus to:

receive, by a first application programming interface (API) endpoint associated with the one or more servers and from a first client, a request to generate a first sender address in accordance with the wallet service including one or more multi-party computation (MPC) services;

generate, using the one or more MPC services and a MPC key generation technique, the first sender address and a first private key shard associated with the first sender address;

receive, at a second API endpoint associated with the one or more servers, a set of requests to broadcast messages via one or more blockchain networks, the set of requests including:

a first request to broadcast a first message via a first blockchain network, wherein the first request includes the first sender address generated using the one or more MPC services and a partial signature using a second private key shard associated with the first sender address, and

a second request to broadcast a second message via a second blockchain network;

generate, by the one or more servers and using a mapping of a plurality of sets of network-specific parameters to respective blockchain networks, a first blockchain message corresponding to the first message and including the first sender address and a first set of network-specific parameters that are mapped to the first blockchain network in the mapping, the mapping stored in a data store of the one or more servers in association with the second API endpoint, wherein generating the first blockchain message comprises generating a full signature using the first private key shard associated with the first sender address and the partial signature;

generate, by the one or more servers using the mapping, a second blockchain message corresponding to the second message and including a second set of network-specific parameters that are mapped to the second blockchain network in the mapping, wherein the second set of network-specific parameters is different from the first set of network-specific parameters;

broadcast the first blockchain message via a first node of the first blockchain network; and

broadcast the second blockchain message via a second node of the second blockchain network.

15 . The apparatus of claim 14 , wherein:

the first request includes a first token type, the first sender address, and excludes additional information on which broadcasting via the first blockchain network is conditioned; and

the second request includes a second token type, a second sender address, and excludes additional information on which broadcasting via the second blockchain network is conditioned.

16 . The apparatus of claim 14 , wherein:

the first blockchain network and the second blockchain network are associated with respective sets of properties; and

the first request and the second request exclude indications of properties of the respective sets of properties.

17 . A non-transitory computer-readable medium storing code for a wallet service supported by one or more servers, the code comprising instructions executable by one or more processors to:

receive, by a first application programming interface (API) endpoint associated with the one or more servers and from a first client, a request to generate a first sender address in accordance with the wallet service including one or more multi-party computation (MPC) services;

generate, using the one or more MPC services and a MPC key generation technique, the first sender address and a first private key shard associated with the first sender address;

receive, at a second API endpoint associated with the one or more servers, a set of requests to broadcast messages via one or more blockchain networks, the set of requests including:

a first request to broadcast a first message via a first blockchain network, wherein the first request includes the first sender address generated using the one or more MPC services and a partial signature using a second private key shard associated with the first sender address, and

a second request to broadcast a second message via a second blockchain network;

generate, by the one or more servers and using a mapping of a plurality of sets of network-specific parameters to respective blockchain networks, a first blockchain message corresponding to the first message and including the first sender address and a first set of network-specific parameters that are mapped to the first blockchain network in the mapping, the mapping stored in a data store of the one or more servers in association with the second API endpoint, wherein generating the first blockchain message comprises generating a full signature using the first private key shard associated with the first sender address and the partial signature;

generate, by the one or more servers using the mapping, a second blockchain message corresponding to the second message and including a second set of network-specific parameters that are mapped to the second blockchain network in the mapping, wherein the second set of network-specific parameters is different from the first set of network-specific parameters;

broadcast the first blockchain message via a first node of the first blockchain network; and

broadcast the second blockchain message via a second node of the second blockchain network.

18 . The non-transitory computer-readable medium of claim 17 , wherein:

the first request includes a first token type, the first sender address, and excludes additional information on which broadcasting via the first blockchain network is conditioned; and

the second request includes a second token type, a second sender address, and excludes additional information on which broadcasting via the second blockchain network is conditioned.

19 . The non-transitory computer-readable medium of claim 17 , wherein:

the first blockchain network and the second blockchain network are associated with respective sets of properties; and

the first request and the second request exclude indications of properties of the respective sets of properties.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2023
From: COHLER, YUGA; MILLER, BROCK; STONE, ALEX; JAYAKUMARAN, JAYASUDHA; HAMERA, PAUL
To: COINBASE, INC.
Reel/Frame 063873/0137 →
Continuity (1)
Related Publication 20240303637A1 · Sep 12, 2024
References Cited (8)
US 11354657B2 · Fang et al. · 2022 [cited by examiner]
US 11842287B1 · Rosenoer · 2023 [cited by examiner]
US 20190188063A1 · McKellar et al. · 2019 [cited by examiner]
US 20200005292A1 · Mao et al. · 2020 [cited by examiner]
US 20200153606A1 · Li et al. · 2020 [cited by applicant]
US 20220318907A1 · Bleznak et al. · 2022 [cited by applicant]
Anonymous: “external api—Is there API to create Ether wallet?—Ethereum Stack Exchange”, May 14, 2018 (May 14, 2018), pp. 1-4, XP093158563, Internet Retrieved from the Internet: URL:https://ethereum.stackexchange.com/que… [cited by applicant]
“International Search Report and Written Opinion of the International Searching Authority,” issued in connection with Int'l Appl. No. PCT/US2024/018938, dated May 16, 2024 (14 pages). [cited by applicant]