> For the complete documentation index, see [llms.txt](https://docs.sealed.channel/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealed.channel/introduction/step-by-step.md).

# Step by step

Sealed is designed to feel like a regular private messenger, even though it works differently behind the scenes. Instead of creating an account on a company server, paying through a platform-controlled subscription, and sending messages through a central backend, Sealed uses a local app identity, credits, smart contracts, and end-to-end encryption. This page explains the basic user flow: from creating a Sealed identity, to buying credits, to sending a message directly or through Alias Chat.

### Step 1. Create local wallet

When a user opens Sealed for the first time, the application creates a private identity locally on the device. The user does not need to register with a phone number, email address, username, or social login. After the identity is created, the user protects access to the app with a local access code, while the 24-word mnemonic phrase works as the backup and recovery method for moving the identity to another device.

<figure><img src="/files/nmnaC2XA9SChht7PgEG7" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">click "create account"</p>

<figure><img src="/files/BnnHj9PA0WmbmpHbAZ3I" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">click "next" until you get to "create or recover" screen</p>

<figure><img src="/files/tEWkUbnhvYARcLCauuQi" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">click "create local wallet" to move to below screen</p>

<figure><img src="/files/5EdyzZRyVEAP2tdriCdg" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">carefully read infomration and after that click "create account"</p>

### Step 2. Set up a passcode

After the wallet is created, the user sets an access code. This code is used to unlock Sealed on the current device. It works like a local app PIN and protects access to the user’s Sealed identity, messages, and local app data. The access code is not a cloud password and cannot be reset by Sealed through email or SMS. The user can change it later in the app settings. If the user enters the wrong access code 5 times, the app resets itself. To restore the main Sealed identity after a reset, the user needs the 24-word mnemonic phrase.

<figure><img src="/files/4iY6EJS6Fx9yVMKG3qMb" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">set up a pass code by typing 6 figures, after that you'll be asked to type it again in order to confirm it</p>

### Step 3. Set up a termination code

During the same setup flow, the user also creates a termination code. This code is used for emergency situations. It is entered on the same PIN screen as the normal access code, but instead of opening the app, it silently wipes local Sealed data from the device. The termination code can be changed later in the app settings. It does not remove anything from the blockchain. Its purpose is to remove the local data needed to access the Sealed identity and conversations from that device, including Alias Chat content and Peer-to-Peer messages stored locally.

<figure><img src="/files/8pgjGWwKaOQxFdyDtBcy" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">read information about termination code carefully and click "set code"</p>

<figure><img src="/files/3GqfJm1vDMvgHyNIfXPV" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">type termination code</p>

<figure><img src="/files/4VBQuTeZE681L5ifybyF" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">all set, click "continue" now to enter the app</p>

### Step 4. Prepare an Algorand wallet and ALGO

To generate credit codes, you need an Algorand wallet outside the Sealed app. Use one of the dedicated Algorand wallets supported by the top-up flow, such as **Lute**, **Pera**, or **Defly**. These wallets are used only for the top-up process and remain separate from the local Sealed wallet created inside the messaging app. Lute is an Algorand wallet, while Algorand’s own ecosystem page lists Pera, Defly, and Lute among supported wallet options. If you do not already have ALGO in that wallet, you need to obtain it first. One common way is to use a centralized exchange, withdraw ALGO to your Algorand wallet, and then use that wallet on the Sealed top-up page. Examples of large exchanges users may check for ALGO availability include **Coinbase**, **Kraken**, and **Binance**; availability depends on country, account status, and exchange policy. CoinGecko currently lists Coinbase Exchange, Kraken, and Binance among the largest tracked exchanges by trust score/reserves, while Algorand’s own onboarding page also mentions Coinbase and Binance as CEX examples for funding an Algorand wallet.

This step is only needed for users who want to generate credit codes through the top-up page. If free access is available through the [**official Sealed Discord channel**](https://discord.gg/GUKD8E6xCx), you may be able to claim access without completing the ALGO top-up flow.

### Step 5. Open the top-up page and connect your wallet

The top-up process starts on the Sealed top-up page:

[sealed.channel/top-up](https://sealed.channel/topup)

This page is used to generate credit codes that can later be activated inside the Sealed app. To create those codes, the page needs to connect with an external Algorand wallet, such as **Lute**, **Pera**, or **Defly**. This wallet is used only to approve the top-up transaction. Connecting it allows the page to prepare the transaction, but it does not give Sealed control over the wallet or its funds. The transaction is submitted only after the user confirms it directly inside their wallet application.

<figure><img src="/files/hqubofBVWWX6uZycu7bV" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">choose wallet you want to connect and after that click "connect wallet"</p>

<figure><img src="/files/kuUX1FlciW2TtYqNkb16" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">sign connection in your wallet, if it is not confirmed, error will occur</p>

### Step 6. Deposit Algo

Credit codes are created by depositing ALGO into the Sealed top-up smart contract. The top-up page explains how the process works before the user continues, because the generated codes are private access materials that must be saved safely. The user chooses how many standard credit codes they want to generate, and the connected Algorand wallet is used to confirm the deposit transaction. Each code represents the same standard credit package, which helps keep the credit system more consistent and supports the privacy model behind top-ups. Once the deposit is confirmed on the network, the top-up page generates the credit code or codes connected to that deposit. These codes are later activated inside the Sealed app.

<figure><img src="/files/7PJN27B5kSBuXrcE544E" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">read instruction carefully and click "continue"</p>

<figure><img src="/files/IPtizcKWXy50wxaTWoPu" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">type amount of codes you want to generate</p>

<figure><img src="/files/NDP0oxbXSbsb7ilLApOx" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">click (top up) if it is not green, you lack enough Algo in your wallet</p>

<figure><img src="/files/aK6iXr3I9DajdUkWofNf" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">confirm transaction in your wallet, if transaction is not cofirmed "error" will occur</p>

### Step 7. Receive codes

After the deposit is confirmed, the top-up page generates the credit code or codes connected to that deposit. These codes are required to activate credits inside the Sealed app, so they should be saved before finishing the process. Codes work like private access materials. Anyone who has a valid code may be able to activate the credits connected to it, so they should not be shared unless the user intentionally wants someone else to use them. Sealed cannot resend lost codes through a traditional account system, so the user is responsible for storing them safely.

<figure><img src="/files/X1gxDYNtdstjaB0uz0Ep" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">read important information carefully and mark "I understand" boxes, after that click "continue"</p>

<figure><img src="/files/lYtlFfuuHu0pWAgnr5Sd" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">copy codes by clicking button under "action" column, download them via clicking "download codes" button, or save them "on paper" after that click "finish"</p>

<figure><img src="/files/IQy6XhryIufOSttZMq68" alt="" width="563"><figcaption></figcaption></figure>

<p align="center">read information carefully and click "finish anyway" or click "back" in order to copy codes once again</p>

### Step 8. redeem credits

Credit codes are not used directly on the website after they are generated. They must be redeemed inside the Sealed app, because the app needs to connect the credits with the user’s local Sealed identity. This step makes the credits available for normal app usage, such as sending messages or using supported features. It also allows the local Sealed wallet to work without holding ALGO directly, because the required network costs are handled through the credit system in the background.

<figure><img src="/files/itfBaiLxtXReanIwvQ5Y" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">go to "settings"</p>

<figure><img src="/files/cxUur2xxHCHgbi1y21tE" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">find redeem field and type received code if everything is fine you should see available credits above, otherwise error pop-up will occur</p>

### Step 9. Start a conversation

After credits are redeemed, the app has everything it needs to let the user send a message. The next step is choosing who the message should be encrypted for. In Sealed, the recipient can be found by wallet address, and if the recipient has set a nickname, discovery can be easier through the search interface. This step is necessary because Sealed must know which recipient should be able to decrypt the message. Once the recipient is selected, the app can prepare the correct encryption path, protect the message locally, and send only encrypted data through Sealed’s delivery flow. The recipient’s app then detects the message and decrypts it on their device.

<figure><img src="/files/TIVh37B7fYhcN4VTfB6d" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">click search bar on the top</p>

<figure><img src="/files/gQYD6tu9GZRgUnNqecD8" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">type receiver's wallet address or nickname and after that click profile</p>

<figure><img src="/files/tlcUn7EE25cYUpOwHNTh" alt="" width="250"><figcaption></figcaption></figure>

<p align="center">type a message and click send button after that</p>

<p align="center">That's it, now the receiver get the message, so you can wait for a response</p>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sealed.channel/introduction/step-by-step.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
