# Welcome

Welcome to Gridlock, where we prioritize your security with advanced key-splitting cryptography and a bulletproof vault. Our groundbreaking technology sets a new standard of security in crypto.

## What is Gridlock?

Gridlock Crypto & NFT Wallet champions security using advanced MPC cryptography and social protection with the use of Guardians that help protect your account.

Guardians are two trusted friends who each hold a fragment of your private key, ensuring that no single party can access your crypto wallet. It's crucial to remember that Guardians cannot access your wallet or execute any transactions. The entire mechanism operates in the background, granting you exclusive control over your wallet.

<img src="/files/XVd69Uvy1eSSGlMezbPD" alt="" width="375">

Your device is the sole authority within your network that has control over your crypto assets. While Guardians retain data on your behalf, they can't put together the fragments of your private key to pilfer your crypto. This distributed network offers an exceptional security level, effectively overcoming the limitations of traditional methods. For a hacker to infiltrate your wallet, they would need access not only to your device but also your Guardians' devices.

Aside from enhancing security, Guardians also provide permission for account recovery in the event that you lose your phone. They serve as protection against malicious attacks. Any action that could potentially expose your wallet to vulnerabilities requires approval from your Guardians. This essentially means that even if someone were to breach your account, they would be unable to take any action without first obtaining guardian approval.

By incorporating Guardians into the wallet system, Gridlock ensures top-tier security and peace of mind for its users. Users can manage their crypto assets, knowing that their wallet is safeguarded against potential threats.


# All About Guardians

Guardians are an interesting concept that makes crypto ownership incredibly safe and easy. Here's a comprehensive guide on Guardians, the secret to enhanced crypto security.

<figure><img src="/files/q9t1cFfy57kmifCmbflr" alt=""><figcaption></figcaption></figure>

### The Simple Version

Imagine a master password that not only grants access to your wallet, but also safeguards all your data or digital assets.&#x20;

Now consider that this password is composed of 5 smaller parts, enhancing the security, right?

Each of these parts carries some data but cannot function independently.&#x20;

You hold one part, two friends each possess another, and the remaining two parts are virtually managed by Gridlock.&#x20;

To form the master password, you only need 3 of these parts, including your own. An outsider can't gain access since they don't possess any of these parts. All the parts are securely linked to different devices in your network. More importantly, your part is the only one that can amalgamate the others.&#x20;

If a part gets lost or stolen, it can be substituted with the consent of the other part holders, thereby restoring the network's integrity. No one but the user can form the master password and access the wallet. Refer to the following Guardian FAQs for more details! You can also find additional information on the app-specific pages.<br>


# Why can't a Guardian steal my crypto?

Multi-Party Computation (MPC) is a key feature of Gridlock's mobile wallet that enhances security by preventing theft from any individual node in the network. MPC works by dividing the user's private keys into shares that are distributed across multiple parties.

Each party holds only a portion of the private key and has no complete access to the user's assets. This means that even if one party's node is compromised, an attacker cannot gain full access to the user's private key or steal their crypto.

To complete a transaction, a certain threshold of parties must collaborate and contribute their key shares. This threshold ensures that no single party can perform a transaction alone without the involvement of others.

By distributing the private keys in this way, Gridlock's wallet eliminates the risk of a single point of failure, making it extremely difficult for any individual node to steal the user's crypto assets. This advanced MPC technology provides a high level of security and gives users peace of mind when managing their digital assets with Gridlock.


# Can a hacker combine the devices in my network?

Gridlock's design ensures that only the user's device can access their crypto, providing robust protection against potential hackers. Even if a hacker somehow managed to guess your account credentials, the security measures in place would limit their access to a 'Read Only' mode. This means they would be unable to perform any transactions or make unauthorized changes.

To successfully steal your crypto, a hacker would need to gain access to your device, your Guardian's devices, and other secure devices within your network. The distributed nature of Gridlock's security infrastructure makes it highly unlikely for all these devices to be compromised simultaneously.

Therefore your crypto assets remain secure as only your device has the capability to initiate transactions. The decentralized and protective nature of Gridlock's ecosystem ensures that your assets are well-guarded against potential theft.


# Why does Gridlock have 2 parts of my key?

Gridlock keeps two key shards to prioritize your accessibility while maintaining utmost security. However, it is important to note that these two fragments alone hold no authority in performing actions within your wallet. The most authoritative share of the key is exclusively with you, and even Gridlock cannot access it.

Gridlock always ensures its availability by remaining online with its two provided guardians. This means you can always access your funds quickly and easily To access your wallet, a minimum of three out of the five designated devices must be online.

The implementation of the three-out-of-five rule is deliberate, allowing you to regain access in various scenarios such as losing your guardians or if Gridlock is unavailable. The requirement is that you, paired with any two other parts of the network, can provide the necessary combination to unlock and access your wallet securely.


# Why not use a seed phrase for recovery?

Using a seed phrase for recovery can have its drawbacks due to human error. We understand the importance of minimizing any potential vulnerabilities in security, not just in terms of hackers exploiting them.

Typically, a seed phrase is advised to be written down on paper and stored in a safe place. However, think about the possibilities if that piece of paper gets lost. What if there's a fire, a burglary, or your partner accidentally throws it away while cleaning?

In such cases, your recovery option would be gone! Human error has proven to be one of the most significant security flaws throughout history, and we believe you shouldn't have to deal with the stress and uncertainties it brings when managing your crypto


# Partner Guardians

Pro Guardians, or Partner Guardians, are trusted companies in the industry that further expand your storage network.

Partner Guardians are trusted firms with top-tier security. They are always available and up-to-date with the latest security practices and are a strong partner to help keep your crypto safe.&#x20;

As always, any guardian that helps you secure your crypto only has one of many possible pieces which means that they can never own or control your assets.


# Getting Started

![](/files/6UqYwNE2fRZJoSU5mOPo)

Introducing Gridlock, the mobile wallet that prioritizes your crypto and NFT security with its cutting-edge key-splitting technology. Your assets have never been safer! Follow these steps to embark on your journey with Gridlock:

## Download

Download Gridlock for Android and iOS [here](https://gridlock.page.link/gitbook).&#x20;

## Support

Our team is here to help. The best way to reach us is through our [Discord ](https://discord.gg/ssmstTSNWJ)community. Alternatively, you can email us at <support@gridlock.network>.

## Sign up

Gridlock is a non-custodial wallet, which means you have full ownership and control. An account is necessary to store select encryption key pieces on Gridlock servers, ensuring your crypto's safety. We never retain enough to own or control your assets, but enough to enhance security.

## Guardians

Guardians are paramount in Gridlock's framework. Set them up immediately during signing up to safeguard your crypto. Learn more about the significance and role of guardians [here](#guardians).

To ensure maximum security, invite two trusted friends or family members as your guardians. By distributing parts of your private key among them, it remains decentralized and inaccessible to outsiders. Guardians also offer assistance with account recovery, further bolstering the protection of your assets.

1. Press **Add Social Guardians.**

![](/files/zV91RUSJIT4LIYDcVOqW)

2\. Send the setup link by pressing **Invite friends.** The link directs them to download or open the Gridlock app.

![](/files/k4Flsn4WnQ3WwdNZX9GV)

3\. With two guardians in place, your network of five becomes complete and your crypto has never been safer!

![](/files/K2u8AmtFoUxwhZywemAa)

## Transactions and Storage

Gridlock gives you control and custody over your crypto and NFTs. See how easy it is on [Transactions.](/features/transactions)


# Guardians

Gridlock ensures safe and simple crypto storage. Instead of storing it in one place, Gridlock splits and disperses it. Just ask friends to download the app, and we handle the rest.

Each friend holds small crypto pieces, yet wields no control. You remain the sole owner with complete control. Gridlock eliminates worries about losing crypto if a wallet is stolen.

No worries for friends either! Even if they lose their assigned pieces, you retain full access.&#x20;

## But how does it work?

Crypto wallets rely on an encryption key to access your crypto. However, losing or having that key stolen can lead to complete loss of your assets.

Gridlock takes a different approach by splitting an encryption key into pieces. When combined, they form the encryption key. You don't need all the pieces to utilize your encryption key, just a few of them. This ensures that even if someone in your network loses a piece or it is stolen, you need not worry. As long as you possess enough of these key pieces, you can access all your crypto.

Gridlock automates the process of splitting an encryption key into tiny passwords and distributing them to friends. We also actively monitor the network, promptly notifying you if a friend loses their piece so that you can provide a replacement. It's easy, safe, and stress-free when you use a grid of devices to lock your crypto.


# How they work

Imagine a lengthy string of letters and numbers as your private key. Now, let's split it into five pieces and distribute them across five separate devices worldwide. Just envision the complexity for a hacker to assemble these scattered fragments.

Your wallet's security is maintained with a collaboration between yourself, us, and a select few trusted friends. Together, we establish an immensely secure network. In the realm of crypto, security reigns supreme; without it, your funds are exposed to vulnerability. This underscores the criticality of completing the guardian setup as your [first priority](/features/master)!&#x20;


# Social Recovery

Phone lost or password forgotten? Don't worry, we've got your back.

Traditional recovery methods can be a major flaw in any account system. Seed phrases are outdated, burdensome to maintain, and often unnecessary. With Gridlock, your guardians step in to recover accounts, eliminating the need for a central intermediary or a seed phrase. Your trusted guardians can help you get back into your account quickly. This feature is called Social Recovery.

Social Recovery currently offers three use cases: [Device Migration](/features/guardians/social-recovery/device-migration), [Guardian Replacement](/features/guardians/social-recovery/guardian-replacement) and [Password Reset](/features/guardians/social-recovery/password-reset).


# Device Migration

The functionality of your Gridlock wallet is tied to the phone you registered with.  But what if your phone is lost or replaced?

That's where your guardians step in! They can authorize the switch to your new device. When you log into Gridlock on your new device, you wil be in 'View only' mode, restricting you from making transactions.

Gridlock will prompt you to change your primary device to the new one you're using. To confirm the switch, you will need approval from your guardians. This is called Social Verification and it's incredibly strong against hacks. Your crypto remains safe even if someone guesses your password!


# Guardian Replacement

Maintaining a network of five guardians is crucial for your security. But what if a guardian loses their phone or switches to a new one? No worries, Gridlock has you covered.

On your guardians' screen, you can monitor the status of each guardian. If a guardian is inactive for an extended period, get in touch with them to find out what's going on and potentially replace them with a new guardian. To do that, tap on the guardian in question to view their status and press the 'Replace' button. The process of replacing a guardian resembles the Device Migration process.

Upon initiating a guardian replacement, Gridlock will send an email to you and notify your other guardians to confirm the replacement. This means you can the same Social Verification protection that you get with the Device Migration process.&#x20;


# Password Reset

Everyone occasionally forgets a password - it's a common headache. But with Gridlock, you're not alone.

Gridlock offers a swift and secure solution for account recovery, eliminating the need for risky methods. Your guardians can assist in this process. They simply need to sign in, navigate to the 'Protecting' screen and forward you a password reset link.

As with the other account recovery options, you will need confirmation from guardians to complete the recovery process.&#x20;


# Transactions

Gridlock allows you to send and receive crypto and NFTs, but you can also purchase crypto within the app using our partner, Banxa. Read on to learn how.

<figure><img src="/files/aT8eTr4sDZTqCNvgqhHq" alt=""><figcaption></figcaption></figure>


# Purchasing

Gridlock teams up with Banxa to offer an effortless cryptocurrency buying experience.&#x20;

Here are the steps:&#x20;

From the Vault tab, select the crypto you wish to purchase.&#x20;

Tap 'Buy'. Follow Banxa's guided instructions.&#x20;

Important: No need to manually input your wallet address, as Banxa automatically transfers purchased tokens to your wallet.&#x20;

Once done, refresh your wallet balance to see the pending or completed transaction and your updated balance.


# Sending and Receiving

Transferring crypto to or from your Gridlock wallet is a breeze! Here's the breakdown:&#x20;

## **Sending Crypto**

First, select your desired cryptocurrency. Tap 'Send', then key in the recipient's address or scan a crypto address QR code. Enter the crypto amount or the equivalent in US dollars (USD) to finalize the transaction.

## Receiving crypt&#x6F;**:**

Simply press 'Receive'. You can either directly share your address by tapping 'Receive Funds' and sharing the address or display your wallet address QR code to the sender.


# NFTs

## Why Gridlock for NFTs?

Gridlock, known for being the most secure crypto wallet, has now extended its security features to the NFT realm. Not only that, but Gridlock also offers a unified platform to view all your NFTs and their associated data.

## How it works

Receive any Solana or Ethereum NFT by tapping on **Receive NFT**.

Share your address by pressing **Share** or **Copy**.

On your original NFT wallet, enter the address and send!


# Gridlock Foundation Coin

Carved from the foundation that Gridlock was built upon – Claim your free Gridlock Foundation Coin now and stay tuned for future news for holders of this NFT.

### Limited Edition NFT for Early Gridlock Adopters

Limited Edition NFT for Early Gridlock Adopters As a unique, time-limited opportunity for early adopters of the Gridlock Crypto & NFT Wallet, Gridlock is offering a free Gridlock Foundation Coin NFT. This NFT symbolizes your early support for Gridlock and its mission to facilitate secure, convenient blockchain technology adoption.

### Claiming Your Gridlock Foundation Coin NFT&#x20;

To claim your free Gridlock Foundation Coin NFT, simply download Gridlock on iOS or Android and claim your free NFT. Congratulations, you're now part of the Gridlock community! As this coin has been "carved from the foundation that Gridlock was built upon," its holders are seen as deeply committed to the core values of security, transparency, and innovation.&#x20;

Thank you for your proactive step towards a safer, empowered digital future. Stay connected for more exciting news for Gridlock Foundation Coin NFT holders!

<br>


# How to claim the Gridlock Foundation Coin

Get a FREE Gridlock Foundation Coin NFT

After installing Gridlock and completing setup, navigate to NFTs and tap 'Claim' on the 'Gridlock Foundation Coin' banner. That's it!

<figure><img src="/files/iD19aS6mqZm3cnSmFKOL" alt=""><figcaption></figcaption></figure>

Claiming the Gridlock Foundation Coin is actually minting an NFT on the Solana blockchain, so it can take a few moments depending on network load – please be patient! Refresh your NFTs and you should see your Gridlock Foundation Coin NFT in your wallet.\
\
Interested in NFTs? Try buying additional Gridlock Coin NFTs. Just go to **NFTs** tab and tap 'Buy' and pick how big of a bag you want.


# Gridlock vs Cold Storage

Hardware wallets or cold storage are commonly seen as the safest means of crypto storage. Given their physical nature, your cryptocurrency is kept offline, far from the reach of internet-based hackers. However, potential hazards lie in real-world scenarios such as theft, loss, or damage.&#x20;

Gridlock helps to counter these risks by providing easy and secure recovery. Should your device be lost, social recovery enables you to regain access. The distributed network setup ensures that loss of a device doesn't translate to loss of your crypto. Additionally, your crypto being distributed implies it's not centralized in one spot, which significantly reduces the risk of "hot wallets" being compromised online. Gridlock blends the advantages of hot and cold wallets while eliminating their negatives.


# Going Beyond Secure

Gridlock Pro, the premium subscription service offered within the Gridlock Crypto and NFT Wallet, provides an elevated level of security for your crypto wallet. This includes Advanced Network Monitoring, Expanded Security with Extra Guardians, Access to Partner Guardians and Priority Support.

With Pro, you can enjoy all the remarkable features of Gridlock but with enhanced security. Plus, a host of additional benefits for subscribers are coming soon!

<figure><img src="/files/dcfqF1MvplqgSsV9rA7J" alt=""><figcaption></figcaption></figure>


# Features

Gridlock Pro is an ideal choice for those holding substantial amounts of crypto, with exclusive perks and features. Continue reading to discover the benefits Gridlock Pro can bring you.


# Advanced Monitoring

What's better than a secure distributed wallet?

A secure distributed wallet with proactive notifications about potential issues.&#x20;

Our automated monitoring system actively scans your guardian network for any anomalies. For instance, if a guardian is unreachable after several attempts (e.g., due to losing their phone), we will alert you and provide a quick solution. This ensures your network remains robust, and your security remains intact.


# More Guardians

Gridlock's standard 3 of 5 guardian configuration is ideally suited for everyday users, safeguarding against unauthorized access and potential crypto theft.&#x20;

With Gridlock Pro, you can expand your circle of guardians without sacrificing usability. By distributing pieces to a larger number of trusted devices, you minimize your risk even more. When dealing with a significant amount of crypto, it's  losing your key is the last thing you want.&#x20;

Remember, only you can put the key together and approve transactions. You are always safe and always in control.&#x20;


# Access to Partner Guardians

Partner Guardians are trusted firms with top-tier security. They are always available and up-to-date with the latest security practices, but they never have control of your assets. In this case your assets are protected by our partner Rush Custody.


# Priority Support

Being a Pro subscriber gets you Priority Support - you don't have to wait in a line for our Support to contact you, you get your help right away!


# Design Principles

Gridlock delivers a product that is:

* **Simple**
* **Secure**
* **Sovereign**

These three principles define Gridlock's brand values and development mindset. A Gridlock network is built with your ease of use and personal security in mind. Read on to learn the details of how we encompass these qualities in everything we do.


# Simple

The greatest crypto security means little if it's not user-friendly. As human error is the leading cause of security breaches and theft, ease-of-use is a paramount consideration in our design.&#x20;

Gridlock is built with user convenience in mind. Whether you're a day trader or a long-term investor, Gridlock ensures an intuitive and seamless experience for all users.&#x20;

Our user experience research has led to the creation of a wallet accessible to anyone. Your crypto and NFTs are always within reach, anytime, anywhere.&#x20;

To start using Gridlock, simply invite two friends to be guardians, then purchase or transfer crypto into your wallet. Try Gridlock today and discover its simplicity for yourself.


# Safe

Our expertise lies in security. Gridlock embodies this by perfecting multi-signature technology and addressing the vulnerabilities of existing wallets.&#x20;

Gridlock's value proposition is a worldwide network of devices for distributing your private key. Should a device fail, the network remains robust, and the compromised device can be swiftly recovered or replaced.&#x20;

To read more about our security technology, see [Distributed Key Regeneration](/the-tech/distributed-key-generation) and [Threshold Signatures](/the-tech/threshold-signatures)


# Non-custodial

Non-custodial - a fancy way to say 'what's yours is yours'.

Gridlock operates on a non-custodial basis, ensuring that we have no claim to your assets. Our role is to offer secure storage and oversee networks for smooth operation.&#x20;

While your wallet may rely on others to safeguard your crypto, control always resides with you. You remain the undisputed owner of your crypto, not us, not your guardians.&#x20;

Gridlock is a system guided by you, supervised by us, and safeguarded by friends. To better understand the role that your guardians take in protecting you, see [All About Guardians](/guardians/all-about-guardians)


# Multi-Party Computation

Multi-party computation (MPC) is a cryptographic technology that allows multiple groups to run a program together. Instead of one computer doing the processing, numerous distributed computers work together in a private and protected way.

Gridlock ensures security by preventing any one entity from controlling all of the keys required to sign a transaction. They collectively have the whole key, but each only has a small piece, and the transaction must collect enough of them to work. That way, even if one of your devices gets hacked, you are safe because the attacker will have to hack a lot of other nodes in the network to get your secured assets.

Gridlock uses MPC in conjunction with Threshold Signatures technology to protect transactions. Threshold Singatures enables the wallet to sign a transaction using a subset of key shares, so even if some of the shares are lost or stolen, the wallet stays safe and operational.


# Distributed Key Generation

Splitting and distributing and encryption key make hacking nearly impossible because an attacker would have to gain accross to multiple devices in multiple locations.&#x20;

Our process of key splitting improves upon traditional methods like Verifiable Secret Sharing (VSS) or Shamir Secret Sharing, leading to enhanced security and privacy through our novel Distributed Key Generation.&#x20;

Existing key splitting techniques have are risky when the key is generated in a single location prior to splitting and sending it to recipients. If the original device is compromised, there's a risk of the key being accessed.&#x20;

To circumvent this, we've devised Distributed Key Generation. This multi-party computation protocol ensures that the key is virtually generated across all devices, meaning your all-important secret key is never stored in its entirety on any single device.&#x20;


# Threshold Signatures

Our use of Threshold Signature Scheme (TSS) technology allows you full wallet access without requiring all five Guardian devices to be active. Key splitting ensures your private key remains hidden and unreachable, with TSS enabling you to use your wallet without all Guardian devices online.&#x20;

To access your wallet, only 3 out of 5 guardian devices need to be online - typically you and Gridlock. If Gridlock becomes unavailable, your guardians are in place to ensure fund recovery remains possible.


# Learn about LOCK

LOCK is the token that powers Gridlock’s decentralized security system. It gives people a way to unlock Pro features without a subscription and [rewards those that make the system stronger](/lock/earn#run-a-guardian-node).&#x20;

You don’t need LOCK to use [Gridlock](https://gridlock.network/download). The app works out of the box with all core features, and you can upgrade to Pro anytime through a standard subscription.

But if you want lifetime access to Pro or want to contribute to the system’s growth, LOCK offers another path.

## What does LOCK get you?

LOCK unlocks Gridlock Pro with no subscription. Hold 5,000 LOCK to access all Pro features—no monthly fees, no expiration. Keep that balance, and Pro stays unlocked.

That’s the core reason most people want LOCK.

It’s also how Gridlock recognizes meaningful contributions. Whether you [run a guardian node](/lock/earn#run-a-guardian-node), [contribute to the community](/lock/earn#contribute-to-the-community), or support the ecosystem in other ways—you’ll receive LOCK for strengthening the network. It’s optional, but it keeps the system resilient and community-powered.

## Where does LOCK come from?

LOCK is available through a bonding curve—a public smart contract that adjusts price as demand grows. There’s no fixed cap and no insider pricing. New tokens are only minted when users actively buy in.

Before launch, a one-time genesis mint created the initial supply. 20% went to the team and early contributors who built Gridlock. Team tokens have the longest vesting period to ensure they stay aligned with the project over time. The rest supports infrastructure, security, and community incentives.

You can learn how to earn LOCK by helping the network—see the “[Earn some LOCK](/lock/earn)” page for more.

## What Is the Bonding Curve?

The bonding curve is a state of the art program that algorithmically sets the price and supply of LOCK based on demand. There’s no fixed price, the curve adjusts the price automatically:

* As people buy, the price goes up to reward early adopters
* As people sell, the bonding curve burns gnesis tokens to&#x20;

This model is the opposite of the typical pump-and-dump token launch. There are no private discounts, no stealth unlocks, and no way for insiders to front-run the public. The bonding curve gives everyone the same transparent access, with pricing that reflects actual demand in real time. It’s the safest and most fair way to release a utility token—backed by real technology, tied to real use, and built to support a working network, not just speculation.

## What does it mean to contribute?

There are a few ways people contribute:

* [Running a guardian node](/lock/earn#run-a-guardian-node) — lightweight software that helps protect other users’ wallets
* [Submitting open-source code](/lock/earn#contribute-to-the-community) — fixes, features, or tools that improve the network
* [Helping with non-code stuff](/lock/earn#contribute-to-the-community) — translations, docs, content, testing, feedback

All contributions are reviewed, and those that help the network grow are acknowledged with LOCK.

You don’t need to be a developer. You don’t need to spend hours every day. You just need to do something that helps.

## How to Get Started:

* Explore [earning opportunities](/lock/earn) like running a guardian node or contributing to the open-source codebase.&#x20;
* [Download and use the Gridlock app](https://gridlock.network/download) without any token commitments.

<br>


# Earn some LOCK

Gridlock is a decentralized system that rewards real participation. If you help protect users or improve the system, you can receive LOCK tokens. These aren’t wages, and you’re not required to participate—but if you do, and your work helps the network grow stronger, you’ll be recognized for it.

You don’t need to buy anything to get started. Gridlock is free to use and open to contributions from anyone.

## **Run a Guardian Node**

{% hint style="warning" %}
To help kickstart the ecosystem, the **first 25 registerd guardians** will get **1,000 LOCK&#x20;*****each month*** for the first year — just for being active and available!
{% endhint %}

Anyone can [operate a Guardian Node](https://github.com/GridlockNetwork/guardian-node) and can help protect users who select them as a guardian.

* **Token Recognition**: 20 LOCK per protected user per month
* **Distribution Schedule**: Every quarter in year one, then monthly after
* **Requirements**:
  * Verified identity (to avoid abuse)
  * Stable uptime
  * Maintained reputation score

Gridlock uses a transparent public rating system so users can see how each guardian performs:

* **A+: Verified, supporter, and excellent uptime track record** - a top-tier guardian that's been supporting the network for a long time
* **A: Verified and supporter -** not only verified but a supporter an active supporter and token holder
* **B: Verified -** identity verified for peace of mind
* **C: Unverified** - not yet verified or unable to be verified
* **D: Degraded/Inactive** - not recommended for use

## FAQ  - Running a Guardian Node

<details>

<summary>How do I run a guardian node?</summary>

Download the code, set some configuration values, and let it run. [More instructions here](https://github.com/GridlockNetwork/guardian-node)

</details>

<details>

<summary>How much LOCK is granted to guardian node operators?</summary>

Guardian operators are granted 20 LOC&#x4B;*, <mark style="color:blue;">per user,</mark> <mark style="color:purple;">per month,</mark>* for each Gridlock Pro user who selects them

</details>

<details>

<summary>When are tokens distributed?</summary>

LOCK allocations for guardian node participation are settled quarterly during the first year, and monthly thereafter.

Distributions begin after a 12-month cliff starting from the creation of the bonding curve in April 2025. This delay is intentional. It ensures that buyers from the bonding curve are protected, with foundation-held tokens locked for even longer than public purchases.

After the cliff, tokens vest gradually over the next 12 months. Once vested, distributions are made as soon as funds are available, based on your fair share of the total vested pool.

</details>

<details>

<summary>Why am I not receiving LOCK even though I’m supporting users?</summary>

Only users with **Gridlock Pro** status trigger LOCK distributions to their guardians. To be eligible, the user must either:

* Subscribe to Gridlock Pro through the app store, or
* Hold the minimum required amount of LOCK in their wallet (Currently 5000 LOCK)

If a user doesn’t meet one of these criteria, supporting them won’t result in any token grant.

</details>

<details>

<summary>What are the requirements to receive LOCK?</summary>

To be eligible for protocol-level token grants, you must:&#x20;

* Be a guardian to at least one Gridlock Pro user
* Complete identity verification
* Run a guardian node with sufficient uptime to maintain a minimum reputation

</details>

<details>

<summary>Who can operate a guardian node?</summary>

Anyone can run a guardian node that is selected by Gridlock users. Only verified participants with stable uptime and strong reputations are eligible to receive LOCK. Anyone under the age of 18 is excluded, as they cannot complete the verification process until they turn 18.

</details>

<details>

<summary>How can I improve my reputation?</summary>

Stay online consistently, complete verification, and support more users. The protocol monitors activity constantly to and regularly reassesses reliability.

</details>

<details>

<summary>How do users select guardians?</summary>

Users manually select guardians, either through the Gridlock app or through an alternative app the connects with the Gridlock Network via the SDK.

</details>

<details>

<summary>Where does the LOCK come from for guardian node distributions?</summary>

All guardian node distributions come from the **Guardian Node Reward Fund**, which was allocated during the initial LOCK token genesis. This fund was specifically set aside to incentivize long-term network participation and support.

</details>

## **Contribute to the Community**

Starting June 2025, 2% of Gridlock’s initial **Ecosystem Development Fund** will be unlocked every month—and anyone can earn from it.

No applications. No paperwork. No gatekeeping. Just real rewards for real contributions.

### How is impact measured?

Each month, the foundation will run an AI-powered analysis of all contributions and allocate rewards based on your share of that month’s total impact.

**Want to get involved? Start by exploring our GitHub repos:**

* [Guardian Node ](https://github.com/GridlockNetwork/guardian-node)– Strengthen the core of Gridlock’s distributed security.
* [Orchestration (“Orch”) Node](https://github.com/GridlockNetwork/orch-node) – Help coordinate guardian activity across the network.
* [Gridlock SDK](https://github.com/GridlockNetwork/gridlock-sdk) – Build tools and apps that connect to the Gridlock storage network.
* [Gridlock CLI](https://github.com/GridlockNetwork/gridlock-cli) – Enhance the command-line interface for users, admins, and devs.

**You don’t need to write code to contribute!**&#x20;

You can still help by improving documentation, writing tutorials, making videos, translating content, or suggest new ideas. If it helps Gridlock or the community — it counts.

#### Details:

* Monthly Allocation: 2% of the total initial token supply
* What Counts: Code, docs, tutorials, translations, ecosystem tools, design, ideas—anything that moves the mission forward
* First Allocation: June 2025

## FAQ  - Contributing to Development

<details>

<summary>How do I receive LOCK for contributing to Gridlock?</summary>

Each month, 2% of the ecosystem fund is distributed to contributors based on the **measurable** **impact** of their work. There are no applications or approvals—if your contribution adds value, it’s considered.

</details>

<details>

<summary>What types of contributions are eligible?</summary>

Any contribution that strengthens Gridlock or improves the user experience may be eligible for LOCK distribution, including:

* Code (e.g. node software, SDKs, CLI tools)
* Documentation and translations
* Educational content (videos, tutorials, walkthroughs)
* UI/UX design and usability improvements
* Ecosystem tools, proposals, or integrations

</details>

<details>

<summary>Do I need to be a developer to contribute?</summary>

No. Non-code contributions—like documentation, design, or educational resources—are recognized based on the same impact-based system.

</details>

<details>

<summary>How is “impact” determined?</summary>

An AI-powered system reviews all contributions monthly and scores them relative to others. Your share of the month’s distribution is based on your share of the total contribution impact.

</details>

<details>

<summary>Is there any review or moderation?</summary>

Yes. While impact scoring is AI-driven for scale and consistency, there is ongoing human oversight to improve fairness and flag anomalies.

</details>

<details>

<summary>Where can I contribute?</summary>

Explore our open-source GitHub repositories:

* [Guardian Node](http://github.com/GridlockNetwork/guardian-node/) – Strengthen distributed security
* [Orchestration Node](http://github.com/GridlockNetwork/orch-node/) – Coordinate guardian activity
* [Gridlock SDK](http://github.com/GridlockNetwork/gridlock-sdk) – Build apps and services on the network
* [Gridlock CLI ](http://github.com/GridlockNetwork/gridlock-cli)– Improve tooling for users, admins, and developers

</details>

<details>

<summary>When do distributions begin?</summary>

Contributions start counting in June 2025, but LOCK isn’t distributed right away. All distributions follow the ecosystem fund schedule:

* 12-month cliff starting April 2025
* Followed by 12-month linear vesting

Once tokens vest, contributors with finalized allocations will receive their share as soon as enough funds are available.

</details>

<details>

<summary>Do contributor rewards follow the same vesting schedule as guardian nodes?</summary>

Yes, all rewards come from the **Ecosystem Fund** which follows the same vesting schedule as the **Guardian Node Reward Fund**. Both funds have a vesting cliff of twelve months from the creation of the bonding curve followed by a linear rollout for the following twelve months.&#x20;

</details>

<details>

<summary>What is the very first thing I need to do? </summary>

There’s no approval process. Review the projects, find where you can contribute, and push your work. If it adds value, it will be counted.

</details>


# General LOCK FAQ

<details>

<summary>Is LOCK required to use Gridlock?</summary>

No. You can use Gridlock entirely for free. LOCK is only required if you want to unlock Gridlock Pro through token holdings instead of a subscription.

</details>

<details>

<summary>I have LOCK, when do I get Pro?</summary>

The system monitors for LOCK purchases and will automatically upgrade users that have 5000+ tokens. Reach out to [support](mailto:support@gridlock.network) if you are not automatically upgraded within 24 hours.&#x20;

</details>

<details>

<summary>What’s the benefit of holding LOCK instead of subscribing?</summary>

Holding **5,000 LOCK** unlocks Gridlock Pro with no recurring fees. As long as your balance stays above that threshold you have Gridlock Pro forever.&#x20;

</details>

<details>

<summary>Will the 5,000 LOCK requirement change?</summary>

Yes. The requirement will adjust over time. If the price of LOCK increases, the amount needed to unlock Pro will decrease.

</details>

<details>

<summary>What happens if my balance drops below 5,000 LOCK?</summary>

You’ll lose access to Pro features. You can either increase your balance or switch to a paid subscription through the App Store.

</details>

<details>

<summary>What wallets support LOCK?</summary>

Any wallet that supports Polygon PoS tokens, like Gridlock, MetaMask, Trust Wallet, and most ERC-20-compatible wallets.

</details>

<details>

<summary>Is LOCK transferable?</summary>

You can send LOCK freely between any compatible wallet.

</details>

<details>

<summary>Can I buy LOCK on an exchange?</summary>

LOCK is currently only available through the bonding curve, [available here](https://q-acc.giveth.io/project/gridlock-social-recovery-wallet).  There are no exchange listings at this time.

</details>

<details>

<summary>Can I sell LOCK?</summary>

Yes. You can sell LOCK back through the [bonding curve ](https://q-acc.giveth.io/project/gridlock-social-recovery-wallet)at the current curve price.

</details>

###

<br>


# General FAQs

### What is Gridlock?

Gridlock is a cutting-edge, digital asset storage system that supports all cryptocurrencies. It provides an easy, incredibly safe, and stress-free solution to managing your digital assets. With Gridlock, your assets remain protected and under your control at all times.

### Is Gridlock a Cryptocurrency wallet?

Gridlock is more than a traditional wallet. Instead of storing keys on a single device, Gridlock utilizes a network of devices. Think of it as an unbreakable, distributed vault for your digital assets.

### How does Gridlock ensure my assets' security?

Gridlock uses an ingenious method of splitting encryption keys into smaller pieces and distributing them across various devices. This combined protection provides unparalleled security against potential vulnerabilities. You can learn more about our advanced security mechanisms in the Tech section of our website.

### Who holds my Cryptocurrency?

Only you do. Gridlock provides security measures, but never takes control of your assets.

### What differentiates Gridlock from other platforms?

Unlike conventional platforms that force you to choose between control, security, and usability, Gridlock lets you retain total control while removing the risk and stress of personal management. It's an ideal combination of control, safety, and peace of mind!

### Which cryptocurrencies does Gridlock support?

Gridlock supports a many different cryptocurrencies and blockchains, including all the major ones like Bitcoin and Ethereum, and new ones being added on a weekly basis.

### Can Gridlock prevent hacking attempts?

Indeed, Gridlock makes hacking virtually impossible. A potential hacker would need access to multiple devices to assemble the private key, a scenario that's nearly impossible, and much more secure than other solutions that exist today.&#x20;

### What if I forget my password or lose my phone?

If such an event occurs, your Guardians can verify your identity, enabling you to quickly regain access to your account.

### Can I use Gridlock to buy and sell cryptocurrency?

Yes, you can buy crypto directly through on onramp partners. We have plans to implement the selling of crypto to fiat currencies like USD in the near future.

### Can I store Non-Fungible Tokens (NFTs) in my Gridlock account?

Absolutely! Gridlock fully supports NFT storage, allowing you to manage all your digital assets from a single platform.

### What happens to my assets if Gridlock shuts down? &#x20;

Should Gridlock ever become unavailable, you are still safe and protected! The built-in Eject Feature allows you to access your crypto independently without Gridlock. This is the definition of self-custody where you are in full control!

### How do I get started with Gridlock?

To get started with Gridlock, please visit the Getting Started page on our website.

### What happens if a Guardian loses their device?

If a Guardian loses their device, you can securely reassign their Guardian status to a new device with the Guardian Replacement feature.&#x20;

### Can my Guardians access or steal my money?

No. Your cryptocurrency remains accessible exclusively from your device.

### Can I use my Gridlock account on multiple devices?

Yes, but only in a ‘read-only’ view. If you log into your account from a different device and want to make that your new primary device, you must complete the Device Migration process.&#x20;

### Can I become a Guardian in Gridlock?

Yes, you can become a Guardian in Gridlock upon receiving an invitation from a user.

### How do I add or remove Guardians?

Guardians can be added or removed conveniently via the app. Navigate to the Guardians section in your account settings and follow the instructions.

### Is my Gridlock data encrypted?

Yes, all data within Gridlock is fully encrypted to ensure your safety and privacy.

### What if I forget my password?

If you forget your password, you can regain access and reset it with the help of your Guardians and our recovery process.

### How do I move my Gridlock network to a  new phone?

You can move your Gridlock network to a new phone by following the Device Migration instructions on our website.

### How do I report a problem or bug with Gridlock?

If you encounter a problem or identify a potential bug, please submit feedback in the app.&#x20;

<br>


# Transaction FAQs

### How to add crypto to your Gridlock Wallet

1. **Buy Directly in Gridlock:** You can buy crypto directly in the Gridlock app using one of our trusted onramp partners. Click "Buy" in the app and complete your crypto purchase in less than five minutes!
2. **Buy through a Centralized Exchange:** Centralized exchanges offer a variety of cryptocurrencies to buy and often allow bank transfers, which can be have lower fees than debit card purchases. After purchasing on a centralized exchange, transfer the crypto to your Gridlock wallet for the safest storage possible.
3. **Buy with a crypto ATM:** Crypto ATMs provide a physical venue to buy cryptocurrencies with cash. Select the cryptocurrency you want to purchase and use the ATM to send it directly to your Gridlock wallet address.
4. **Buy from a friend (P2P):**  Peer-to-peer transactions are ones where a friend or someone you trust sends cryptocurrency directly to your Gridlock wallet. This method often has lower fees than other methods and is a cost-efficient way to get started with crypto.

### How do I convert from crypto to cash

1. **Convert to a stablecoin:** You can always use centralized or decentralized exchanges to convert crypto to a stablecoin like USDC, USDT, or DAI. This is the crypto equivalent of cash and each stablecoin is designed to closely match the value of the US dollar.&#x20;
2. **Crypto Exchange**: A common method is to use centralized crypto exchanges when converting large amounts of crypto to fiat currencies like USD, EUR, GBP, and more. &#x20;
3. **Crypto Debit Card**: Spending your crypto balance for daily use is easy with crypto debit cards. This method allows you to spend crypto anywhere that you would use a debit card.
4. **Peer-to-Peer (P2P) Trading**: Selling directly to another individual using a P2P crypto exchange generally has the lowest fees but it requires slightly more effort to work through the sale process.&#x20;
5. **Crypto-Friendly Businesses**: Directly spend your crypto at businesses accepting crypto payments, a method that doesn't convert to fiat but allows you to use crypto like cash.
6. **Gridlock:** Gridlock plans to add offramp support directly to the app in a future release.&#x20;

### Are there any fees associated with converting crypto to a different coin or cash?

Like any other currency conversion service, converting crypto to cash or other coins involves fees. Exchanges and debit cards charge fees based on transaction size or type. P2P exchanges might have lower fees but require more effort and are generally not used for small-to-medium-sized conversions.

### What should I consider before converting my crypto?

Consider tax implications, as selling crypto at a profit may be taxable. Also, review the transaction fees, which vary by service and can impact the amount of fiat you receive.&#x20;

### Does Gridlock offer a direct offramp option to convert crypto to fiat in the future?

Gridlock plans to add an offramp feature in the future, providing users with a direct and convenient way to convert their cryptocurrency holdings into fiat currency.


# SDK / CLI Documentation

This guide provides instructions on how to interact with Gridlock's network. It is intended for developers looking to build on Gridlock's storage technology.

***

## **Initialize SDK**&#x20;

Start by initializing the Gridlock SDK to use the built-in functions.&#x20;

**Parameters**:

* `apiKey` (*string*): Your API key for authentication into the chosen network.
* `baseUrl` (*string*):  The URL endpoint for the backend orchestration "orch" node(s).
* `verbose` (*boolean*): Set to true to see additional debug information
* `logger` (*object*): A logging instance for outputting logs (e.g., console, winston).

<details>

<summary>SDK Example</summary>

```typescript

const API_KEY = 'your_api_key_here'; 
const BASE_URL = 'https://your_base_url_here'; 
const DEBUG_MODE = true; 

const gridlock = new GridlockSdk({
  apiKey: API_KEY,
  baseUrl: BASE_URL,
  verbose: DEBUG_MODE,
  logger: console,
});

export default gridlock;
```

</details>

***

## **Create User (`createUser`)**

**Description**: Creates a new empty user account.

**Parameters**:

* `name` (*string*): The user's full name
* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*): The user's password used to encrypt access key stored locally.&#x20;
* `saveCredentials` (*boolean*): Option to save the user's credentials locally for easier management. Use `saveStoredCredntials` and `clearStoredCredentials` functions to switch to another saved user.&#x20;

**Return Values**:

* `user` (*object*): JSON object containing user account details.
* `authTokens` (*object*): JSON object containing temporary authentication tokens for session management.

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.createUser({ 
  name: 'Bertram Gilfoyle', 
  email: 'john@example.com',
  password: 'password123',
  saveCredentials: false 
});
```

**Example Usage:**

```typescript
import gridlock from 'initGridlock.js'; 

const { user, authTokens } = await gridlock.createUser({
  name: 'Bertram Gilfoyle',
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  saveCredentials: false,
});

console.log('User created:', user.name);
console.log('Email:', user.email);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock create-user \
  -n "Bertram Gilfoyle" \
  -e gilfoyle@piedpiper.com \
  -p mypassword
```

**Example Usage:**

```bash
$ gridlock create-user \
  -n "Bertram Gilfoyle" \
  -e gilfoyle@piedpiper.com \
  -p mypassword \
  -s
  
Entered values:
 User name: Bertram Gilfoyle
 Email: gilfoyle@piedpiper.com
 Password: *******
 Save credentials: true


✔ ➕ Created account for user: Bertram Gilfoyle
```

</details>

**Additional Guidance**:

The user's node pool will initiate in an empty state. The next step is to add guardians to the user's storage network.&#x20;

***

## **Add Guardian (`addGuardian`)**

**Description**: Adds a self-hosted guardian to the user's node pool.

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*):  The user's password for local decryption of access key.
* `guardian` (object): Object containing information about the guardian. Details below.
  * `name` (*string*): The guardian’s name.
  * `type` (*string*): The type of guardian, currently limited to `cloud`
  * `nodeId` (*string*): Unique identifier for the guardian.
  * `publicKey` (*string*): The guardian’s public key used for identification.
  * `e2ePublicKey` (*string*): The guardian’s public key used for end-to-end encryption.
* `isOwnerGuardian` (*boolean*): Indicates if the user is the owner guardian.

**Return Values**:

* `user` (*object*): JSON object containing user details
* `guardian` (*object*): JSON object containing guardian details.

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.addGuardian({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  guardian: guardianData,
  isOwnerGuardian: false,
});
```

**Example Usage:**

```typescript
import { IGuardian } from 'gridlock-sdk/types';

const guardianData: IGuardian = {
  name: 'EXAMPLE CLOUD GUARDIAN',
  nodeId: 'f90f889a-01ea-415f-81fe-ed624c6b0541',
  publicKey: 'UDFCR7NI5DJEAUSEIWWBIXBNQQLWBBPSSDSF5AOCMNW5LMZQGOVT7RCC',
  e2ePublicKey: 'Zos8ukwJEL7TFvrtinuV9AQNC2if3rwcb55HJLnpIlQ',
  type: 'cloud',
  active: true,
};

const response = await gridlock.addGuardian({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  guardian: guardianData,
  isOwnerGuardian: false,
});

console.log('Guardian added:', response.guardian.name);
```

</details>

<br>

***

## **Add Professional Guardian (`addProfessionalGuardian`)**

**Description**: Adds a Gridlock-hosted guardian to the user's node pool.

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*):  The user's password for local decryption of access key.
* `type` (*string*): The type of professional guardian, either `gridlock` or `partner`

**Return Values**:

* `user` (*object*): JSON object containing user details
* `guardian` (*object*): JSON object containing guardian details.

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.addGridlockGuardian({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  type: 'gridlock',
});
```

**Example Usage:**

```typescript
import { IGuardian } from 'gridlock-sdk/types';

const response = await gridlock.addGridlockGuardian({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  type: 'gridlock',
});

console.log('Gridlock Guardian added:', response.guardian.name);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock add-guardian \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -t partner
```

**Example Usage:**

```bash
$ gridlock add-guardian \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -t gridlock
  
✔ Added Gridlock Guardian (Clarence) to user's list of guardians

```

</details>

**Additional Guidance**:

Professional Guardians cannot be assigned as “Owner Guardian” because they are not meant to serve as the primary controllers of assets.

***

## **Create Wallet (`createWallet`)**

**Description**: Generates a distributed private key and address for the given user and blockchain.

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*): The user's password for local decryption of access key.
* `blockchain` (*string*): Blockchain identifier (e.g., 'DOT', 'BTC', 'ETH').

**Return Value**:

* `wallet` (*object*): JSON object with address information and associated guardians

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.createWallet({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  blockchain: 'solana',
});
```

**Example Usage:**

```typescript
const wallet = await gridlock.createWallet({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  blockchain: 'solana',
});

console.log('Wallet created with address: ', wallet.address);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock create-wallet \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -b solana
```

**Example Usage:**

```bash
$ gridlock create-wallet \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -b solana

Entered values:
 Email: gilfoyle@piedpiper.com
 Password: *******
 Blockchain: solana


✔ ➕ Created Solana wallet with address:
2BoERyoxBjfGJqVfs6DaGp57PiwTbZuCDpT1RqJ7DC15
```

</details>

**Additional Guidance**:

You must have sufficient guardians assigned before creating a wallet.&#x20;

The private key is generated using Distributed Key Generation (DKG) through communication with all guardians in the node pool. The key will never exist as a whole.

***

## **Sign Transaction (`signTransaction`)**

**Description**: Signs a given transaction for the user.

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*):  The user's password for local decryption of access key.
* `address` (string): The related blockchain address.
* `message` (string): The transaction message to be signed.

**Return Value**:

* `signature` (object): JSON object containing a signature and other associated data.&#x20;

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.signTransaction({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  address: walletAddress,
  message,
});
```

**Example Usage:**

```typescript
const walletAddress = '2BoERyoxBjfGJqVfs6DaGp57PiwTbZuCDpT1RqJ7DC15'
const message = 'This is a message to be signed';

const signature = await gridlock.signTransaction({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  address: walletAddress,
  message,
});

console.log('Message signed:', signature);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock sign \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -m "hello" \
  -a 53tX7BNtA2KxNVassdyjhr5mJdswjJXTtj7tCFXWHTPp
```

**Example Usage:**

```bash
$ gridlock sign \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -m "hello" \
  -a 53tX7BNtA2KxNVassdyjhr5mJdswjJXTtj7tCFXWHTPp


Entered values:
 Email: gilfoyle@piedpiper.com
 Password: *******
 Address: 2BoERyoxBjfGJqVfs6DaGp57PiwTbZuCDpT1RqJ7DC15
 Message: hello


✔ Transaction signed successfully with signature:
b818f05c332468376c7582136d38fc614d00cf2e3a60a9b58027805823ca7d6fc9764babdf618b455ac00bd75a0535b82c78ad14cf8a2e90c78668704d40d10c
```

</details>

**Additional Guidance**:

The system gathers partial signatures from the user’s guardians within the node pool. Once enough guardians have signed, the system automatically aggregates them to finalize the transaction. It's possible for this process to fail in guardians are offline. This itself is a form of security where you can choose to have guardians regularly offline so that transactions are not possible.&#x20;

***

## **Verify Signature (`verifySignature`)**

**Description**: Confirms that all nodes in the user's node pool can produce a valid signature for a specified address.

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*):  The user's password for local decryption of access key.
* `message` (string): The transaction message that you want to verify.&#x20;
* `address` (*string*): The address that signed the message
* `signature` (*string*): The signature you want to verify.&#x20;

**Return Value**:

* `verified` (*object*): A JSON object containing verified as true or false.&#x20;

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.verifySignature({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  message,
  address: walletAddress,
  signature: signature.signature,
});
```

**Example Usage:**

```typescript
const walletAddress = '2BoERyoxBjfGJqVfs6DaGp57PiwTbZuCDpT1RqJ7DC15'
const message = 'This is a message to be signed';
const signature = 'b818f05c332468376c7582136d38fc614d00cf2e3a60a9b58027805823ca7d6fc9764babdf618b455ac00bd75a0535b82c78ad14cf8a2e90c78668704d40d10c'

const isVerified = await gridlock.verifySignature({
  email: 'gilfoyle@piedpiper.com',
  password: 'password123',
  message,
  address: walletAddress,
  signature: signature.signature,
});

console.log('Signature verified:', isVerified);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock verify \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -a 53tX7BNtA2KxNVassdyjhr5mJdswjJXTtj7tCFXWHTPp \
  -m "hello" \
  -s b818f05c332468376c7582136d38fc614d00cf2e3a60a9b58027805823ca7d6fc9764babdf618b455ac00bd75a0535b82c78ad14cf8a2e90c78668704d40d10c
```

**Example Usage:**

```bash
$ gridlock verify \
  -e gilfoyle@piedpiper.com \
  -p password123 \
  -a 53tX7BNtA2KxNVassdyjhr5mJdswjJXTtj7tCFXWHTPp \
  -m "hello" \
  -s b818f05c332468376c7582136d38fc614d00cf2e3a60a9b58027805823ca7d6fc9764babdf618b455ac00bd75a0535b82c78ad14cf8a2e90c78668704d40d10c
  
Entered values:
 Email: gilfoyle@piedpiper.com
 Password: *******
 Message: hello
 Address: 53tX7BNtA2KxNVassdyjhr5mJdswjJXTtj7tCFXWHTPp
 Signature: b818f05c332468376c7582136d38fc614d00cf2e3a60a9b58027805823ca7d6fc9764babdf618b455ac00bd75a0535b82c78ad14cf8a2e90c78668704d40d10c


✔ Signature verified successfully:
true
      (👍°ヮ°)👍
```

</details>

***

## **Start Recovery (`startRecovery`)**

**Description**: Initiates the account recovery process with a user's email.&#x20;

**Parameters**:

* `email` (*string*): The user's email address
* `password` (*string*): New (or previous) password used to encrypt locally stored credentials.&#x20;

**Return Value**:

* `guardians` (*object*): A JSON object containing the list of guardians associated with that user.&#x20;

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.startRecovery({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
});
```

**Example Usage:**

```typescript

const guardians = await gridlock.startRecovery({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
});

console.log('Guardians:', JSON.stringify(guardians, null, 2));
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock start-recovery \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123
```

**Example Usage:**

<pre class="language-bash"><code class="lang-bash">$ gridlock start-recovery \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123
  
<strong>Entered values:
</strong> Email: gilfoyle@piedpiper.com
 Password: *******


✔ Recovery initiated
</code></pre>

</details>

**Additional Guidance**:

If the user is found, an email will also be sent to the address they registered with their guardians when they first created the account.

Recovery in this distributed system functions similarly to the “forgot password” process in a traditional system. If the user exists, this call returns a list of their associated guardians. This list is used for future end-to-end encrypted communication during the recovery process.

***

## **Confirm Recovery (`confirmRecovery`)**

**Description**: Confirms ownership of email address by sharing the recovery code with the guardian.&#x20;

**Parameters**:

* `email` (*string*): The user's email address
* `password` (*string*):  The user's password for local decryption of access key.
* `recoveryBundle` (*string*): Information sent by the guardian to the user's email.

**Return Value**:

* `user` (*object*): A JSON object containing the user's information.
* `wallets` (*object*): A JSON object containing all wallets associated with that user.&#x20;

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.confirmRecovery({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
  recoveryBundle: 'M734hwNm9c3OcygBVjkkmDc.....4lo13fNuRJ/9ssTQFegGRcLDA='
});
```

**Example Usage:**

<pre class="language-typescript"><code class="lang-typescript">
const { user, wallets } = await gridlock.confirmRecovery({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
   recoveryBundle: 'M734hwNm9c3OcygBVjkkmDc.....4lo13fNuRJ/9ssTQFegGRcLDA='
});

<strong>console.log('User:', JSON.stringify(user, null, 2));
</strong>console.log('Wallets:', JSON.stringify(wallets, null, 2));
</code></pre>

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock confirm-recovery \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123 \
  -r recoveryBundle: 'M734hwNm9c3OcygBVjkkmDc.....4lo13fNuRJ/9ssTQFegGRcLDA='
```

**Example Usage:**

```bash
$ gridlock confirm-recovery \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123 \
  -r recoveryBundle: 'M734hwNm9c3OcygBVjkkmDc.....4lo13fNuRJ/9ssTQFegGRcLDA='
  
Entered values:
 Email: gilfoyle@piedpiper.com
 Password: *******
 Recovery Bundle: M734hwNm9c3OcygBVjkkmDc.....4lo13fNuRJ/9ssTQFegGRcLDA=


✔ Recovery confirmed successfully.
```

</details>

**Additional Guidance**:

The recovery bundle contains information about the specific guardian that sent the code as well as a unique challenge that lets the user prove they have access to the correct email.&#x20;

***

## **Transfer Owner (`transferOwner`)**

**Description**: Transfers primary ownership of the account to a new client device, assuming sufficient guardians have been updated via the Confirm Recovery action.&#x20;

**Parameters**:

* `email` (*string*): The user's email address, used for authentication.
* `password` (*string*): The user's password for local decryption of access key.

**Return Value**:

* `success` (*bool*): Booleen value showing success or failure of transfer request.&#x20;

**Example Usage**:

<details>

<summary>SDK Example</summary>

**SDK Command:**

```typescript
gridlock.transferOwner({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
});
```

**Example Usage:**

```typescript
const success = await gridlock.transferOwner({
  email: 'gilfoyle@piedpiper.com',
  password: 'my_new_password123',
});

console.log(success);
```

</details>

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock transfer-owner \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123
```

```bash
$ gridlock transfer-owner \
  -e gilfoyle@piedpiper.com \
  -p my_new_password123
  
EEntered values:
 Email: gilfoyle@piedpiper.com
 Password: *******


✔ Ownership successfully transferred to this device
```

</details>

**Additional Guidance**:

This function only succeeds if enough guardians have already confirmed the new device. The orch node checks the current status of each guardian. If the required number have approved, it updates the account to make the new client device the one that can log into the network.&#x20;

***

## CLI-specific commands

***

## **Show Network (`showNetwork`)**

**Description**: Shows guardians associated with a specific user.

**Parameters**:

* `email` (*required, string*): The email is used as the unique identifier of the user.&#x20;

**Return Value**:

* `name` (*string*): The name of the node.
* `nodeType` (*string*): The type of node, which can be one of the following:
* `nodeId` (*string*): The unique identifier for the node.
* `status` (*string*): The current status of the node (e.g., active, inactive).
* `identityKey` (*string*): The public key associated with the node identity.&#x20;
* `encryptionKey` (*string*): The public key used by the node for end-to-end encryption.
* `ownerGuardian` (*boolean*): Whether the node is designated as the Owner Guardian.

**Example Usage**:

<details>

<summary>CLI Example</summary>

**CLI Command:**

```bash
gridlock show-network -e gilfoyle@piedpiper.com
```

**Example Output:**

```bash
$ gridlock show-network -e gilfoyle@piedpiper.com

🌐 Guardians for Bertram Gilfoyle (gilfoyle@piedpiper.com)
-----------------------------------
       Name: Oliver
       Type: 🌥️ Cloud Guardian
       Node ID: 8e198cc0-eace-4b9b-a12c-7a6e6801078e
       Status: ACTIVE
       ---
       Name: Gridlock Guardian (Clarence)
       Type: 🛡️ Gridlock Guardian
       Node ID: 8b642223-b9e7-4cf3-b660-4b8542b77977
       Status: ACTIVE
       ---
    👑 Name: James
       Type: 🌥️ Cloud Guardian
       Node ID: f90f889a-01ea-415f-81fe-ed624c6b0541
       Status: ACTIVE
-----------------------------------
Total Guardians: 3 | Threshold: 3 of 3 ✅
```

</details>

**Additional Guidance**:

**Cloud Nodes:** These are nodes that you run yourself and are generally run on cloud infrastructure like AWS.&#x20;

**Gridlock Nodes**: These nodes are run by Gridlock and perform additional functions like advanced network monitoring for extra protection.&#x20;

**Partner Nodes**: These nodes belong to partner organizations that help enhance the network's security and distribution without having control over the user’s assets.


# Gridlock Demo Setup

## Run the demo in under 10 minutes!

This guide will walk you through setting up a complete Gridlock setup, including the orchestration node, guardian nodes, and CLI.

### 1. Setting Up the Orchestration Node

The orchestration node handles overall network management, including the database and NATS distributed networking framework.

```bash
# Download setup files
curl -o orch-node-compose.yml https://raw.githubusercontent.com/GridlockNetwork/orch-node/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/GridlockNetwork/orch-node/main/example.env
curl -o nats-server.conf https://raw.githubusercontent.com/GridlockNetwork/orch-node/main/nats-server.conf

# Create a local network so all processes can talk to each other
docker network create gridlock-net 2>/dev/null || true

# Start the orchestration node, database, and networking layer
docker compose -f orch-node-compose.yml -p gridlock-orch-stack up
```

### 2. Setting Up Guardian Nodes

Run three guardian nodes at once to test a minimum setup

```bash
# Download the guardian nodes setup files
curl -o guardian-nodes-compose.yml https://raw.githubusercontent.com/GridlockNetwork/guardian-node/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/GridlockNetwork/guardian-node/main/example.env

# Start the guardian nodes
docker compose -f guardian-nodes-compose.yml up
```

### 3. Setting Up the CLI

Set up the Gridlock CLI to interact with the network:

1. Download the setup files for the CLI demo:

```bash
curl -o demo.env https://raw.githubusercontent.com/GridlockNetwork/gridlock-cli/refs/heads/main/demo.env
```

2. Configure your guardians for the demo:
   * Look for the guardian configuration details in the output logs from step 2
   * Edit the `demo.json` file, replacing the placeholder values with your guardian information:

```json
{
  "guardians": [
    {
      "name": "GUARDIAN_1_NAME",
      "nodeId": "GUARDIAN_1_NODE_ID",
      "networkingPublicKey": "GUARDIAN_1_NETWORKING_PUBLIC_KEY",
      "e2ePublicKey": "GUARDIAN_1_E2E_PUBLIC_KEY"
    }
  ]
}
```

3. Install and run the CLI:

```bash
npm install -g gridlock-cli
gridlock run-example -i
```

Use the guardian output when you get to the recovery step.&#x20;

**That's it!**&#x20;

See more technical details on the [Github repo](https://github.com/GridlockNetwork/gridlock-cli).


