IP Library Granted Patent US 12711491
Granted Patent B2
US 12711491 · App. 18/199,914 · Granted Aug 18, 2026

Using blockchain wallet for two-factor authentication

Inventors: Leo Chen (New York, NY); Alex Reeve (San Francisco, CA); Nick Janda (Loveland, CO); Eduardo Salazar (Danville, CA)
G06Q20/3674G06Q20/3825G06Q20/3829G06Q20/388G06Q20/4014G06Q2220/00
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 12711491
App. No.
18/199,914
Granted
Aug 18, 2026
Kind
B2
Abstract

Methods, systems, and devices for using a blockchain wallet for two-factor authentication are described. A custodial token platform implements a two-factor authentication process using a wallet to facilitate verifying a user identity accessing an application or service. The platform receives, from a client application on a user device, an authentication request that is associated with a first user account. The platform transmits a response indicating that a wallet authentication procedure is enabled and the response may include a wallet address. The platform receives a challenge request that includes the wallet address. The platform transmits a challenge response that includes a data payload to be signed using a private key associated with the wallet address. The platform receives a signed response message. The platform verifies that the signed response message is validly signed, and the platform transmits an indication that the signed response message is validly signed.

Claims (65)

1 . A method for authenticating a client application, comprising:

receiving, at one or more servers supporting a custodial token platform and from the client application on a user device, an authentication request that is associated with a first user account at the custodial token platform supported by the one or more servers, the custodial token platform providing access to a blockchain wallet controlling one or more digital assets associated with the first user account;

receiving a first authentication factor of a two-factor authentication process for accessing the custodial token platform, the first authentication factor comprising at least one of a username and password combination or a phone authentication procedure for accessing the custodial token platform;

determining, after receiving the first authentication factor, that a wallet authentication procedure is enabled for the first user account at the custodial token platform, wherein the wallet authentication procedure is a second factor in the two-factor authentication process for accessing the custodial token platform;

transmitting, to the client application based at least in part on determining that the wallet authentication procedure is enabled for accessing the custodial token platform by the first user account, a response that indicates that the wallet authentication procedure is enabled for the first user account at the custodial token platform, the response including a blockchain wallet address of the blockchain wallet associated with the first user account at the custodial token platform;

receiving, at the one or more servers and from the client application in accordance with the wallet authentication procedure, a challenge request that includes the blockchain wallet address;

transmitting, to the client application, a challenge response that includes a data payload to be signed using a private key associated with the blockchain wallet address;

receiving, at the one or more servers and from the client application, a signed response message in response to transmitting the challenge response;

verifying, at the one or more servers using a public key that is associated with the private key, that the signed response message is validly signed by the private key associated with the blockchain wallet address, wherein the public key corresponds to the blockchain wallet address; and

transmitting, by the custodial token platform and to the client application after verifying that the signed response message is validly signed, an indication that the signed response message is validly signed.

2 . The method of claim 1 , further comprising:

identifying, after receiving the authentication request, that a set of authentication procedures of a plurality of authentication procedures is enabled for the first user account, wherein the response indicates the set of enabled authentication procedures.

3 . The method of claim 1 , further comprising:

identifying, after receiving the authentication request, that the wallet authentication procedure is enabled for a plurality of blockchain wallet addresses associated with the first user account, wherein the response indicates the plurality of blockchain wallet addresses.

4 . The method of claim 1 , further comprising:

storing the challenge response in memory of the one or more servers in association with the blockchain wallet address, wherein the signed response message is verified using the stored challenge response.

5 . The method of claim 1 , wherein transmitting the challenge response comprises:

transmitting the challenge response that includes information indicating an action to be performed by the client application, wherein the action to be performed by the client application includes obtaining the signed response message from a blockchain wallet application.

6 . The method of claim 1 , wherein verifying that the signed response message is validly signed further comprises:

decoding the signed response message using the challenge response to identify the blockchain wallet address; and

verifying that the blockchain wallet address matches the blockchain wallet address stored in association with the challenge response.

7 . The method of claim 1 , wherein transmitting the indication that the signed response message is validly signed further comprises:

transmitting a proof token to the client application.

8 . An apparatus for authenticating a client application, comprising:

at least one processor;

at least one memory coupled with the at least one processor; and

instructions stored in the at least one memory and executable by the at least one processor to cause the apparatus to:

receive, at one or more servers supporting a custodial token platform and from the client application on a user device, an authentication request that is associated with a first user account at the custodial token platform supported by the one or more servers, the custodial token platform providing access to a blockchain wallet controlling one or more digital assets associated with the first user account;

receive a first authentication factor of a two-factor authentication process for accessing the custodial token platform, the first authentication factor comprising at least one of a username and password combination or a phone authentication procedure for accessing the custodial token platform;

determine, after receiving the first authentication factor, that a wallet authentication procedure is enabled for the first user account at the custodial token platform, wherein the wallet authentication procedure is a second factor in the two-factor authentication process for accessing the custodial token platform;

transmit, to the client application based at least in part on determining that the wallet authentication procedure is enabled for accessing the custodial token platform by the first user account, a response that indicates that the wallet authentication procedure is enabled for the first user account at the custodial token platform, the response including a blockchain wallet address of the blockchain wallet associated with the first user account at the custodial token platform;

receive, at the one or more servers and from the client application in accordance with the wallet authentication procedure, a challenge request that includes the blockchain wallet address;

transmit, to the client application, a challenge response that includes a data payload to be signed using a private key associated with the blockchain wallet address;

receive, at the one or more servers and from the client application, a signed response message in response to transmitting the challenge response;

verify, at the one or more servers using a public key that is associated with the private key, that the signed response message is validly signed by the private key associated with the blockchain wallet address, wherein the public key corresponds to the blockchain wallet address; and

transmit, by the custodial token platform to the client application after verifying that the signed response message is validly signed, an indication that the signed response message is validly signed.

9 . The apparatus of claim 8 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

identify, after receiving the authentication request, that a set of authentication procedures of a plurality of authentication procedures is enabled for the first user account, wherein the response indicates the set of enabled authentication procedures.

10 . The apparatus of claim 8 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

identify, after receiving the authentication request, that the wallet authentication procedure is enabled for a plurality of blockchain wallet addresses associated with the first user account, wherein the response indicates the plurality of blockchain wallet addresses.

11 . The apparatus of claim 8 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

store the challenge response in memory of the one or more servers in association with the blockchain wallet address, wherein the signed response message is verified using the stored challenge response.

12 . The apparatus of claim 8 , wherein the instructions to transmit the challenge response are executable by the at least one processor to cause the apparatus to:

transmit the challenge response that includes information indicating an action to be performed by the client application, wherein the action to be performed by the client application includes obtaining the signed response message from a blockchain wallet application.

13 . The apparatus of claim 8 , wherein the instructions to verify that the signed response message is validly signed are further executable by the at least one processor to cause the apparatus to:

decode the signed response message using the challenge response to identify the blockchain wallet address; and

verify that the blockchain wallet address matches the blockchain wallet address stored in association with the challenge response.

14 . The apparatus of claim 8 , wherein the instructions to transmit the indication that the signed response message is validly signed are further executable by the at least one processor to cause the apparatus to:

transmit a proof token to the client application.

15 . A non-transitory computer-readable medium storing code for authenticating a client application, the code comprising instructions executable by at least one processor to:

receive, at one or more servers supporting a custodial token platform and from the client application on a user device, an authentication request that is associated with a first user account at the custodial token platform supported by the one or more servers, the custodial token platform providing access to a blockchain wallet controlling one or more digital assets associated with the first user account;

receive a first authentication factor of a two-factor authentication process for accessing the custodial token platform, the first authentication factor comprising at least one of a username and password combination or a phone authentication procedure for accessing the custodial token platform;

determine, after receiving the first authentication factor, that a wallet authentication procedure is enabled for the first user account at the custodial token platform, wherein the wallet authentication procedure is a second factor in the two-factor authentication process for accessing the custodial token platform;

transmit, to the client application based at least in part on determining that the wallet authentication procedure is enabled for accessing the custodial token platform by the first user account, a response that indicates that the wallet authentication procedure is enabled for the first user account at the custodial token platform, the response including a blockchain wallet address of the blockchain wallet associated with the first user account at the custodial token platform;

receive, at the one or more servers and from the client application in accordance with the wallet authentication procedure, a challenge request that includes the blockchain wallet address;

transmit, to the client application, a challenge response that includes a data payload to be signed using a private key associated with the blockchain wallet address;

receive, at the one or more servers and from the client application, a signed response message in response to transmitting the challenge response;

verify, at the one or more servers using a public key that is associated with the private key, that the signed response message is validly signed by the private key associated with the blockchain wallet address, wherein the public key corresponds to the blockchain wallet address; and

transmit, by the custodial token platform and to the client application after verifying that the signed response message is validly signed, an indication that the signed response message is validly signed.

16 . The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the at least one processor to:

identify, after receiving the authentication request, that a set of authentication procedures of a plurality of authentication procedures is enabled for the first user account, wherein the response indicates the set of enabled authentication procedures.

17 . The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the at least one processor to:

identify, after receiving the authentication request, that the wallet authentication procedure is enabled for a plurality of blockchain wallet addresses associated with the first user account, wherein the response indicates the plurality of blockchain wallet addresses.

18 . The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the at least one processor to:

store the challenge response in memory of the one or more servers in association with the blockchain wallet address, wherein the signed response message is verified using the stored challenge response.