IP Library Granted Patent US 12671587
Granted Patent B2
US 12671587 · App. 19/123,144 · Granted Jun 30, 2026

Non-custodial cryptocurrency wallet

Inventors: Bryce Jurss (Leander, TX); Suresh Kalakrishnan (Cedar Park, TX)
Assignee: Visa International Service Association
H04L9/3213G06Q20/36G06Q20/3829H04L9/0869
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 12671587
App. No.
19/123,144
Granted
Jun 30, 2026
Kind
B2
Abstract

The present disclosure describes a non-custodial cryptocurrency wallet application, software development kit, method, and system that blend the advantages of custodial and non-custodial schemes. The system leverages existing user credentials and networks of users to generate seed phrases and encryption keeps for the end-users. The non-custodial cryptocurrency wallet application simulates the user interface of a custodial crypto wallet with the advantages and security of a non-custodial crypto wallet.

Claims (98)

1 . A method comprising:

receiving, by a processor, a user credential and an account identifier from a user interface of a user device; transmitting, by the processor, the user credential to an authentication server;

receiving, by the processor, a refresh token based on authentication of the user credential by the authentication server;

generating, by the processor, a unique user identifier (UUID) based on the refresh token of the user credential;

generating, by the processor, a seed phrase, wherein the seed phrase is randomly generated by a pseudorandom number generator, and wherein the seed phrase is at least number of bits;

determining, by the processor, a master private key, wherein the master private key is derived from the seed phrase, and wherein a first blockchain private key is associated with the master private key;

converting, by the processor, the seed phrase to a string seed phrase based on a predetermined word list, a number of words in the string seed phrase is proportional to the at least n number of bits;

encrypting, by the processor, the string seed phrase with the UUID, wherein the UUID is an encryption key to generate an encrypted string seed phrase from the string seed phrase;

transmitting, by the processor, the encrypted string seed phrase and the account identifier to an external storage location, wherein the external storage location stores the encrypted string seed phrase and the account identifier associated with the user;

deleting, by the processor, the UUID from local cache; and

restricting, by the processor, the UUID to local transmissions within a software development kit within on the user device, wherein the UUID is prevented from transmission to external devices.

2 . The method of claim 1 , further comprising:

receiving, by the processor, a request to perform a first blockchain transaction;

determining, by the processor, the UUID based on the refresh token of the user credential, and the account identifier;

transmitting, by the processor, a request for the encrypted string seed phrase to the external storage location, wherein the request comprises the account identifier;

receiving, by the processor, the encrypted string seed phrase;

establishing, by the processor, a blockchain session;

storing, by the processor, the encrypted string seed phrase in local storage of the user device;

decrypting, by the processor, the encrypted string seed phrase with the UUID as a decryption key, and results in the string seed phrase;

recovering, by the processor, the first blockchain private key on a blockchain with the string seed phrase; and

signing, by the processor, the first blockchain transaction on the blockchain with the first blockchain private key.

3 . The method of claim 2 , further comprising:

determining, by the processor, a status of the blockchain session, wherein the status of the blockchain session is terminated; and

deleting, by the processor, the encrypted string seed phrase from the local storage on the user device.

4 . The method of claim 3 , wherein the blockchain session is terminated by closing the user interface, displaying a lock screen on the user device, or an expiration of a predetermined timeout period associated with the blockchain session.

5 . The method of claim 2 , wherein recovering the first blockchain private key is further comprising:

requesting, by the processor, the first blockchain private key with the string seed phrase from a hierarchical deterministic wallet associated with the blockchain; and

receiving, by the processor, the first blockchain private key from the hierarchical deterministic wallet.

6 . The method of claim 1 , wherein the seed phrase is at least 128 bits and the string seed phrase is at least 12 words.

7 . The method of claim 1 , wherein the seed phrase is at least 256 bits and the string seed phrase is at least 24 words.

8 . A system comprising:

account authentication server;

crypto platform server; and

a user device comprising one or more processors, wherein the user device is communicably coupled to the account authentication server and the crypto platform server, and wherein the user device is configured to:

receive a user credential and an account identifier from a user interface of user device;

transmit the user credential to an authentication server;

receive a refresh token based on authentication of the user credential by the authentication server;

generate a unique user identifier (UUID) based on the refresh token of the user credential;

generate a seed phrase, a seed phrase, wherein the seed phrase is randomly generated by a pseudorandom number generator, and wherein the seed phrase is at least 128 number of bits;

determine a master private key, wherein the master private key is derived from the seed phrase, and wherein a first blockchain private key is associated with the master private key;

convert the seed phrase to a string seed phrase based on a predetermined word list, wherein the string seed phrase is at least 12 words;

encrypt the string seed phrase with the UUID, wherein the UUID is an encryption key to generate an encrypted string seed phrase from the string seed phrase;

transmit the encrypted string seed phrase and the account identifier to an external storage location, wherein the external storage location stores the encrypted string seed phrase and the account identifier associated with the user;

delete the UUID from local cache; and

restrict the UUID to local transmissions within a software development kit on the user device, wherein the UUID is prevented from transmission to external device.

9 . The system of claim 8 , wherein the user device is further configured to:

receive a request to perform a first blockchain transaction;

determine the UUID based on the refresh token of the user credential, and the account identifier;

transmit a request for the encrypted string seed phrase to the external storage location, wherein the request comprises the account identifier;

receive the encrypted string seed phrase;

establish a blockchain session;

store the encrypted string seed phrase in local storage of the user device;

decrypt the encrypted string seed phrase with the UUID as a decryption key, and results in the string seed phrase;

request the first blockchain private key with the string seed phrase from a hierarchical deterministic wallet associated with a blockchain;

recover the first blockchain private key from the hierarchical deterministic wallet; and

sign the first blockchain transaction on the blockchain with the first blockchain private key.

10 . The system of claim 9 , wherein the user device is further configured to:

determine a status of the blockchain session, wherein the status of the blockchain session is terminated; and

delete the encrypted string seed phrase from local storage on the user device.

11 . The system of claim 10 , wherein the blockchain session is terminated by closing the user interface, displaying a lock screen on the user device, or an expiration of a predetermined timeout period associated with the blockchain session.

12 . The system of claim 9 , wherein the user device is further configured to:

receives a request to perform a second blockchain transaction, wherein the second blockchain transaction is performed in the blockchain session, and wherein blockchain session is still active from the first blockchain transaction;

decrypt the encrypted string seed phrase with the UUID as the decryption key, and results in the string seed phrase;

request the first blockchain private key with the string seed phrase from the hierarchical deterministic wallet associated with the blockchain;

recover the first blockchain private key from the hierarchical deterministic wallet;

sign the first blockchain transaction on the blockchain with the first blockchain private key; and

delete the first blockchain private key after the second blockchain transaction is signed.

13 . The system of claim 12 , wherein a value of the first blockchain private key recovered from the hierarchical deterministic wallet for the first blockchain transaction is different from the value of the first blockchain private key for the second blockchain transaction recovered from the hierarchical deterministic wallet.

14 . A non-transitory computer readable medium, with instructions stored thereon, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a user credential and an account identifier from a user interface of a user device;

transmitting the user credential to an authentication server;

receiving a refresh token based on authentication of the user credential by the authentication server;

generating a unique user identifier (UUID) based on the refresh token of the user credential;

generating, by the processor, a seed phrase, a seed phrase, wherein the seed phrase is randomly generated by a pseudorandom number generator, and wherein the seed phrase is at least n number of bits;

determining a master private key, wherein the master private key is derived from the seed phrase, and wherein a first blockchain private key is associated with the master private key;

converting the seed phrase to a string seed phrase based on a predetermined word list, a number of words in the string seed phrase is proportional to the at least n number of bits;

encrypting the string seed phrase with the UUID, wherein the UUID is an encryption key to generate an encrypted string seed phrase from the string seed phrase;

transmitting the encrypted string seed phrase and the account identifier to an external storage location, wherein the external storage location stores the encrypted string seed phrase and the account identifier associated with the user;

deleting, by the processor, the UUID from local cache; and

restricting, by the processor, the UUID to local transmissions within a software development kit on the user device, wherein the UUID is prevented from transmission to external devices.

15 . The non-transitory computer readable medium of claim 14 , when executed by one or more processors is further configured to perform operations comprising:

receiving a request to perform a first blockchain transaction on a first blockchain;

determining the UUID based on the refresh token of the user credential, and the account identifier;

transmitting a request for the encrypted string seed phrase to the external storage location, wherein the request comprises the account identifier;

receiving the encrypted string seed phrase;

establishing a blockchain session;

storing the encrypted string seed phrase in local storage of the user device;

decrypting the encrypted string seed phrase with the UUID as a decryption key, and results in the string seed phrase;

recovering the first blockchain private key on the first blockchain with the string seed phrase;

signing the first blockchain transaction on the first blockchain with the first blockchain private key; and

deleting the first blockchain private key after the first blockchain transaction is signed.

16 . The non-transitory computer readable medium of claim 15 , when executed by one or more processors is further configured to perform operations comprising:

determining a status of the blockchain session, wherein the status of the blockchain session is terminated; and

deleting the encrypted string seed phrase from local storage on the user device.

17 . The non-transitory computer readable medium of claim 16 , wherein the blockchain session is terminated by closing the user interface, displaying a lock screen on the user device, or an expiration of a predetermined timeout period associated with the blockchain session.

18 . The non-transitory computer readable medium of claim 15 , when executed by one or more processors is further configured to perform operations comprising:

recovering the first blockchain private key by requesting the first blockchain private key from a hierarchical deterministic wallet with the string seed phrase, wherein the hierarchical deterministic wallet is associated with at least the first blockchain and a second blockchain; and

requesting a second blockchain private key with the string seed phrase from the hierarchical deterministic wallet associated with the second blockchain, wherein the second blockchain private key is associated with the master private key, and wherein the first blockchain is different from the second blockchain.