# Welcome to Sia

Sia is the world's safest cloud storage, by design—a purely decentralized peer-to-peer network with **no central access point**, **no gatekeepers**, and **no insanely expensive hardware requirements**. It offers a radically new level of **privacy**, **security**, **performance** and **pricing** — all through a unique **nonprofit model**.

So whether you’re a developer looking to build on an open-source and decentralized cloud platform, or a user ready to take control of your data, you’re in the right place!

Our documentation is your comprehensive guide and single source of truth for learning how to interact with the Sia Network.

## Get Involved

### Contribute to Docs

Keeping our docs up to date is important, and we welcome community contributions—whether suggesting edits or adding new articles.

1. To submit edits via GitHub, click dropdown in the top-right corner and select **Edit on GitHub**. You’ll be taken directly to the corresponding page on GitHub.
2. Next, click **Edit the file** to edit the markdown file.

![Editing the markdown file via Github](/files/MyuTVqyEAGqUAoAV1InW)

{% hint style="info" %}
You can toggle the **Preview** button to see how the markdown will be formatted.
{% endhint %}

3. After editing the markdown, click Commit Changes (top right) and:

* Choose **Create a new branch for the commit, and start a pull request**.
* Add a clear commit title.
* Briefly describe your changes in the extended description, including relevant links if applicable.

![Committing your changes on GitHub](/files/LIFVsABiRcdTEOISlqYB)

4. Once you're satisfied, click **Commit Changes** to submit your edits.

{% hint style="success" %}
Congratulations! You’ve successfully submitted your edits via GitHub. Your edits will be reviewed by The Sia Foundation.
{% endhint %}

### Contribute to Sia

Our core team of engineers at The Sia Foundation believes that principles are everything—in **Systems Creativity**, **Technical Integrity**, and **Personal Agency**. As a 100% open-source project, we've had countless individuals contribute to the core code and to apps built on top of the network. These contributions **invest in and strengthen the Sia cloud storage network, engage the Sia community, and educate the public about the urgency of data privacy and ownership**.

Check out our [GitHub](https://github.com/SiaFoundation) to follow along or contribute code to help further our mission.

### Join our Community

Join our [Discord](https://discord.com/invite/sia)—a hub for developers, users, and anyone curious about decentralized cloud storage, privacy, and security. It’s the place for support, collaboration, and updates. Want to contribute? Head to `#contributors` to say hi, ask questions, or share your Sia-related code or app.

{% hint style="info" %}
**Need Assistance?**

Join the `#help` channel on our [Discord](https://discord.com/invite/sia), where the community is always ready to help.

You can also [email us](mailto:hello@sia.tech), and we’ll get back to you as soon as possible.
{% endhint %}


# Zen Testnet

The Sia Foundation has made a test environment available for users wishing to test hardforks, software developments, and integration within the Sia ecosystem via the Zen Testnet.

The Zen Testnet offers a secure environment to experiment with `renterd`, `hostd`, and `walletd`and explore the capabilities of Siacoin without the risk of losing real Siacoins, but also with no real-world value.

## Running testnet

Running our software on the testnet is similar to running it on the mainnet. First, download the binary for [renterd](https://sia.tech/rent), [hostd](https://sia.tech/host), or [walletd](https://sia.tech/wallet) from our official website. Then, follow the same setup instructions for [renterd](/store-your-data/setting-up-renterd), [hostd](/provide-storage/setting-up-hostd) or [walletd](/wallet/setting-up-walletd), up until the point of running the software.

For Linux or macOS users, then simply run the software with the testnet runtime flag:

```
renterd --network=zen
hostd --network=zen
walletd --network=zen
```

Windows users can run the executable with a similar flag:

```
renterd -network=zen
hostd -network=zen
walletd -network=zen
```

## Funding your testnet address

With the availability of zSC, the [Zen Testnet faucet](https://zen.siascan.com/faucet) provides a convenient way to acquire zSC by simply providing your Sia wallet's address.

Once on the page, enter a Sia wallet address of either `renterd`, `hostd`, or `walletd` , then enter the amount of Zen Siacoins (zSC) you wish to fund that address with.

<figure><img src="/files/dBe4CkLdfJHE4pvjEXrA" alt=""><figcaption><p>Zen Testnet Faucet funding</p></figcaption></figure>

{% hint style="info" %}
It might take a minute or two for your wallet to be funded and for the transaction to appear in its transactions list.
{% endhint %}

## Block Explorer

Our web-based block explorer and analytics tool is tailored for the Sia network. This comprehensive platform offers users a wide range of insights into the intricacies of the Siacoin network.

Visit [SiaScan Zen](https://zen.siascan.com), our block explorer, to gain valuable insights into the testnet's activity, view transaction history, and monitor block confirmations.

<figure><img src="/files/UHvQc5AJLyAGxntwo8Kv" alt=""><figcaption><p>Siascan Zen</p></figcaption></figure>


# Learn about Sia

The Sia Foundation is a non-profit organization committed to advancing and enhancing the Sia decentralized storage network. Our vision revolves around a future where individuals entirely own their data. This future is devoid of walled gardens, vendor lock-in, or the risk of a single provider accessing your information or holding your files hostage. Sia paves the way for this future by establishing a trustless marketplace where peers can buy and sell cloud storage directly.

Sia is a decentralized cloud storage platform secured by blockchain technology. The Sia storage network leverages underutilized hard drive capacity worldwide to create a data storage marketplace that is more reliable and cheaper than traditional cloud storage providers. Sia has its blockchain and a utility token that powers it – the Siacoin (SC).

Privacy, high performance, and robust engineering principles are at the heart of Sia's philosophy. Our primary objective is to bring the power of decentralization to data storage. We aim to empower you with complete, exclusive control over your data, ensuring it remains safeguarded against theft, censorship, and unwarranted access. With Sia, your data truly belongs to you, and our documentation is here to guide you in harnessing the capabilities of our software suite.

## Genesis of Sia

Sia was conceived at HackMIT in 2013 by David Vorick and Luke Champine. The founders formed Nebulous Labs and later Skynet Labs to develop Sia. The Sia Foundation was created as a non-profit dedicated to leading core development into the future of decentralized storage.

## ELI5: Understanding how Sia works

When a file is uploaded to Sia, it undergoes a process of sharding, encryption, and global distribution. Renters are responsible for uploading files, while storage providers store these files, and the entire operation is automated. After uploading your files, the network guarantees continuous accessibility by creating multiple copies. Furthermore, storage providers are never granted access to these files as they only receive encrypted shards of the complete files.

Your data remains genuinely private and is distributed across the globe, eliminating any single point of failure and guaranteeing the utmost uptime reliability. As you hold the encryption keys, you retain full ownership of your data. No external entity can access or exert control over your files.

Data cannot be subject to de-platforming, and your files are impervious to hacking attempts.

### **Storing Data on Sia**

Uploading files to Sia automatically designates you as a renter within the network. As a renter, you can upload your files to storage providers—other users who have allocated their storage capacity.

The term 'renter' is employed because Sia initiates contracts with these storage providers. These contracts specify the quantity of data to be stored, the duration of storage, and the associated cost.

### Providing Storage on Sia

Providing storage on Sia signifies your commitment to providing surplus storage capacity to the network. By doing so, you actively contribute to the core principle of safeguarding data in the hands of its rightful owners—the renters.

In return for your providing your storage, you earn Siacoin, the cryptocurrency fueling the Sia network. Siacoin can be utilized to acquire your own storage space or exchange for other cryptocurrencies or fiat currencies on various crypto exchanges.

Storage providers play a pivotal role within the ecosystem, serving as indispensable contributors to the decentralized network that forms the heart of Sia.

## Core software

The Sia Foundation has developed a scalable, high-performing, easy-to-integrate software suite.

### renterd

`renterd` aims to serve the needs of everyday users -- who want a simple interface for storing and retrieving their data -- and developers -- who want a powerful, flexible, and reliable API for building apps on Sia.

### hostd

`hostd` is designed to enhance the experience for storage providers within the Sia network. Tailored for individual and large-scale storage providers, `hostd` boasts a user-friendly interface and a robust API, empowering providers to manage their storage resources and revenue efficiently.

`hostd` incorporates an embedded web UI, simplifying deployment and enabling remote management capabilities, ensuring a smooth user experience across various devices.

### walletd

`walletd` serves as a watch-only wallet server within the Sia ecosystem. It operates without access to private keys, solely managing addresses derived from those keys. Its primary function is to monitor the blockchain for events about specific addresses.

The server maintains knowledge of spendable outputs within the wallet, enabling it to aid in creating and broadcasting transactions that utilize these outputs. However, it is crucial to note that the exclusive task of signing transactions remains the client's responsibility.

## We're here for good!

Not only is your data secure when using Sia, but you can also rest assured that Sia is here to stay. Sia has been operating since 2015, with its software downloaded over a million times. Moreover, thousands of terabytes of data have been uploaded to the network since its inception. Even if the Sia development team were to step away tomorrow, the network can continue to function indefinitely.

Sia has a thriving community of renters, storage providers, miners, and data storage enthusiasts and an ecosystem of open-source software and commercial data storage platforms. Discover the community ecosystem on our [official website](https://sia.tech/community-ecosystem).


# Learn about Siacoins

## Siacoins: The Power Behind Sia Network

Siacoins (SC) are the utility tokens powering the Sia network and are essential for any activity on the network. Siacoins serve a singular purpose – facilitating network operations – yet are utilized in various ways, such as:

* Uploading files to Sia, you use Siacoins to pay for storage.
* Earning Siacoins for storing others' data.
* Transferring by sending them to others or receiving them at your wallet address.

Siacoins can be securely stored using our [official software](https://sia.tech/software/walletd) on a hardware or paper wallet. Initially, obtaining Siacoins is simple: having someone send them to you, purchasing them on an exchange, or engaging in mining activities.

## How to obtain Siacoins

Whether you want to upload files to the decentralized cloud or lend extra storage space to the network, you need Siacoins to use Sia. Siacoins can be sent to you once you make a Sia wallet address, or you can mine them. Otherwise, you'll need to buy them.

### Buy from an exchange

Siacoins are listed on several prominent exchanges, and you can access the complete list of exchanges where Siacoins are available on our [official website](https://sia.tech/community?category=exchanges). Purchasing Siacoins from an exchange typically offers competitive prices but may involve a relatively steep learning curve for new users.

{% hint style="info" %}
Some exchanges support direct fiat (local currency) to Siacoin purchases, but others require you to buy Bitcoins, Ethereum, or other cryptos to make your purchase. Please visit the exchange's official website to find out more.
{% endhint %}

{% hint style="warning" %}
For those new to cryptocurrency purchases, it's advisable to begin with a modest amount until you feel confident and familiar with the process.
{% endhint %}

Exchange wallets may not always be the ideal choice for storing cryptocurrencies and will not serve the intended purpose of using Sia effectively. Now that you have Siacoins, you're able to transfer them to either [`renterd`](/store-your-data/transferring-siacoins), [`hostd`](/provide-storage/transferring-siacoins) or [`walletd`](/wallet/transferring-siacoins) Sia wallet address.

### Receiving from others

By sharing your generated Sia wallet address, Siacoins can be sent to you in a few minutes. Ensure the full address is without any extra spaces, and provide this address to whomever you're receiving the funds from.

You can also receive Siacoins, share your QR code for others to scan, and send funds to your wallet.

<figure><img src="/files/pgnHkb2VsP7SPu1QzJAE" alt=""><figcaption><p>renterd Sia wallet address and QR code</p></figcaption></figure>

### Mining on the network

\
When you mine on a cryptocurrency network, you contribute computing power to help process and verify transactions. Miners are the backbone of the network, verifying the integrity of the blockchain. On Sia, miners are rewarded with Siacoins for their services.

Our [official website](https://sia.tech/community-ecosystem?software=mining_pools) shows a list of Siacoins mining pools. Please see their documentation to get started.

#### The Block Rewards

The block reward is the miner's incentive to contribute their computing power and electricity costs to the network. When a block is successfully verified or solved, an amount of Siacoins is paid out to those who mined the block.

Unlike Bitcoin and other cryptocurrency blockchains, the Sia block reward never stops and gives infinite rewards. This means miners will always be incentivized to be part of Sia. Once the block reward reaches 30,000 coins, it stays there forever.

{% hint style="info" %}
When the Sia network launched, the block reward was 300,000 Siacoins. This decreases by one every block, with a floor at 30,000 – reached at block 270,000 (300,000 - block height).
{% endhint %}

#### Proof-of-work

The Sia blockchain operates on Proof-of-Work, ensuring the integrity of transactions and contracts. Whether used for power cryptocurrencies like Bitcoin or utility and smart storage contracts like Sia, trust is inherent in a blockchain's immutability. With no central authority to oversee transactions or contract validity, the assurance comes from the blockchain itself. Proof-of-Work serves as a robust safeguard, deterring any attempts to alter the history of the blockchain through significant effort and expense.


# Your Sia Seed

## About the Seed

Your Sia Seed also holds the key to your Siacoin (SC) balance access to your files. It is the cornerstone of your Sia journey and the most critical information in your entire Sia experience.

* Sia is using BIP 39 with 128 bits of entropy and is made up of 12 words to generate your Seed.
* Your Seed is generated when you first create your Siacoin wallet in `renterd`, `hostd` or `walletd`.
* You can always recover your Siacoin balance using your Sia Seed.

## Keeping your Seed safe

Ensuring the safety of your Sia seed is of utmost importance. It's crucial to follow the proper procedures for securely storing it. Like any other valuable digital information, never rely on its safety unless you have multiple backups.

* **Use a Hardware Wallet:** Hardware wallets are considered one of the most secure methods for storing seeds, as they are offline and less susceptible to hacking.
* **Create a Paper Backup:** Write down your Seed on paper and store it securely. Make multiple copies and keep them in different safe locations.
* **Use a Strong Password:** Encrypt your Seed with a robust and unique password and store it separately from the Seed.
* **Use a Biometric:** Keep your Seed in a biometric secure app that relies on Opt into using unique physical identity verification.
* **Memorize Your Seed:** If possible, memorize your Seed. However, ensure it's something you can remember accurately without writing it down.

{% hint style="warning" %}
An incorrectly written word or mistyped letter renders the entire Seed invalid, making it impossible to access your wallet or retrieve your Siacoins. Store it precisely as it was initially provided to you.
{% endhint %}

{% hint style="danger" %}
**Lost or Stolen**

If you lose your Seed, your Siacoin balance will become **permanently** inaccessible since Sia operates as a fully decentralized platform.

**The Sia development team cannot access your Seed under any circumstances.**

In the unfortunate event that someone steals your Seed, they can easily abscond with your Siacoin balance. Thus, exercise utmost caution when sharing your Seed with any third party you do not fully trust.
{% endhint %}


# About Storing Data on Sia

Storing data on Sia means you upload files on the Sia storage network to other users who have made their space available, called **hosts**. The term **renter** is used to describe an individual or entity that creates storage contracts with **hosts**:

* To store a certain amount of data.
* For a certain period.
* For a certain amount of Siacoin (SC).

## The Marketplace

\
The Sia storage network is an open marketplace to connect consumers with providers for their data. The cost associated with this storage is competitively determined by hosts and renters within the market. If hosts discover that reducing prices allows them to secure more data for storage, they are inclined to do so. Similarly, if renters are willing to pay higher rates for storage with high-quality hosts, those hosts may opt to increase their prices.

The storage price is denominated in Siacoins, and you will need Siacoins to form storage contracts and upload data. Hosts have the autonomy to establish their prices, fostering a competitive marketplace where top-quality and dependable hosts vie for storage contracts from those seeking to store data. Network pricing averages around **$3 per terabyte per month,** including 3x redundancy.

## **About contracts**

Storage contracts are one of the most essential features of the Sia network. They allow the entire Sia ecosystem to work trustlessly – they form blockchain-enforced agreements between you and your storage providers that are automatically resolved when each party meets their obligation. In other words, they let you form contracts with people you don't know to store your data.

* **Hosts** are responsible for data storage and receive compensation only after demonstrating successful storage for the agreed-upon period.
* **Renters** are tasked with paying the host and are charged solely for the data storage they utilize.

By default, storage contracts last three months and automatically form when you upload your files.

## **Fees**

As a renter, you pay for the cost of storing data on the network. There are also some other fees that you're responsible for, such as:

* **Contract Formation Fees** – Creating storage contracts on the blockchain requires a transaction, and minimal fees are associated with this. Contract formation fees are one-time per contract and usually cost only a handful of Siacoins.
* **Bandwidth Fees** – You pay for the bandwidth you use to upload or download files. This can also include wear and tear fees set by the host to help pay for their physical storage devices.

## **Autopilot and your Allowance**

By default, the Sia rentering software `renterd` runs with a module called `autopilot` enabled. `autopilot` is the software agent that automatically forms contracts based on your configured parameters. The most important parameter is your allowance; setting your allowance is the first thing you'll do when starting to store data on Sia.

The allowance tells Sia how much Siacoin you're willing to spend on storage space and makes sure more than this amount is not deducted from your wallet. Setting your allowance too low might mean that Sia can't upload all your data or cannot form contracts with enough hosts. You can raise or lower your allowance at any time.

Setting your allowance happens before uploading files, and Sia automatically forms the contracts it needs with new hosts so that you can upload when you're ready. You might see multiple transactions hit your wallet right after setting your allowance – this is your Siacoins getting set aside with each host. Don't worry - you'll get whatever Siacoins you don't spend back at the end of the contract. With Sia, you only ever pay for what you use.

{% hint style="info" %}
**Getting Started with `renterd`**

Start storing data on Sia by downloading the official [renterd software](https://sia.tech/rent) and exploring our step-by-step [Setting up renterd](/store-your-data/setting-up-renterd) guide.
{% endhint %}


# Installing renterd


# macOS

This guide will walk you through setting up `renterd` on macOS. At the end of this guide, you should have:

* Installed Sia `renterd` software
* Created a `renterd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `renterd` it is recommended your system meets the following requirements:

* **System Updates:** Ensure that your macOS is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Software Requirements:** Before installing `renterd`, you will need to install the [Homebrew](https://brew.sh) package manager. This will allow you to install and upgrade `renterd` easily.
* **Network Access:** `renterd` needs a stable internet connection and open network access in order to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

***

## Installing `renterd`

Press `CMD + Space` to open Spotlight search and open a `terminal`.

![](/files/0PCwVgDn4EuA09EHxeoA)

{% hint style="warning" %}
Before you install `renterd`, make sure you have the [Homebrew](https://brew.sh) package manager installed.
{% endhint %}

Once the Terminal loads, use `brew` to install `renterd`:

```console
brew install siafoundation/sia/renterd
```

![](/files/PbCXqqTCiKi5MKbUylOt)

To confirm `renterd` has been installed, run the following:

```console
renterd version
```

![](/files/mgCB0RRVxrbtPopzJv4O)

***

## Configuring `renterd`

Now that you have `renterd` installed, you will need to create a seed phrase and admin password. To launch the built-in configuration wizard, run the following:

```console
mkdir "$HOME/Library/Application Support/renterd"
cd "$HOME/Library/Application Support/renterd"
renterd config
```

Once the configuration wizard loads, you will first be asked to enter a seed phrase. If you do not already have one, type `seed` to generate a new one. For the purpose of this guide, we will create a new seed phrase.

![](/files/sOxrL8qe2b1vpZQdKNlY)

Next, you will be asked to create an admin password. This will be used to unlock the `renterd` web UI.

![](/files/fgHDSeuK1MqRS9EPC2sr)

You will now be asked if you would like to configure `renterd`'s S3 settings. If you do not intend to use S3, you can type `no` to skip this step. For the purpose of this guide, however, we will type `yes` and configure the S3 endpoint.

![](/files/PE8FAr5lEX6fEZkFrYU3)

Next, you will be asked to configure the S3 address. If you would like to use something other than the default, you can enter it now. Otherwise, hit enter to use the default port `8080`.

![](/files/2wOkEZLd45OLQcvlsSjb)

You will now be asked to generate a new key pair. Type `auto` and hit enter to have a key pair generated automatically for you.

![](/files/1SKsSKDHXumFqePSdF1M)

Finally, you will be asked if you would like to configure `renterd`'s advanced settings. Type `no` and hit enter to exit the configuration wizard.

![](/files/GhFkjV2s2gaRoA0sXVSV)

***

## Running `renterd`

Run the following command to start `renterd`.

```console
cd "$HOME/Library/Application Support/renterd"
renterd
```

![](/files/HEoD1jUuQi580nF69Dqs)

You can now access the Sia network using the `renterd` web UI by opening a browser and going to [http://localhost:9980](http://localhost:9980/).

![](/files/UdEEXNNPBk7eJ10UIdOR)

{% hint style="success" %}
Congratulations, you have successfully set up `renterd`.
{% endhint %}

***

## Updating

New versions of `renterd` are released regularly and contain bug fixes and performance improvements.

To upgrade your `renterd` to the newest version, make sure you have shut down `renterd` and then run the following:

```console
brew upgrade siafoundation/sia/renterd
```

![](/files/PLNySeQkzZvF1VF4Sb1k)

You can confirm you have upgraded to the latest version of `renterd` using the following command:

```console
renterd version
```

![](/files/mgCB0RRVxrbtPopzJv4O)

{% hint style="success" %}
Congratulations, you have successfully updated your version of `renterd`!
{% endhint %}


# Linux

`renterd` is designed to be run as a background service to store and retrieve data on the Sia network. This guide will walk you through the process of installing and configuring `renterd` on a Linux machine. Linux is the recommended operating system for running `renterd` because of its stability. We recommend using a Debian-based distribution, such as Ubuntu or Debian, but `renterd` should work on any modern Linux distribution. The setup guides in these docs are primarily focused on installing using `apt`, but `renterd` can also be installed as a binary manually or run in a Docker container.

* [Debian](/store-your-data/setting-up-renterd/linux/debian)
* [Ubuntu](/store-your-data/setting-up-renterd/linux/ubuntu)
* [Other Distros](/store-your-data/setting-up-renterd/linux/other)


# Debian

This guide will walk you through setting up `renterd` on Linux. At the end of this guide, you should have the following:

* Installed the `renterd` software
* Created a `renterd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `renterd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `renterd` is supported on the following Debian versions:
  * Trixie (Debian 13)
  * Bookworm (Debian 12)
  * Bullseye (Debian 11)
* **System Updates:** Ensure that Debian is up to date with the latest system updates, these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Network Access:** `renterd` needs a stable internet connection and open network access in order to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

## Install `renterd` Using the `apt` repository

Before you install `renterd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `renterd` using `apt`.

{% hint style="warning" %}
Your system will need to have `curl` installed as well. You can check if it is installed by running `curl --version`. If it is not installed, you can install it by running `sudo apt update && sudo apt install curl`
{% endhint %}

**1. Set up the Sia `apt` repository by copying and pasting the following commands into your terminal:**

```sh
sudo curl -fsSL https://linux.sia.tech/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/siafoundation.gpg
sudo chmod 644 /usr/share/keyrings/siafoundation.gpg
echo "deb [signed-by=/usr/share/keyrings/siafoundation.gpg] https://linux.sia.tech/debian $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/siafoundation.list
sudo apt update
```

{% hint style="info" %}
If you use a derivative distro, such as Kali Linux, you may need to substitute the part of this command that prints the version codename with the corresponding Debian release:

```sh
$(. /etc/os-release && echo "$VERSION_CODENAME")
```

Replace this part with the codename of the corresponding Debian release, such as bookworm.
{% endhint %}

![](/files/tYm9sViqTltF0kAomoS8)

**2. Install `renterd`**

```sh
sudo apt install renterd
```

![Installing renterd using apt install command on Debian](/files/fThBrpyuMbVNuQPW4iLd)

**3. Verify `renterd` was installed successfully**

Run the following command to see the version of `renterd` that was installed:

```sh
renterd version
```

![](/files/MCPRuzbpdHZrU4gv3IQ6)

## Configure `renterd`

After installing `renterd`, you will need to configure it with a wallet seed and a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo renterd config
```

This will start an interactive configuration process. You will be asked to generate or recover a wallet seed and set a password to unlock the web interface.

{% hint style="info" %}
You will not see anything when you type in your seed phrase or unlock password. Press enter after typing each one.
{% endhint %}

![](/files/QgtmWjAXFiOndksUpxAZ)

## Start `renterd`

Now that you have installed and configured `renterd`, you can start it by running the following command:

```sh
sudo systemctl enable --now renterd
```

## Verify `renterd` has started successfully

Run the following command to verify the `renterd` service has started successfully:

```sh
sudo systemctl status renterd
```

![](/files/iBxWptEY83vhywOJ2lAq)

## Updating `renterd`

New versions of `renterd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop the `renterd` service.

```sh
sudo systemctl stop renterd
```

2. Upgrade `renterd` using the `apt` package manager.

```sh
sudo apt update
sudo apt upgrade renterd
```

3. Start `renterd` service.

```sh
sudo systemctl start renterd
```

## Next Steps

Now that you have `renterd` installed and running, you can start using it to store and retrieve data on the Sia network. You can access the web interface by navigating to <http://127.0.0.1:9980> in your web browser. If you installed `renterd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

* [About Storing Your Data](/store-your-data/about-renting)
* [Transferring Siacoins](/store-your-data/transferring-siacoins)
* [Managing Your Files](/store-your-data/renting-storage/managing-your-files)


# Ubuntu

This guide will walk you through setting up `renterd` on Linux. At the end of this guide, you should have the following:

* Installed the `renterd` software
* Created a `renterd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `renterd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `renterd` is supported on the following Ubuntu versions:
  * Plucky (Ubuntu 25.04)
  * Noble (Ubuntu 24.04)
  * Jammy (Ubuntu 22.04)
* **System Updates:** Ensure that Ubuntu is up to date with the latest system updates, these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Network Access:** `renterd` needs a stable internet connection and open network access in order to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

## Install `renterd` Using the `apt` repository

Before you install `renterd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `renterd` using `apt`.

{% hint style="warning" %}
Your system will need to have `curl` installed as well. You can check if it is installed by running `curl --version`. If it is not installed, you can install it by running `sudo apt update && sudo apt install curl`
{% endhint %}

**1. Set up the Sia `apt` repository by copying and pasting the following commands into your terminal:**

```sh
sudo curl -fsSL https://linux.sia.tech/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/siafoundation.gpg
sudo chmod 644 /usr/share/keyrings/siafoundation.gpg
echo "deb [signed-by=/usr/share/keyrings/siafoundation.gpg] https://linux.sia.tech/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/siafoundation.list
sudo apt update
```

![](/files/DwXDGno1N5GbZ2mp5vRN)

**2. Install `renterd`**

```sh
sudo apt install renterd
```

![asdd](/files/XHPfo74czokrWZZkH67Q)

**3. Verify `renterd` was installed successfully**

Run the following command to see the version of `renterd` that was installed:

```sh
renterd version
```

![](/files/SHWnYC026Xx0YxDosFXs)

## Configure `renterd`

After installing `renterd`, you will need to configure it with a wallet seed and a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo renterd config
```

This will start an interactive configuration process. You will be asked to generate or recover a wallet seed and set a password to unlock the web interface.

{% hint style="info" %}
You will not see anything when you type in your seed phrase or unlock password. Press enter after typing each one.
{% endhint %}

![](/files/GBly1nFQDCMMJgjG16vM)

## Start `renterd`

Now that you have installed and configured `renterd`, you can start it by running the following command:

```sh
sudo systemctl enable --now renterd
```

## Verify `renterd` has started successfully

Run the following command to verify the `renterd` service has started successfully:

```sh
sudo systemctl status renterd
```

![](/files/OIMXyL3AaqRNy4v0vAx5)

## Updating `renterd`

New versions of `renterd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop the `renterd` service.

```sh
sudo systemctl stop renterd
```

2. Upgrade `renterd` using the `apt` package manager.

```sh
sudo apt update
sudo apt upgrade renterd
```

3. Start `renterd` service.

```sh
sudo systemctl start renterd
```

## Next Steps

Now that you have `renterd` installed and running, you can start using it to store and retrieve data on the Sia network. You can access the web interface by navigating to <http://127.0.0.1:9980> in your web browser. If you installed `renterd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

* [About Storing Your Data](/store-your-data/about-renting)
* [Transferring Siacoins](/store-your-data/transferring-siacoins)
* [Managing Your Files](/store-your-data/renting-storage/managing-your-files)


# Other

This guide will walk you through setting up `renterd` on Linux. At the end of this guide, you should have the following:

* Installed Sia `renterd` software
* Created a `renterd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `renterd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `renterd` is supported on the following Linux versions:
  * Trixie (Debian 13)
  * Bookworm (Debian 12)
  * Bullseye (Debian 11)
  * Plucky (Ubuntu 25.04)
  * Noble (Ubuntu 24.04)
  * Jammy (Ubuntu 22.04)
* **System Updates:** Ensure that your Linux system is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Network Access:** `renterd` needs a stable internet connection and open network access in order to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

***

## Installing `renterd`

Open a Terminal using `Crtl + Alt + T`.

{% hint style="info" %}
If you cannot open a `Terminal` using the above method, try one of the other methods [listed here](https://www.geeksforgeeks.org/how-to-open-terminal-in-linux/).
{% endhint %}

Once the Terminal loads, run one of the following commands to download and install the latest version of `renterd` to your `/usr/local/bin` directory.

{% tabs %}
{% tab title="AMD64" %}

```console
wget https://sia.tech/downloads/latest/renterd_linux_amd64.zip &&\
unzip -j renterd_linux_amd64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd &&\
rm -fr renterd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
wget https://sia.tech/downloads/latest/renterd_linux_arm64.zip &&\
unzip -j renterd_linux_arm64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd &&\
rm -fr renterd_linux_arm64.zip
```

{% endtab %}

{% tab title="Zen AMD64" %}

```console
wget https://sia.tech/downloads/latest/renterd_zen_linux_amd64.zip &&\
unzip -j renterd_zen_linux_amd64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd_zen &&\
rm -fr renterd_zen_linux_amd64.zip
```

{% endtab %}

{% tab title="Zen ARM64" %}

```console
wget https://sia.tech/downloads/latest/renterd_zen_linux_arm64.zip &&\
unzip -j renterd_zen_linux_arm64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd_zen &&\
rm -fr renterd_zen_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You’ll be prompted to authorize this action by providing your system password. You will not see anything when you type this in. Press `Enter` once you have entered your password.
{% endhint %}

***

## Creating a wallet

`renterd` uses BIP-39 12-word recovery phrases. To generate a new wallet recovery phrase, run the following command:

{% tabs %}
{% tab title="Mainnet" %}

```console
renterd seed
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
renterd_zen seed
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
A new 12-word recovery phrase will be generated. Make sure to store it in a safe place, as you will need this phrase to recover your wallet.
{% endhint %}

***

## Setting up a system user

Now that you have a recovery phrase, we will create a new system user and `systemd` service to run `renterd` securely on startup.

First, we will create a new system user with `useradd` and disable the creation of a home directory. This is a security precaution that will isolate `renterd` from any unauthorized access to our system. We will then use `usermod` to lock the account and prevent anyone from logging in under the account.

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo useradd -M renterd &&\
sudo usermod -L renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo useradd -M renterd_zen &&\
sudo usermod -L renterd_zen
```

{% endtab %}
{% endtabs %}

Now, we will create a new folder under `/var/lib/` titled `renterd` and give it the appropriate permissions. This folder will be utilized specifically to store data related to the `renterd` software. Open the Terminal Emulator and run the following commands:

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo mkdir /var/lib/renterd &&\
sudo chown renterd:renterd /var/lib/renterd &&\
sudo chmod o-rwx /var/lib/renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo mkdir /var/lib/renterd_zen &&\
sudo chown renterd_zen:renterd_zen /var/lib/renterd_zen &&\
sudo chmod o-rwx /var/lib/renterd_zen
```

{% endtab %}
{% endtabs %}

***

## Configure your `renterd.yml` file

To begin, create a file name `renterd.yml` file under `/var/lib/renterd/`

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo nano /var/lib/renterd/renterd.yml
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo nano /var/lib/renterd_zen/renterd.yml
```

{% endtab %}
{% endtabs %}

Now, modify the file to add your wallet seed and API password. The recovery phrase is the 12-word phrase you generated in the previous step. Type it carefully, with one space between each word, or copy it from the previous step. The password is used to unlock the `renterd` web UI; it should be something secure and easy to remember.

{% hint style="warning" %}
`your_access_key` can be anywhere from 16 to 128 characters long, and `your_private_key` must be exactly 40 characters long.
{% endhint %}

```yaml
seed: your seed phrase goes here
http:
  password: your_api_password
autopilot:
  heartbeat: 5m
```

Once you have added your recovery phrase and password, save the file with `ctrl+s` and exit with `ctrl+x`.

***

## Setting up a systemd service

Now we can create a new system service to run `renterd` on startup:

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo nano /etc/systemd/system/renterd.service
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo nano /etc/systemd/system/renterd_zen.service
```

{% endtab %}
{% endtabs %}

Once the editor loads, copy and paste the following into it.

{% tabs %}
{% tab title="Mainnet" %}

```toml
[Unit]
Description=renterd
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/renterd
WorkingDirectory=/var/lib/renterd
Restart=always
RestartSec=15
User=renterd

[Install]
WantedBy=multi-user.target
Alias=renterd.service
```

{% endtab %}

{% tab title="Zen Testnet" %}

```toml
[Unit]
Description=renterd (Zen Testnet)
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/renterd_zen
WorkingDirectory=/var/lib/renterd_zen
Restart=always
RestartSec=15
User=renterd_zen

[Install]
WantedBy=multi-user.target
Alias=renterd_zen.service
```

{% endtab %}
{% endtabs %}

You can now save the file with `ctrl+s` and exit with `ctrl+x`.

***

## Running `renterd`

Now it is time to start the service

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo systemctl start renterd &&\
sudo systemctl enable renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo systemctl start renterd_zen &&\
sudo systemctl enable renterd_zen
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
On newer versions of Linux (Ubuntu 22.04+), `sudo systemctl enable renterd` may not be required as the service will automatically be enabled by default. If you get an error saying the service failed to be enabled due to the file already existing, it is okay to ignore it.
{% endhint %}

Your `renterd` service should now be running. You can check the status of the service by running the following command:

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo systemctl status renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo systemctl status renterd_zen
```

{% endtab %}
{% endtabs %}

If the service was set up correctly, it should say “active (running).”

{% hint style="warning" %}
If for some reason your `renterd` service will not start, use the command `journalctl -fu renterd` to view the console output for more information.
{% endhint %}

You can now access the Sia network using the `renterd` web UI by opening a browser and going to [http://localhost:9980](http://localhost:9980/).

{% hint style="warning" %}
If you are running `renterd` on the Zen Testnet, you will need to access the web UI on port `9880` by going to <http://localhost:9880>.
{% endhint %}

Enter the API `password` you created in your `renterd.yml` to unlock the `renterd` web UI.

{% hint style="success" %}
Congratulations, you have successfully set up `renterd`.
{% endhint %}

***

## Updating

New versions of `renterd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop the `renterd` system service.

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo systemctl stop renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo systemctl stop renterd_zen
```

{% endtab %}
{% endtabs %}

2. Download and install the latest version of `renterd`.

{% hint style="warning" %}
Make sure to install the correct version for your system. If you are unsure which version you should pick, refer to the [Pre-requisites](#pre-requisites) section of this guide for instructions.
{% endhint %}

{% tabs %}
{% tab title="AMD64" %}

```console
wget https://sia.tech/downloads/latest/renterd_linux_amd64.zip &&\
unzip -j renterd_linux_amd64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd &&\
rm -fr renterd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
wget https://sia.tech/downloads/latest/renterd_linux_arm64.zip &&\
unzip -j renterd_linux_arm64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd &&\
rm -fr renterd_linux_arm64.zip
```

{% endtab %}

{% tab title="Zen AMD64" %}

```console
wget https://sia.tech/downloads/latest/renterd_zen_linux_amd64.zip &&\
unzip -j renterd_zen_linux_amd64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd_zen &&\
rm -fr renterd_zen_linux_amd64.zip
```

{% endtab %}

{% tab title="Zen ARM64" %}

```console
wget https://sia.tech/downloads/latest/renterd_zen_linux_arm64.zip &&\
unzip -j renterd_zen_linux_arm64.zip renterd &&\
sudo mv renterd /usr/local/bin/renterd_zen &&\
rm -fr renterd_zen_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You'll be prompted to authorize this action by providing your system password. Type this in and press enter to continue.
{% endhint %}

3. Restart the `renterd` system service.

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo systemctl start renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo systemctl start renterd_zen
```

{% endtab %}
{% endtabs %}

4. Verify the `renterd` service is running correctly.

{% tabs %}
{% tab title="Mainnet" %}

```console
sudo systemctl status renterd
```

{% endtab %}

{% tab title="Zen Testnet" %}

```console
sudo systemctl status renterd_zen
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
If, for some reason, the `renterd` service will not start, use the command `journalctl -fu renterd` to view the console output for more information.
{% endhint %}

{% hint style="success" %}
Congratulations, you have successfully updated your version of `renterd`!
{% endhint %}


# Docker

Setup a new renter using Docker compose

This guide will walk you through setting up `renterd` using Docker compose. At the end of this guide, you should have the following:

* Installed Sia `renterd` software
* Created a `renterd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `renterd` it is recommended your system meets the following requirements:

* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Software Requirements:** Before installing `renterd`, you will need to install [Docker](https://www.docker.com/get-started/).
* **Network Access:** `renterd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

## Create the compose file

Create a new file named `docker-compose.yml`. You can use the following as a template. The `/data` mount is where consensus data is stored and is required.

```yml
services:
  renterd:
    container_name: renterd
    image: ghcr.io/siafoundation/renterd:latest
    restart: unless-stopped
    ports:
      - 127.0.0.1:9980:9980/tcp
    volumes:
      - renterd-data:/data

volumes:
  renterd-data:
```

{% hint style="warning" %}
Be careful with port 9980 as Docker will expose it publicly by default. It is recommended to bind it to 127.0.0.1 to prevent unauthorized access. If you need to expose it to a LAN, ensure the port is not accessible publicly.
{% endhint %}

## Getting the `renterd` image

To get the latest `renterd` image run the following command:

```
docker compose pull
```

## Configuring `renterd`

Now that you have the latest `renterd` image downloaded, you will need to create a seed phrase and admin password. To launch the built-in configuration wizard, run the following:

```console
docker compose run --rm -it renterd config
```

![](/files/sO8YStlsSJGCmTCCwnM9)

When the configuration wizard loads, you will be asked to verify the location of your data directory. Type `no` to keep the default.

![](/files/u4792tRxNFx3UNiS8tt5)

Next, you will be asked to enter a seed phrase. If you already have one that you would like to use, you can enter it now. Otherwise, you can type `seed` to generate a new one. For the purpose of this guide, we will generate a new seed.

![](/files/KKJo2AzdQE9a5l2Gx6Vn)

Next, you will be prompted to enter an admin password. This is used to unlock the `renterd` web UI.

![](/files/aW8xnPfMd1JNYr53JHo6)

Next, you will be prompted to configure s3 settings for `renterd`. This can be configured later on from the web UI if needed. Type `no` and hit enter.

![](/files/qRUJiNsIU2MDk4cY9Bww)

Finally, you will be asked if you want to configure advanced settings for `renterd`. Type `no` and hit enter to exit the configuration wizard.

![](/files/FM7chifVDsMhfU6Kts8V)

## Running `renterd`

Now that you have `renterd` successfully installed and configured, it is time to run it. Use the following command to start `renterd`:

```console
docker compose up -d
```

![](/files/bG5mFvI0AyJRnd8liQOh)

Once `renterd` has successfully started, you can access the web UI by opening your browser and going to [http://localhost:9980](http://localhost:9980/).

![](/files/CBqZPhcBQDNZyezuIXYb)

{% hint style="success" %}
Congratulations, you have successfully set up `renterd`.
{% endhint %}

## Checking the container status

To check the status of the container run:

```
docker ps -a
```

If the container is not running, it will show as `Exited` in the `STATUS` column.

![](/files/H4SR2SV1kEVeMKSKJFCl)

## Checking the logs

To check the container logs run:

```
docker compose logs renterd
```

![](/files/b8pVZoUpx6024A6r7jFI)

## Upgrading `renterd`

It is essential to keep your host up to date. New versions of `renterd` are released regularly and contain bug fixes and performance improvements.

To upgrade your `renterd` to the newest version, simply run the following command:

```console
docker compose pull && docker compose up -d
```

![](/files/DR5oJNGDtSVvANAt9b2m)

{% hint style="success" %}
Congratulations, you have successfully updated your version of `renterd`!
{% endhint %}


# Windows

The `renterd` desktop app provides a user-friendly web UI to start storing data on the Sia network. By the end of this guide, you will have:

* Installed the `renterd` desktop application.
* Created a `renterd` wallet

## Pre-requisites

To run `renterd` on Windows, your system should meet the following specifications:

* **Operating System Compatibility:** `renterd` is only supported by `64-bit` versions of Windows.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in preventing slabs from uploading and can lead to a loss of data.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `renterd`
* **Network Access:** `renterd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

{% hint style="warning" %}
To ensure proper functionality, we are recommending a minimum of 8 GB RAM. This is because `renterd` will keep full slabs in memory when uploading. A full slab is 120MB, and a single upload may hold two or three slabs in memory. However, it is possible to run `renterd` with less RAM than this, and it may work fine depending on the use case.
{% endhint %}

## Download

1. Go to [Sia Software Downloads](https://sia.tech/software-downloads). Here you can find the latest software downloads for all our daemons.

![](/files/crxe89EPEUXaADv7UQ1Q)

2. From the dropdown menu, select **Windows AMD64**.

![](/files/ZhiWpJqNGQ3Uk5wm8o0Y)

{% hint style="warning" %}
Before proceeding with downloading, please read our [Terms of Service](https://sia.tech/terms-of-service). Once you have reviewed and are satisfied, check the box to agree.
{% endhint %}

3. Click **Download** to get the latest `renterd` version for your operating system.

## Run

After downloading the `renterd` desktop application:

1. **Install the app:** Double-click the installer (e.g., `renterd.<version>.Setup.exe`) and follow the prompts. The app installs to the default location.
2. **Launch the app:** After installation, you can delete the installer, and launch `renterd` from the Start Menu like any other program.
3. **Initial setup&#x20;*****(first-time users only)*****:** On first launch, the Welcome to `renterd` window will guide you to generate a recovery phrase (which you can copy and lock) and set a password to access web UI.

![](/files/rkAgVYN47UGrD8PIl1Yh)

4. **Access the Web UI&#x20;*****(first-time users only)*****:** Click **save and start daemon**. It will open automatically, or if not, you can access it at <http://localhost:9980> while `renterd` runs in the background.

{% hint style="warning" %}
When you first run \`renterd\`, Windows Security may ask to allow public and private network access. This is normal—select Allow so \`renterd\` can communicate properly through the firewall.
{% endhint %}

![](/files/nzzncRq7jGywxd6LJ94k)

{% hint style="success" %}
**Success!** `renterd` is now running on your Windows system, and you’re ready to start storing your data on the Sia network.
{% endhint %}

## Configure

You can customize `renterd` through the desktop app, which provides full control over all available settings, from wallet security to network and S3 configurations.

On **Windows**, you can access the `renterd` configurations by going to the taskbar, expanding the up arrow to see hidden icons, and double-clicking the `renterd` app. This will open the configuration window and let you customize its behavior.

![](/files/qwp8xcOj08xuNbaWM5ro)

There are several configurable settings in `renterd`. Below is a breakdown of what each setting does:

| Field                                    | Description                                               |
| ---------------------------------------- | --------------------------------------------------------- |
| Recovery Phrase                          | Your wallet recovery seed                                 |
| Password                                 | Set or update your wallet password                        |
| Automatically open the Web UI on startup | Enable this to launch the interface when `renterd` starts |
| Data Directory                           | Where `renterd` stores its data and config files          |
| HTTP Address                             | Local address for the Web UI                              |
| Log Level                                | Amount of detail in logs                                  |
| S3 Address                               | Local address and port for the S3 interface               |
| S3 Interface                             | Enable or disable the S3 interface                        |
| S3 Disable Auth                          | Enable or disable authentication for S3                   |
| S3 Host Bucket                           | Optional default bucket name for S3 storage               |

{% hint style="warning" %}
Always **save and restart daemon** after making configuration changes to ensure they are applied.
{% endhint %}

You can monitor your node’s activity and track changes by checking the logs. These provide detailed information about the system, network connections, API endpoints, S3 interface, and autopilot operations, helping you understand what your node is doing at any given time.

![](/files/RbworAuQoQFkcW7mz8Rv)

## Update

`renterd` updates regularly with bug fixes, performance improvements, and new features. Updating your node ensures stability and compatibility with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. Simply restart the app to run the latest version.

{% hint style="info" %}
You can always check for the version of the software at the bottom of the app interface.
{% endhint %}


# Transferring Siacoins

Whether you're sending Siacoins to an exchange or receiving from a friend, `renterd` facilitates the transfer of Siacoins (SC) and is easily achieved via the UI.

## Sending Siacoins

Go to `renterd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `renterd`, visit our [Setting up `renterd`](/store-your-data/setting-up-renterd) guide; otherwise, choose from the sidebar **Wallet**.

### Setup your transaction

Click on the `Send` button. Enter the recipient's wallet address and the amount of Siacoins you want to send.

<figure><img src="/files/blzOVsXcppsw2u3CEiQV" alt=""><figcaption><p>Sending Siacoins via renterd</p></figcaption></figure>

{% hint style="warning" %}
Siacoins sent to mistyped addresses or addresses of other types of cryptocurrency can not be retrieved.
{% endhint %}

Click **Generate Transaction.**

### Confirm your info

Next, you need to confirm everything. You'll have a chance to double-check the amount and recipient address. The window will also show you estimated network fees.

<figure><img src="/files/YEM7wQ4smub7hWex4pfQ" alt=""><figcaption><p>Confirming your transaction</p></figcaption></figure>

Click **Setup** to change something. If it's all good, click **Broadcast transaction**.

<figure><img src="/files/A2LkJIaFiQeYRg1F3xZw" alt=""><figcaption><p>Confirmation of a successful transaction broadcasted</p></figcaption></figure>

You'll immediately get a confirmation that your transaction has been successfully broadcasted.

### Checking the status

By looking at the transactions in the **Wallet** section of the UI. It's normal to see **Unconfirmed** as the latest transaction, which means the transaction is on its way but hasn't yet appeared in a block.

<figure><img src="/files/64yL7yiu2j9PkjwdDe6y" alt=""><figcaption><p>renterd wallet transaction list</p></figcaption></figure>

{% hint style="info" %}
The transaction might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.

## Receiving Siacoins

Go to `renterd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `renterd`, visit our [Setting up renterd](/store-your-data/setting-up-renterd); otherwise, choose from the sidebar **Wallet**.

### Sharing the address or QR

Copy and paste your address manually, or use the **Copy** button to the right to ensure you get the full address without any extra spaces, and provide this address to whomever you're receiving the funds from.

You can also receive Siacoins by sharing your QR code for others to scan.

<figure><img src="/files/pgnHkb2VsP7SPu1QzJAE" alt=""><figcaption><p>Getting the address and QR of your renterd wallet</p></figcaption></figure>

You can check the transaction status by going to your **Dashboard** and selecting the wallet you made the transaction with. It's normal for unconfirmed transactions to say **Unknown**. It means the transaction is coming but hasn't yet appeared in a block.

{% hint style="info" %}
The transaction might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.


# Storing Your Data

Uploading files on `renterd` is remarkably straightforward, making it accessible even to those new to the Sia network. With just a few simple steps, you can securely store your files and data on Sia's decentralized cloud storage platform, where a network of hosts ensures the redundancy and reliability of your files. `renterd` provides an intuitive interface for effortlessly transferring your files to the Sia network.

## Before you begin...

* **Install `renterd`**: Make sure you have the latest version of `renterd` installed on your machine.
* **Create a Wallet**: If you haven't already, create a Sia wallet to store your Siacoins.
* **Fund Your Wallet**: Transfer Siacoins (SC) to your Sia wallet from an exchange or another source. You'll need these coins to pay for storage.

## Uploading your files in renterd

{% hint style="warning" %}
Uploading files and data with `renterd` is a very straightforward process, assuming you have completed all the steps of the `renterd` setup guide. Visit the [renterd](/store-your-data/setting-up-renterd) guides to ensure everything is set up correctly before proceeding.
{% endhint %}

1. Access the `rentered` UI from your local host address. Enter your `API password` you created to unlock `renterd`.

<figure><img src="/files/YH4qSN8iz7lVXj0YXb70" alt=""><figcaption><p>renterd Login UI</p></figcaption></figure>

2. Drag-and-drop files, or click the Upload Files button in the top right corner to begin uploading files. It's that simple!

<figure><img src="/files/SkqnfdoYAP8ANscIx6KJ" alt=""><figcaption><p>File upload UI</p></figcaption></figure>

Once you've chosen the file(s) to upload, it will be classed as active upload; give it a few seconds.

{% hint style="success" %}
Congratulations on successfully uploading your file(s) using `renterd`! Your data is now securely stored on the Sia network, benefiting from the reliability and resilience of decentralized storage.
{% endhint %}

## File processing

When you begin to upload a file to Sia, it undergoes processing on your local machine to ensure optimal redundancy and security within the network. Initially, the file is divided into manageable chunks. Subsequently, each chunk undergoes a procedure that generates 30 distinct pieces, each encrypted before being dispatched to separate hosts. It's worth noting that only 10 of the 30 pieces are required for reconstructing a chunk, and no single host can access more than one piece.

This arrangement ensures that up to 20 hosts could become disconnected from the network for each section of your original file, yet your data would remain safe and secure.

{% hint style="info" %}
For the more technical readers, here is what happens behind the scenes:

* Files are chunked into 40MB chunks (if a file is smaller, it is padded to 40MB so that data looks identical as it moves across networks)
* Each chunk is then erasure-coded using [Reed-Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) encoding. After processing, each chunk has 30 unique 4MB pieces.
* Each piece is then encrypted using [ChaCha20](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) and uploaded to a distinct host.
* As Reed-Solomon encoding is done with 10 data and 20 parity shards, 10 pieces are sufficient for rebuilding the file.
  {% endhint %}


# Managing Your Files

## Maintaining your Data

To ensure the constant availability of your data, you should perform a few crucial tasks periodically.

{% hint style="warning" %}
`renterd` **MUST** be running with your wallet unlocked for any actions to occur; therefore, it is advisable to open it at least once a month and let it run overnight to perform various essential housekeeping tasks.

If you upload files and subsequently neglect to reopen `renterd`, your allowance and contracts will eventually expire, leading to the immediate deletion of your files once your contracts become invalid.
{% endhint %}

### **Refreshing your allowance**

About six weeks after your contracts are created, your allowance attempts to refill itself. `renterd` will never spend more than your allowance, so it needs to be refilled to facilitate contract renewals and downloads through the rest of the contract period.

{% hint style="info" %}
The allowance will refill automatically when you open `renterd`.
{% endhint %}

### **Renewing your contracts**

Your storage contracts will renew automatically at the end of the contract period. By default, Sia will attempt to renew your contract within about one month of the contract expiration date.

If you started renting at the beginning of January, your 3-month contracts would expire around the end of March. Sia would attempt to renew contracts around the beginning of March.

{% hint style="info" %}
Your contracts renew automatically when you open `renterd`.
{% endhint %}

### **Boosting file health**

In `renterd` your files' health is quantified as a percentage, representing the number of available shards that comprise each file. Ideally, it would help if you strive for a perfect health rating of 100%, indicating that all 30 file shards are securely distributed among various hosts.

<figure><img src="/files/Uf0Qzb5BuRbzUkbuc04K" alt=""><figcaption><p>File health check in renterd</p></figcaption></figure>

`renterd` incorporates an intelligent redundancy system that swiftly replicates any missing shards onto a new host in case one becomes unavailable during its next active check.

Health assessments can only be conducted if `renterd` when it's actively running. To ensure the ongoing integrity of your data, it's advisable to periodically launch and operate Sia, allowing it to refresh the health status of your files and sustain their redundancy at optimal levels.

## Downloading

Downloading files occurs directly within the app as well. A small download icon accompanies each file in your list. Downloading necessitates Siacoins because you are billed for the bandwidth consumed.

<figure><img src="/files/E5Bm9IDINkRuCOND4FXw" alt=""><figcaption><p>Downloading files in renterd</p></figcaption></figure>


# About Providing Storage on Sia

### Providing Storage on Sia

**Providing storage** on Sia means contributing your excess storage space to the Sia network. You're helping to keep data where it belongs – safely in the hands of those who uploaded it, the **renters**.

You also earn Siacoins, the cryptocurrency that powers the Sia network. Siacoins can be used to purchase your storage space or converted to other cryptocurrencies or fiat on crypto exchanges.

Storage providers are a critical part of the ecosystem. You are contributing to the decentralized network that is the heart of Sia. Providing storage is also a more technical process than renting, and while anyone can reasonably easily set it up, there's a lot you'll want to know to maximize your setup.

### Earn Siacoins

As a storage provider, you're part of a marketplace where you compete with other storage providers for renter contracts. Competition should drive prices down, and demand should drive prices up. The goal is a market where people can upload their data with maximum security, minimum cost, and at fair rates that provide revenue to the storage providers.

### Pricing

As a host, you set your prices. There are a lot of specific price points you can control:

* **Storage Price:** The base price for your storage per TB/month.
* **Contract Fees:** A small, one-time fee per contract to cover network transaction costs.
* **Upload/Download Bandwidth Price:** Your price for upload or download bandwidth to and from your host per TB.
* **Collateral:** The amount of Siacoins you will lose if you don't fulfill the rental contract per TB/month.

### Collateral

As a storage provider, you earn Siacoin for the storage space that you sell. But you also put up collateral to create additional incentives for storage providers to be good and sustain a reliable network.

Having collateral incentivizes storage providers to be online and to keep their renter data intact. Storage providers that go offline or lose data lose their collateral, and hosts that stay online and keep data safe get their collateral back.

### Contracts

Storage contracts are one of the most essential features of the Sia network. They allow the entire Sia ecosystem to work trustlessly – they form blockchain-enforced contracts between you and the people who rent your storage space that are automatically fulfilled.

#### Contract Formation

When a renter wants to store data on your host, a **file contract** is created on the Sia blockchain. Both parties lock funds into the contract:

* **Renter funds:** The renter deposits Siacoins to pay for storage and bandwidth over the contract duration.
* **Host collateral:** You deposit Siacoins as a guarantee that you will store the renter's data reliably for the full contract period.

These funds are held on-chain and can't be spent by either party until the contract resolves. The contract duration is set by the renter.

#### During the Contract

As the renter uploads, downloads, and stores data, they pay you through the contract. Over time, the contract tracks three balances:

* **Renter funds:** The remaining balance the renter can spend on storage and bandwidth.
* **Host revenue:** The Siacoins you have earned so far from storing data and serving bandwidth.
* **Host collateral:** The collateral you locked at formation.

Your `hostd` dashboard shows **potential revenue** — this is the revenue accumulating in active contracts that have not yet resolved.

#### Storage Proofs and Contract Resolution

When a contract's duration ends, a **proof window** opens. During this window, your host must submit a **storage proof** to the Sia blockchain — a cryptographic proof that you still have the renter's data. Your `hostd` software handles this automatically as long as your host is online, the data is intact, and your wallet has enough Siacoins to cover the transaction fee for broadcasting the proof.

* **Successful proof:** If a valid storage proof is submitted within the proof window, you receive your earned revenue and your collateral is returned. This revenue appears as **earned revenue** on your `hostd` dashboard.
* **Failed proof:** If you fail to submit a valid proof — because you lost the data, went offline, or missed the proof window — you **lose your collateral and any earned revenue** from that contract. The lost Siacoins are burned. This appears as **lost revenue** on your `hostd` dashboard.

{% hint style="warning" %}
Your host submits storage proofs automatically, but only if it is **online**, the **renter's data is intact**, and your **wallet has funds** to pay the transaction fee. Make sure your wallet always has a small Siacoin balance — if you can't pay the fee to broadcast a proof, you'll miss the proof window and lose your collateral and revenue.
{% endhint %}

#### Siafund Fee

A **3.9% fee** is deducted from the total contract payout and distributed to [Siafund](/miscellaneous/learn-about-siafunds) holders. This fee applies to both the host's revenue and the host's collateral. This is why setting your collateral too high can hurt your score — it increases the total fee that renters must pay when forming a contract with you.

#### Payout Timeline

Contract payouts are not instant. After a successful storage proof, there is a **24-hour maturity delay** before the funds become spendable. During this time, the payout will show as **immature** in your `hostd` wallet. Once matured, the Siacoins appear in your wallet balance and can be spent freely.

Because contracts resolve periodically rather than paying out continuously, your revenue arrives in lump sums as each contract completes its proof window. With many active contracts, you will see a steady stream of payouts as contracts resolve at different times.

### Storage Provider Scoring

Your storage provider score is one of the most critical factors determining how you'll fare as a storage provider. This is based on several metrics – some that you can directly affect, some that improve or diminish over time based on your performance.

Sia is a decentralized network - the code to evaluate these scoring metrics is contained within each renter's Sia instance. For that reason, each Sia renter you encounter scores storage providers independently, so you may be scored differently among different renters. As a storage provider, you do not have one overall score across the Sia network but many scores with many renters based on the metrics described below. Any website or service that benchmarks your storage node can only show you a score based on their own metrics, which may differ from what a renter comes up with.

#### Specific Metrics

{% tabs %}
{% tab title="Storage Provider Uptime" %}
Storage provider uptime is a vital metric. You should be online when people try to get their data, and since that might be any time, you should be online all the time. You're allowed negligible downtime to address minor maintenance issues like restarting for updates, which could include approximately 14 hours per month.

In general, you should plan for your storage node computer to be turned on and online 24/7. If you can't commit to this, you shouldn't try to provide storage on the Sia network.

{% hint style="danger" %}
Warning: If you go offline for too long (less than 80% uptime) or lose renter data (by deleting it or experiencing a hardware failure), you can lose money by losing your collateral for active contracts. You can also become responsible for Siafund fees for each contract.
{% endhint %}

Below are the exact amounts your score will change based on your uptime percentage. Greater than 98% uptime results in no penalty, the 14 hours a month explained above (2% of 720 hours in a month = 14 hours).

| Uptime | Score Multiplier | % Reduction in Score |
| ------ | ---------------- | -------------------- |
| 100%   | 1.0              | None                 |
| 98%    | 1.0              | None                 |
| 95%    | .91              | -10%                 |
| 90%    | .51              | -50%                 |
| 85%    | .16              | -85%                 |
| 80%    | .03              | -97%                 |

We could include more values in this table, but there's not much point. If you can't maintain a minimum of 95% uptime, becoming a storage provider is not for you.
{% endtab %}

{% tab title="Storage Pricing" %}
The storage price you set as a storage provider is one of the biggest ways you can affect your storage node's score. You want to set a price that's competitive, but that will still result in a reasonable amount of income for the space you offer. In general, the higher you price your storage, the lower your storage node's score will be. Your storage node's score will increase by a factor of 16 every time you cut your storage price in half. Decreasing your storage cost by even a small amount will have an impact on your score.

There are a number of other pricing factors you have to take into consideration as a storage provider:

* A **Contract Fee** is a one-time fee a renter pays in order to initiate a storage contract with you. It's intended to cover transaction fees on the Sia network related to the creation of the contract and receiving payments as a storage provider. This is normally set for you automatically, but it can be changed via the Terminal/command line. If you change it, you generally don't want to set this more than about 5 SC, as these costs are very low.
* **Bandwidth Price** can be set on a basis of SC per Terabyte transferred to/from your storage node. One price can be set for both upload and download bandwidth via the `hostd` UI, or different upload/download prices can be set individually via the Terminal/command line. It's suggested that you price your upload and download bandwidth in relation to your internet connection capabilities. If you have a fast connection such as gigabit fiber, you can price these items very low because a user transferring several Terabytes doesn't impact you very much. If you have a slow connection or data caps, you may want to consider a higher bandwidth price, though this may deter renters.
* Fees related to **Sector Access** and **RPC** are protections against malicious renters which may be trying to abuse storage providers by accessing resources without paying for uploading or downloading. These fees are capped at 1% of the cost to download a file, but some services which use Sia for storage may ignore your storage node if you set these fees to anything.
  {% endtab %}

{% tab title="Collateral" %}
This is how many Siacoins you're willing to lose if you don't fulfill the rental contract, per TB. It's a guarantee to your renters that you will be online through the storage contract, and that you'll have their data intact at the end of the contract. As a storage provider, this is why you need Siacoins to start providing storage to the network. If you go offline for too long or lose renter data, you risk losing your collateral.

You should normally set your collateral to around **2-3x your base storage price** as a starting point in order to maximize your storage node's score in this area. For example, if you've priced your storage at 50 SC/TB, you should set your collateral at 100-150 SC/TB.

* If you set your collateral **too low**, your storage node's score will be reduced, because renters will have no reason to trust you as a storage provider if you have little or nothing to lose by going offline.
* If you set your collateral **too high**, this can also decrease your storage node's score. Renters pay a fee based on a percentage of your collateral that goes towards [Siafunds](https://docs.sia.tech/siafunds/learn-about-siafunds) - if your collateral is set very high, the fee a renter pays, as a result, will be very high, which can decrease your storage node's score.

**Monitoring Your Collateral**

You can view information on your collateral through the `hostd` dashboard.

![](/files/RFJceN737oqNsyM3uvBL)

With this information, you can determine how much collateral has been tied up in the hosting process, and adjust your collateral settings accordingly if necessary.
{% endtab %}

{% tab title="Storage Remaining" %}
The more free space you have, the more attractive you are to people who want to store things. It makes your storage node less likely to run out of space later. The scoring system takes this into account.

Again, each renter determines their score for your storage node. When a renter forms contracts with you, the more available space you have, the more reliable you look, and the higher this piece of the scoring will be.
{% endtab %}

{% tab title="Storage Node Age" %}
History matters. The longer you've been around, the more reliable you look to renters. Because of this, there's a penalty applied to new storage providers. How do you beat that penalty, you ask? Keep your storage node online.

Once you've been online for about twelve weeks, about half of the default contract length, your penalty disappears!

| Node Age (Blocks) | Node Age (Days) | Score Multiplier | % Reduction in Score |
| ----------------- | --------------- | ---------------- | -------------------- |
| 12,001            | 83.5            | 1.0              | 0%                   |
| 12,000            | 83              | .66667           | -33.33%              |
| 6,000             | 41              | .33333           | -66.67%              |
| 4,000             | 28              | .16667           | -83.33%              |
| 2,000             | 14              | .08333           | -91.667%             |
| 1,000             | 7               | .02778           | -97.222%             |
| 576               | 4               | .009259          | -99.0741%            |
| 288               | 2               | .0030864         | -99.69136%           |
| 144               | 1               | .0010288         | -99.89712%           |
| {% endtab %}      |                 |                  |                      |

{% tab title="Interaction Weight" %}
Interaction weight is a metric measured between your storage node and each renter on the Sia network. For example, if a renter tries to contact your storage node and you're frequently offline, your interaction score will decrease with that renter. Again, this score is unique for each renter you encounter - it will be different for each renter on the Sia network.

Keeping your storage node online will keep this score as high as possible.
{% endtab %}

{% tab title="Version Adjustment" %}
Stay updated. Your storage node score drops if you're not running the latest version of the Sia client. Sia is constantly under development, and bug fixes and new features are pushed out somewhat regularly. If you're running an older version of the client, your renters may not be able to take advantage of all the latest features of Sia until you upgrade.
{% endtab %}
{% endtabs %}

### Third-Party Storage Provider Scoring

We have an incredible community building on Sia. Third-party sites can develop their methods for scoring storage providers based on various metrics. For example, Sia Central has developed a [Host Browser](https://hosts.siacentral.com/), which allows you to browse and compare storage providers.

These benchmarks differ from the core Sia protocol but are still helpful and may be used to help monitor and improve your storage node over time.

Once you've started providing storage, you'll probably want to keep an eye on your storage node score and see how you might be able to improve your node's ranking.

{% hint style="success" %}
**Getting Started with `hostd`**

Contributing your storage space couldn't be any simpler by using Sia's `hostd` software!

Start providing storage on Sia with the official [`hostd` software](https://sia.tech/software/hostd) and exploring our step-by-step [Setting up hostd ](/provide-storage/setting-up-hostd)guide.
{% endhint %}


# Installing hostd


# Linux

`hostd` is designed to be run as a background service to rent out unused storage space to peers. This guide will walk you through the process of installing and configuring `hostd` on a Linux machine. Linux is the recommended operating system for running `hostd` because of its stability. We recommend using a Debian-based distribution, such as Ubuntu or Debian, but `hostd` should work on any modern Linux distribution. The setup guides in these docs are primarily focused on installing using `apt`, but `hostd` can also be installed as a binary manually or run in a Docker container.

* [Debian](/provide-storage/setting-up-hostd/linux/debian)
* [Ubuntu](/provide-storage/setting-up-hostd/linux/ubuntu)
* [Other Distros](/provide-storage/setting-up-hostd/linux/other)


# Debian

This guide will walk you through setting up `hostd` on Linux. At the end of this guide, you should have the following:

* Installed the `hostd` software
* Created a `hostd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `hostd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `hostd` is supported on the following Debian versions:
  * Trixie (Debian 13)
  * Bookworm (Debian 12)
  * Bullseye (Debian 11)
* **System Updates:** Ensure that Debian is up to date with the latest system updates, these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

## Adjust sysctl (OPTIONAL)

These changes to sysctl are optional and may increase performance

```sh
echo "net.core.rmem_max=7500000
net.core.wmem_max=7500000
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = pfifo_fast
net.ipv4.tcp_shrink_window = 1" | sudo tee /etc/sysctl.d/50-hostd.conf
sudo sysctl --system
```

## Install `hostd` Using the `apt` repository

Before you install `hostd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `hostd` using `apt`.

{% hint style="warning" %}
Your system will need to have `curl` installed as well. You can check if it is installed by running `curl --version`. If it is not installed, you can install it by running `sudo apt update && sudo apt install curl`
{% endhint %}

**1. Set up the Sia `apt` repository by copying and pasting the following commands into your terminal:**

```sh
sudo curl -fsSL https://linux.sia.tech/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/siafoundation.gpg
sudo chmod 644 /usr/share/keyrings/siafoundation.gpg
echo "deb [signed-by=/usr/share/keyrings/siafoundation.gpg] https://linux.sia.tech/debian $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/siafoundation.list
sudo apt update
```

{% hint style="info" %}
If you use a derivative distro, such as Kali Linux, you may need to substitute the part of this command that prints the version codename with the corresponding Debian release:

```sh
$(. /etc/os-release && echo "$VERSION_CODENAME")
```

Replace this part with the codename of the corresponding Debian release, such as bookworm.
{% endhint %}

![](/files/umlysrAbmxzkEJODiBPG)

**2. Install `hostd`**

```sh
sudo apt install hostd
```

![](/files/Y2sK8ysEdb1YAYgIbGM5)

**3. Verify `hostd` was installed successfully**

Run the following command to see the version of `hostd` that was installed:

```sh
hostd version
```

![](/files/WGyywJ9M9bjRB3MhNvVX)

## Configure `hostd`

After installing `hostd`, you will need to configure it with a wallet seed and a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo hostd config
```

This will start an interactive configuration process. You will be asked to generate or recover a wallet seed and set a password to unlock the web interface.

{% hint style="info" %}
You will not see anything when you type in your seed phrase or unlock password. Press enter after typing each one.
{% endhint %}

![](/files/YceZ0IxXuDSUxy9QMkgg)

## Start `hostd`

Now that you have installed and configured `hostd`, you can start it by running the following command:

```sh
sudo systemctl enable --now hostd
```

## Verify `hostd` has started successfully

Run the following command to verify the `hostd` service has started successfully:

```sh
sudo systemctl status hostd
```

![](/files/qiqE2yqbPMlB4vuRDwGM)

## Updating `hostd`

New versions of `hostd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop the `hostd` service.

```sh
sudo systemctl stop hostd
```

2. Upgrade `hostd` using the `apt` package manager.

```sh
sudo apt update
sudo apt upgrade hostd
```

3. Start `hostd` service.

```sh
sudo systemctl start hostd
```

## Next Steps

Now that you have `hostd` installed and running, you can start using it to store and retrieve data on the Sia network. You can access the web interface by navigating to <http://127.0.0.1:9980> in your web browser. If you installed `hostd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

![](/files/0VbINMCISwGUI21nKiK9)

* [About Hosting on Sia](/provide-storage/about-hosting-on-sia)
* [Adding Storage to `hostd`](/provide-storage/adding-storage)
* [Announcing Your Host to the Sia Network](/provide-storage/announcing-your-host)
* [Transferring Siacoins to Your Host Wallet](/provide-storage/transferring-siacoins)


# Ubuntu

This guide will walk you through setting up `hostd` on Linux. At the end of this guide, you should have the following:

* Installed the `hostd` software
* Created a `hostd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `hostd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `hostd` is supported on the following Ubuntu versions:
  * Plucky (Ubuntu 25.04)
  * Noble (Ubuntu 24.04)
  * Jammy (Ubuntu 22.04)
* **System Updates:** Ensure that ubuntu is up to date with the latest system updates, these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

## Adjust sysctl (OPTIONAL)

These changes to sysctl are optional and may increase performance

```sh
echo "net.core.rmem_max=7500000
net.core.wmem_max=7500000
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = pfifo_fast
net.ipv4.tcp_shrink_window = 1" | sudo tee /etc/sysctl.d/50-hostd.conf
sudo sysctl --system
```

## Install `hostd` Using the `apt` repository

Before you install `hostd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `hostd` using `apt`.

{% hint style="warning" %}
Your system will need to have `curl` installed as well. You can check if it is installed by running `curl --version`. If it is not installed, you can install it by running `sudo apt update && sudo apt install curl`
{% endhint %}

**1. Set up the Sia `apt` repository by copying and pasting the following commands into your terminal:**

```sh
sudo curl -fsSL https://linux.sia.tech/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/siafoundation.gpg
sudo chmod 644 /usr/share/keyrings/siafoundation.gpg
echo "deb [signed-by=/usr/share/keyrings/siafoundation.gpg] https://linux.sia.tech/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/siafoundation.list
sudo apt update
```

![](/files/l74Qm6npM6a2QQ1VOKjE)

**2. Install `hostd`**

```sh
sudo apt install hostd
```

![asdd](/files/Irkc4637oYeuYbTPwLgR)

**3. Verify `hostd` was installed successfully**

Run the following command to see the version of `hostd` that was installed:

```sh
hostd version
```

## Configure `hostd`

After installing `hostd`, you will need to configure it with a wallet seed and a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo hostd config
```

This will start an interactive configuration process. You will be asked to generate or recover a wallet seed and set a password to unlock the web interface.

{% hint style="info" %}
You will not see anything when you type in your seed phrase or unlock password. Press enter after typing each one.
{% endhint %}

![](/files/xuKhLzgR4BtHawQiBF5c)

## Start `hostd`

Now that you have installed and configured `hostd`, you can start it by running the following command:

```sh
sudo systemctl enable --now hostd
```

## Verify `hostd` has started successfully

Run the following command to verify the `hostd` service has started successfully:

```sh
sudo systemctl status hostd
```

![](/files/PEXRjQelbxBM9euTNfYX)

## Updating `hostd`

New versions of `hostd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop the `hostd` service.

```sh
sudo systemctl stop hostd
```

2. Upgrade `hostd` using the `apt` package manager.

```sh
sudo apt update
sudo apt upgrade hostd
```

3. Start `hostd` service.

```sh
sudo systemctl start hostd
```

## Next Steps

Now that you have `hostd` installed and running, you can start using it to store and retrieve data on the Sia network. You can access the web interface by navigating to <http://127.0.0.1:9980> in your web browser. If you installed `hostd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

![](/files/0VbINMCISwGUI21nKiK9)

* [About Hosting on Sia](/provide-storage/about-hosting-on-sia)
* [Adding Storage to `hostd`](/provide-storage/adding-storage)
* [Announcing Your Host to the Sia Network](/provide-storage/announcing-your-host)
* [Transferring Siacoins to Your Host Wallet](/provide-storage/transferring-siacoins)


# Other

Setup a new host on Linux

This guide will walk you through setting up `hostd` on Linux. At the end of this guide, you should have the following:

* Installed Sia `hostd` software
* Functional `hostd` Node
* Created a `hostd` wallet

## Pre-requisites

To ensure you will not run into any issues with running `hostd` it is recommended your system meets the following requirements:

* **Operating System Compatibility:** `hostd` is supported on the following Linux versions:
  * Trixie (Debian 13)
  * Bookworm (Debian 12)
  * Bullseye (Debian 11)
  * Plucky (Ubuntu 25.04)
  * Noble (Ubuntu 24.04)
  * Jammy (Ubuntu 22.04)
* **System Updates:** Ensure that your Linux system is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

## Install `hostd`

Download the latest version of `hostd` for your operating system from the [official website](https://sia.tech/software/hostd). For this guide, we'll be downloading the Linux version of `hostd`.

1. Open a terminal and download the latest version of `hostd` for your operating system.

{% tabs %}
{% tab title="AMD64" %}

```console
wget https://sia.tech/downloads/latest/hostd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
wget https://sia.tech/downloads/latest/hostd_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

2. Now that we have downloaded `hostd`, we can unzip and extract the `hostd` binary to our `/usr/local/bin` directory

{% tabs %}
{% tab title="AMD64" %}

```console
unzip -j hostd_linux_amd64.zip hostd &&\
sudo mv -t /usr/local/bin hostd &&\
rm -rf hostd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
unzip -j hostd_linux_arm64.zip hostd &&\
sudo mv -t /usr/local/bin hostd &&\
rm -rf hostd_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

3. Create a new folder called `hostd`. This will hold all the runtime files `hostd` generates and uses.

   ```console
   mkdir /path/to/hostd/folder
   ```

## Configuring `hostd`

{% hint style="warning" %}
`hostd` uses BIP-39 12-word recovery phrases. It does not support legacy 28/29-word `siad` seeds.
{% endhint %}

1. Before running the `hostd` configuration wizard, make sure to `cd` into the `hostd` runtime folder you created in the last section. Then run the `hostd` configuration wizard. This will generate a `hostd.yml` file that is used by `hostd` on start-up.

   ```console
   cd /path/to/hostd/folder
   hostd config
   ```

## Start `hostd`

1. Once you have completed the configuration wizard, you can now start `hostd`.

   ```console
   cd /path/to/hostd/folder
   hostd
   ```

   ![](/files/H4xH8KzhFJhAGptLiGq0)

## Accessing the UI

For users with a desktop environment, you can open a browser to `http://localhost:9980` to access the `hostd` UI.

If you do not have a desktop environment:

1. Find your server's LAN IP using `ip addr`, `ifconfig`, etc.
2. Switch to another computer in your LAN and open the browser
3. Type your LAN IP followed by `:9980` in the address bar (e.g. `http://192.168.1.50:9980`)

![hostd login](/files/zC6Bis8SD3l9AvgUcb74)

## Updating

It is very important to keep your host up to date. New versions of `hostd` are released regularly and contain bug fixes and performance improvements.

**To update:**

1. Stop `hostd`.
2. Download the latest version of `hostd`.

{% tabs %}
{% tab title="AMD64" %}

```console
wget https://sia.tech/downloads/latest/hostd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
wget https://sia.tech/downloads/latest/hostd_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

3. Unzip and replace `hostd` with the new version.

{% tabs %}
{% tab title="AMD64" %}

```console
unzip -j hostd_linux_amd64.zip hostd &&\
sudo mv -t /usr/local/bin hostd &&\
rm -rf hostd_linux_amd64.zip
```

{% endtab %}

{% tab title="ARM64" %}

```console
unzip -j hostd_linux_arm64.zip hostd &&\
sudo mv -t /usr/local/bin hostd &&\
rm -rf hostd_linux_arm64.zip
```

{% endtab %}
{% endtabs %}

4. Start `hostd`.

   ```console
   cd /path/to/hostd/folder
   hostd
   ```

{% hint style="success" %}
Congratulations, you have successfully updated your version of `hostd`!
{% endhint %}


# Docker

Setup a new host using Docker compose

This guide will walk you through setting up `hostd` using Docker compose. At the end of this guide, you should have the following:

* Installed Sia `hostd` software
* Created a `hostd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `hostd` it is recommended your system meets the following requirements:

* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.
* **Software Requirements:** Before installing `hostd`, you will need to install [Docker](https://www.docker.com/get-started/).

## Create the compose file

Create a new file named `docker-compose.yml`. You can use the following as a template. The `/data` mount is where consensus data is stored and is required. Change the `/storage` mount to the path of your storage drive. If you have additional storage disks, add them.

```yml
services:
  hostd:
    image: ghcr.io/siafoundation/hostd:latest
    restart: unless-stopped
    ports:
      - 127.0.0.1:9980:9980/tcp
      - 9981-9984:9981-9984/tcp
    volumes:
      - hostd-data:/data
      - /storage:/storage

volumes:
  hostd-data:
```

{% hint style="warning" %}
Be careful with port 9980 as Docker will expose it publicly by default. It is recommended to bind it to 127.0.0.1 to prevent unauthorized access. If you need to expose it to a LAN, ensure the port is not accessible publicly.
{% endhint %}

## Getting the `hostd` image

To get the latest `hostd` image run the following command:

```
docker compose pull
```

## Configuring `hostd`

Now that you have the latest `hostd` image downloaded, you will need to create a seed phrase and admin password. To launch the built-in configuration wizard, run the following:

```console
docker compose run --rm -it hostd config
```

![](/files/VExLG4zYQelybeJdYkht)

When the configuration wizard loads, you will be asked to verify the location of your data directory. Type `no` to keep the default.

![](/files/qeWKBZKfI5vZwU2Khvjt)

Next, you will be asked to enter a seed phrase. If you already have one that you would like to use, you can enter it now. Otherwise, you can type `seed` to generate a new one. For the purpose of this guide, we will generate a new seed.

![](/files/YtK0H5fSFq4WLTkktMT9)

Next, you will be prompted to enter an admin password. This is used to unlock the `hostd` web UI.

![](/files/6eUbPbUflmY5pQBIMSd4)

Finally, you will be asked if you want to configure advanced settings for `hostd`. Type `no` and hit enter to exit the configuration wizard.

![](/files/skq2hEj49iSRvbFxsaC3)

## Running `hostd`

Now that you have `hostd` successfully installed and configured, it is time to run it. Use the following command to start `hostd`:

```console
docker compose up -d
```

![](/files/TfXJ7Vjb7XxrXKAwN2S3)

Once `hostd` has successfully started, you can access the web UI by opening your browser and going to [http://localhost:9980](http://localhost:9980/).

![](/files/6zu1SHQqjYyf13oqrADC)

{% hint style="success" %}
Congratulations, you have successfully set up `hostd`.
{% endhint %}

## Checking the container status

To check the status of the container run:

```
docker ps -a
```

If the container is not running, it will show in the `STATUS` column

![](/files/X53224AuA9Pkqqcfuanv)

## Checking the logs

To check the container logs run:

```
docker compose logs hostd
```

![](/files/eHRwZLyz9DuWW3efvvpy)

## Upgrading `hostd`

It is essential to keep your host up to date. New versions of `hostd` are released regularly and contain bug fixes and performance improvements.

To upgrade your `hostd` to the newest version, make sure you have shut down `hostd` and then run the following:

```console
docker compose pull && docker compose up -d
```

{% hint style="success" %}
Congratulations, you have successfully updated your version of `hostd`!
{% endhint %}


# macOS

Setup a new host on macOS

This guide will walk you through setting up `hostd` on macOS. At the end of this guide, you should have the following:

* Installed Sia `hostd` software
* Created a `hostd` wallet

***

## Pre-requisites

To ensure you will not run into any issues with running `hostd` it is recommended your system meets the following requirements:

* **System Updates:** Ensure that your macOS version is up to date with the latest system updates. These updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.
* **Software Requirements:** Before installing `hostd`, you will need to install the [Homebrew](https://brew.sh) package manager. This will allow you to install and upgrade `hostd` easily.

## Installing `hostd`

Press `CMD + Space` to open Spotlight search and open a `terminal`.

![](/files/W5DUY2ECywtleaEBocBh)

{% hint style="warning" %}
Before you install `hostd`, make sure you have the [Homebrew](https://brew.sh) package manager installed.
{% endhint %}

Once the Terminal loads, use `brew` to install `hostd`:

```console
brew install siafoundation/sia/hostd
```

![](/files/S4y1hdIYLHZu6NDPLUT3)

To confirm `hostd` has been installed, run the following:

```console
hostd version
```

![](/files/wMNNesfuqmVNEBDQ6KNU)

## Configuring `hostd`

Now that you have `hostd` installed, you will need to create a seed phrase and admin password. To launch the built-in configuration wizard, run the following:

```console
hostd config
```

When the configuration wizard loads, you will be asked to verify the location of your data directory. If you would like to change this, you can do so now. Otherwise, type `no` to keep the default.

![](/files/LDYmKKbHi1phrkKOmB4n)

Next, you will be asked to enter a seed phrase. If you already have one that you would like to use, you can enter it now. Otherwise, you can type `seed` to generate a new one. For the purpose of this guide, we will generate a new seed.

![](/files/CEgL9ncPBhgPGgajOHQL)

Next, you will be prompted to enter an admin password. This is used to unlock the `hostd` web UI.

![](/files/Waw1PnYpQPq7KIgNIZek)

Finally, you will be asked if you want to configure advanced settings for `hostd`. Type `no` and hit enter to exit the configuration wizard.

![](/files/tgWK3noR86T2LBwP1vkn)

## Running `hostd`

Now that you have `hostd` successfully installed and configured, it is time to run it. Use the following command to start `hostd`:

```console
hostd
```

![](/files/TfXJ7Vjb7XxrXKAwN2S3)

Once `hostd` has successfully started, the web UI should automatically open in your web browser.

{% hint style="info" %}
If the `hostd` web UI does not open. You can access it by opening your browser and going to [http://localhost:9980](http://localhost:9980/).
{% endhint %}

![](/files/6zu1SHQqjYyf13oqrADC)

{% hint style="success" %}
Congratulations, you have successfully set up `hostd`.
{% endhint %}

## Upgrading `hostd`

It is essential to keep your host up to date. New versions of `hostd` are released regularly and contain bug fixes and performance improvements.

To upgrade your `hostd` to the newest version, make sure you have shut down `hostd` and then run the following:

```console
brew upgrade siafoundation/sia/hostd
```

![](/files/3tlJ49oiS1zbh8Lj05Bd)

You can confirm you have upgraded to the latest version using the following command:

```console
hostd version
```

![](/files/vFFJdWXd1rw5Fe5e0p0V)

{% hint style="success" %}
Congratulations, you have successfully updated your version of `hostd`!
{% endhint %}


# Windows

Setup a new host on Windows

The `hostd` desktop app provides a user-friendly web UI to start providing storage on the Sia network. By the end of this guide, you will have:

* Installed the `hostd` desktop application.
* Created a `hostd` wallet

## Pre-requisites

To run `hostd` on Windows, your system should meet the following specifications:

* **Operating System Compatibility:** `hostd` is only supported by `64-bit` versions of Windows.
* **System Updates:** Ensure that your Windows version is up to date with the latest system updates. These updates can contain important security fixes and improvements.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended. Not meeting these requirements may result in fewer contracts from renters or the loss of collateral.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `hostd`
    * 10 GB per 1 TB hosted for database storage
  * At least 4TB of HDD storage for renter data
* **Network Access:** `hostd` requires a stable internet connection and open network access to store and retrieve data on the Sia network.

## Download

1. Go to [Sia Software Downloads](https://sia.tech/software-downloads). Here you can find the latest software downloads for all our daemons.

![](/files/OYJcrKjzVorbzwPluZqQ)

2. From the dropdown menu, select **Windows AMD64**.

![](/files/7SEzhX7zrEDuiP7UQ8ST)

{% hint style="warning" %}
Before proceeding with downloading, please read our [Terms of Service](https://sia.tech/terms-of-service). Once you have reviewed and are satisfied, check the box to agree.
{% endhint %}

3. Click **Download** to get the latest `hostd` version for your operating system.

## Run

After downloading the `hostd` desktop application:

1. **Install the app:** Double-click the installer (e.g., `hostd.<version>.Setup.exe`) and follow the prompts. The app installs to the default location.
2. **Launch the app:** After installation, you can delete the installer, and launch `hostd` from the Start Menu like any other program.
3. **Initial setup&#x20;*****(first-time users only)*****:** On first launch, the Welcome to `hostd` window will guide you to do the following:

* Name your storage provider.
* Generate a recovery phrase (which you can copy and lock).
* Set a password to access web UI.

![](/files/CdnqkvrMyNzOUGJzjoKM)

4. **Access the Web UI&#x20;*****(first-time users only)*****:** Click **save and start daemon**. It will open automatically, or if not, you can access it at <http://localhost:9980> while `hostd` runs in the background.

{% hint style="warning" %}
When you first run `hostd`, Windows Security may ask to allow public and private network access. This is normal - select **Allow** so `hostd` can communicate properly through the firewall.
{% endhint %}

![](/files/mOPpLfQtVAbxndzF7IQd)

{% hint style="success" %}
**Success!** `hostd` is now running on your Windows system, and you’re ready to start providing storage on the Sia network.
{% endhint %}

## Configure

You can customize `hostd` through the desktop app, which provides full control over all available settings.

On **Windows**, you can access the `hostd` configurations by going to the taskbar, expanding the up arrow to see hidden icons, and double-clicking the `hostd` app. This will open the configuration window and let you customize its behavior.

![](/files/TtFqPp4Kvo2ukruMmdB1)

There are several configurable settings in `hostd`. Below is a breakdown of what each setting does:

| Field                                    | Description                                                           |
| ---------------------------------------- | --------------------------------------------------------------------- |
| Recovery Phrase                          | Your wallet recovery seed                                             |
| Password                                 | Set or update your wallet password                                    |
| Automatically open the Web UI on startup | Enable this to launch the interface when `hostd` starts               |
| Data Directory                           | Where `hostd` stores its data and config files                        |
| Log Level                                | Amount of detail in logs                                              |
| HTTP Address                             | Local address for the Web UI                                          |
| Syncer Address                           | Peer address `hostd` uses to sync the blockchain and find other peers |
| RHP4 port                                | Listening port for incoming storage traffic                           |

{% hint style="warning" %}
Always **save and restart daemon** after making configuration changes to ensure they are applied.
{% endhint %}

You can monitor your node’s activity and track changes by checking the logs. These provide detailed information about the system, network connections, API endpoints, S3 interface, and autopilot operations, helping you understand what your node is doing at any given time.

![](/files/SAGe2ok37HtD6dowQhYm)

## Update

`hostd` updates regularly with bug fixes, performance improvements, and new features. Updating your node ensures stability and compatibility with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. Simply restart the app to run the latest version.

{% hint style="info" %}
You can always check for the version of the software at the bottom of the app interface.
{% endhint %}


# Transferring Siacoins

Whether you're sending Siacoins to an exchange or receiving from a friend, `hostd` facilitates the transfer of Siacoins (SC). You can check the transaction status, easily achieved via the UI.

## Sending Siacoins

Go to `hostd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `hostd`, visit our [Setting up `hostd`](/provide-storage/setting-up-hostd) guide; otherwise, choose from the sidebar **Wallet**.

### Setup your transaction

Click on the `Send` button. Enter the recipient's wallet address and the amount of Siacoins you want to send. Make sure that you've entered a Siacoin wallet address and that you've entered it correctly.

<figure><img src="/files/q3j4Q7t5D1UrLj9YXdTH" alt=""><figcaption><p>Sending Siacoins via hostd</p></figcaption></figure>

{% hint style="warning" %}
Siacoins sent to mistyped addresses or addresses of other types of cryptocurrency can not be retrieved.
{% endhint %}

Click **Generate Transaction.**

### Confirm your info

Next, you need to confirm everything. You'll have a chance to double-check the currency, amount, and recipient address. The window will also show you estimated network fees.

<figure><img src="/files/SvCjD3W8s6KK1UqjWi53" alt=""><figcaption><p>Confirming your transaction</p></figcaption></figure>

Click **Setup** to change something. If it's all good, click **Broadcast transaction**.

<figure><img src="/files/Q7vnPSW7rqTW50m9mENi" alt=""><figcaption><p>Confirmation of a successful transaction broadcasted</p></figcaption></figure>

You'll immediately get a confirmation that your transaction has been successfully broadcasted.

### Checking the status

By looking at the transactions in the **Wallet** section of the UI. It's normal to 'Unconfirmed' at the latest transaction, which means the transaction is on its way but hasn't yet appeared in a block.

<figure><img src="/files/TmElGXQVM8okRH5KEe0I" alt=""><figcaption><p>hostd wallet transaction list</p></figcaption></figure>

{% hint style="info" %}
It might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.

## Receiving Siacoins

Before you can start providing storage, you must have Siacoins (SC) in your `hostd` wallet for the following:

* Locking Siacoin as collateral to ensure they are financially incentivized to store data.
* You are submitting storage proofs to the blockchain. If your wallet runs out of Siacoin, your host node cannot submit storage proofs, and you will lose collateral.

{% hint style="info" %}
We recommend around **$50 worth of Siacoin** to start providing storage. Storage providers are constantly locking collateral; you may need more or less depending on how much data you store, you may need more or less.
{% endhint %}

{% hint style="warning" %}
You can still transfer funds to your wallet, but please note that they won't be accessible until the wallet is completely synced.
{% endhint %}

Go to `hostd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `hostd`, visit our [Setting up `hostd`](/provide-storage/setting-up-hostd) and choose from the sidebar **Wallet**.

### Sharing the address or QR

Copy and paste your address manually, or use the **Copy** button to the right to ensure you get the full address without any extra spaces, and provide this address to whomever you're receiving the funds from.

You can also receive Siacoins by sharing your QR code for others to scan.

<figure><img src="/files/R3ILUn9DVQyNGVSdmcRD" alt=""><figcaption><p>Getting the address and QR of your hostd wallet</p></figcaption></figure>

The transaction can check the transaction status by going to your **Dashboard** and selecting the wallet you made the transaction with. It's normal to see **Unknown** at the top of the list of transactions; it means the transaction is on its way but hasn't yet appeared in a block.

{% hint style="info" %}
The transaction might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.


# Adding Storage

When providing storage on Sia, you must allocate a location on your disk that `hostd` will store any uploaded data from renters. This is referred to as **volume**.

**Volume** can be located anywhere on the local or external drives, and you can create multiple volumes to combine storage from multiple drives.

## Creating volume

Go to `hostd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `hostd`, visit our [Setting up `hostd`](/provide-storage/setting-up-hostd) guide; otherwise, choose from the sidebar **Volume**.

Click on the **Create Volume** button in the top right-hand corner.

1. Enter a name for the volume. We recommend something simple, like *hostdata1.dat* or *data1.dat.*
2. Now select a folder to store the volume file.
3. Lastly, enter a maximum size for the volume. This is the maximum amount of data stored in the volume.

<figure><img src="/files/oNBkmYU486rXck4PGqlB" alt=""><figcaption><p>Creating volume on hostd</p></figcaption></figure>

4. Click **Create** to add the volume to `hostd`.

### Checking the status

After clicking **Create**, the volume will be displayed in the volumes list. Depending on the size of the volume and the filesystem, it may take a while to provision the new volume fully. The progress will be displayed in the UI.

<figure><img src="/files/8Zq6DuXGxiTJ2LMeBDc7" alt=""><figcaption><p>hostd Volume list</p></figcaption></figure>


# Configuration

Setting up your storage node on Sia also involves configuring essential parameters such as storage, bandwidth, and other critical variables. These configurations are vital to maintaining your storage node's health, ensuring it can effectively provide storage services to renters, and determining how much you earn from providing storage on the network.

Go to `hostd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `hostd`, visit our [Setting up `hostd`](/provide-storage/setting-up-hostd) guide; otherwise, choose from the sidebar **Configuration**.

## Configuration Settings

### Port Forwarding

`hostd` needs a stable internet connection and open network access in order to store and retrieve data on the Sia network. You will also need to forward the following ports so `hostd` can properly communicate with the network and renters.

* 9981/TCP (Sia Consensus)
* 9984/TCP (RHP4 - SiaMux)
* 9984/UDP (RHP4 - QUIC)

### Accepting contracts

The **Accepting Contracts** setting determines whether your storage node will accept new contracts. Most storage node's will always have this toggled on. However, if you want to exit the network, you can toggle this off to stop accepting new contracts. You must still fulfill any existing contracts before entirely shutting down your storage node.

### Address

Setting your storage node's network **Address** is essential because it's published to the blockchain and used by renters to connect to your node. Some users use their public IP address, but we recommend setting up a domain.

{% hint style="info" %}
You have several options for setting up Dynamic DNS. We recommend utilizing straightforward, no-cost services like [DuckDNS](/provide-storage/configuring-your-host/dynamic-dns/duckdns) or [Cloudflare](/provide-storage/configuring-your-host/dynamic-dns/cloudflare-advanced). Additionally, you can choose to purchase a custom domain from a registrar.

Alternatively, you can set up a public IP address by clicking [here](https://icanhazip.com), which will display the public IP address that you can then copy to your clipboard.
{% endhint %}

For example:

* If your IP address is `199.111.78.80` you would enter `199.111.78.80`.
* If your domain is `example.com`, you would enter `example.com`.

![](/files/U8imlhBrNAQ5IowHpcKD)

{% hint style="warning" %}
In the **DNS** section of the `hostd` configuration page, remember also to enable your chosen Dynamic DNS Provider if you opted for this option.
{% endhint %}

## Pricing

The prices you select will determine how much you earn from providing storage.

When setting your prices, you are in direct competition with other storage providers on the network. Should your prices be excessively high, renters may opt for alternative storage providers. Conversely, if your prices are exceedingly low, you may not generate sufficient earnings to offset your operational expenses.

Storage providers are encouraged to explore various pricing options and adjust as needed to achieve the optimal balance between earnings and utilization. Nevertheless, we have provided the pricing recommendations table below for guidance.

{% hint style="warning" %}
Please be aware that these recommendations are only suggestions, and you can modify your pricing anytime.
{% endhint %}

| Variables                                    | Description                                                                                        | Recommended Value                                |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| Storage price                                | The amount of Siacoins you charge per TB per month of storage.                                     | **$1 USD per TB per month**                      |
| Egress price                                 | The amount of Siacoins you charge per TB of data downloaded from your storage node.                | **>$5.00 USD per TB**                            |
| Ingress price                                | The amount of Siacoins you charge per TB of data uploaded to your storage node                     | **Between $0.00 - $0.05 USD per TB**             |
| Collateral Multiplier                        | The amount of Siacoins you lock per TB per month of storage                                        | **2**                                            |
| [Maximum collateral](#user-content-fn-1)[^1] | The maximum amount of Siacoins you will lock into a single contract for collateral.                | **(Storage Price \* Collateral Multiple) \* 10** |
| Contract price                               | The base price to form or renew a contract with your storage node.                                 | **0.2 SC**                                       |
| Base RPC price                               | The price to execute an RPC. Its added to any additional costs from the RPC.                       | **1 SC/Million**                                 |
| Sector access price                          | The base price to read a sector from a disk. It's added to any other costs from your storage node. | **1 SC/Million**                                 |
| Price table validity                         | The length of time a renter's registered price table remains valid.                                | **30 Minutes**                                   |

Click the **Save Changes** button in the top right corner of the page.

## Waiting for sync

Now that you have configured your storage node, you must wait for your node to finish syncing the blockchain. You can check the sync progress by mousing over the Sia logo at the top of the sidebar.

<figure><img src="/files/6ImSnqzripecMA4g7jOr" alt=""><figcaption><p>Checking the status of hostd syncing to the blockchain</p></figcaption></figure>

{% hint style="info" %}
Blockchain syncing can take several hours or even days, depending on your hardware and internet connection. Make sure to have a stable internet connection to ensure your changes are made to your storage node.
{% endhint %}

[^1]: <mark style="color:red;">It's important to set this to limit the risk per contract</mark>


# Dynamic DNS

Most ISPs assign dynamic IP addresses for their residential and small business accounts. Dynamic IPs can change over time. Dynamic IPs are more cost-effective, but they present a challenge for hosts which require consistent connectivity.

In contrast, a static IP address remains fixed and does not change. It is manually assigned to a device or service, providing a stable point of contact for hosting purposes. Static IPs are typically used by large organizations, dedicated servers, or services that require constant accessibility. While static IPs offer reliable connectivity, they are generally more expensive than dynamic IPs.

Dynamic DNS (DDNS) services offer a practical solution for hosts with dynamic IP addresses. `hostd` Has built-in DDNS and integrates with multiple services, including Cloudflare, AWS Route53, DuckDNS, and No-IP. By using `hostd`Its built-in DDNS hosts get the benefits of DDNS without needing to download and set up external software.

## Benefits of DDNS

**Seamless Connectivity:** Dynamic DNS enables hosts with dynamic IP addresses to stay easily connectable, even when their IP changes. DDNS services monitor and update the IP address associated with a domain name in real-time. This automated process redirects incoming traffic to the new IP, ensuring consistent accessibility for hosted services.

**Cost-Efficiency:** With dynamic DNS, hosts can avoid the need for frequent IP announcements, which can incur costs in terms of time, effort, and even Siacoin. Active DNS services provide a reliable and automated updating of IP address information. This cost-effective approach allows hosts to focus on delivering their services rather than managing IP logistics.


# DuckDNS

Learn how to set up dynamic DNS in hostd with DuckDNS

DuckDNS is a free and reliable DDNS provider that offers a straightforward solution for associating a dynamic IP address with a domain name. It's important to note that DuckDNS only supports domains in the format of \`\*.duckdns.org\`. In this guide, we will walk you through the process of configuring DDNS in `hostd` using DuckDNS, enabling you to maintain uninterrupted connectivity to your storage provider, even with a dynamic IP address.

## Create a DuckDNS domain

First, open a browser and go to <https://duckdns.org>. Sign in using one of their supported logins (Twitter, GitHub, Google, etc). You will be taken to the account management page, where you can create a free domain.

<figure><img src="/files/HPkN8NXZR8V8bdHuFnAB" alt=""><figcaption><p>DuckDNS homepage</p></figcaption></figure>

1. Think of a unique sub-domain. It should be unique and easy to remember
2. Enter the domain into the textbox
3. Click "add domain"

After adding the domain you will see it appear in the list below.

<figure><img src="/files/GL5bXmGWShv0O5poOQ0R" alt=""><figcaption><p>new domain</p></figcaption></figure>

## Configure hostd

Copy the "token" from the DuckDNS account management page.

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

1. Access the hostd UI, `http://localhost:9980` by default
2. Log in using your password
3. Navigate to the "Configuration" page
4. Change the "Address" to your DuckDNS domain (e.g. `myhostdtest.duckdns.org:9982`)

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

1. Now, scroll down to the "DNS" section
2. Change "Dynamic DNS Provider" to "DuckDNS"
3. Turn on IPv4 and/or IPv6, depending on your setup
4. In the "Token" field, paste the token you copied from the DuckDNS webpage
5. Click "Save changes"

<figure><img src="/files/uMaFyDqdT6poQeGzkj6s" alt=""><figcaption><p>hostd DuckDNS config</p></figcaption></figure>

If you changed the settings correctly, you should see "Dynamic DNS enabled" in the top status bar. You will also need to announce your new net address so renters will be able to connect.

<figure><img src="/files/nYVJlFdha8hcQjsVkwmz" alt=""><figcaption><p>DDNS is active</p></figcaption></figure>

`hostd` will now automatically update your DuckDNS domain when your IP address changes.


# Cloudflare

Learn how to set up dynamic DNS in hostd with Cloudflare

Cloudflare DNS is a globally distributed, fast, secure, and free Domain Name System (DNS) service that offers top-level domain resolution with robust security features and increased site performance. This guide will walk you through setting up Cloudflare for DDNS in `hostd`.

## Things you'll need

* A registered domain name (Cloudflare, NameCheap, GoDaddy, Google Domains)
* Basic familiarity with DNS
* A running `hostd` node
* A Cloudflare account

{% hint style="info" %}
This guide assumes that you already have a domain registered and can change its nameservers to Cloudflare.
{% endhint %}

## Add your domain to Cloudflare

Once you've logged into Cloudflare, it's time to add your domain. If your domain is already added, skip to the next step. The site may look slightly different if your account already has a domain. To start the process, click the "Add Site" button.

<figure><img src="/files/o6Eri2PevWcGfN2HbnVU" alt=""><figcaption><p>Cloudflare Dashboard</p></figcaption></figure>

When adding the site, you will be asked which plan you would like. At the very bottom, select the Free plan since we only need DNS.

<figure><img src="/files/BFITeCzIIDsG7dqRUZMN" alt=""><figcaption><p>Select Free plan</p></figcaption></figure>

Add DNS records for your storage node. We will be using `myfamoushost.sia.tools` for this guide.

1. For IPv4, add an "A" record.
2. For IPv6, add an "AAAA" record.
3. Toggle "Proxy" off. Sia uses a custom TCP protocol that cannot be proxied by Cloudflare.
4. Click "Save"

{% hint style="info" %}
To get your current public IP go to [https://icanhazip.com](https://icanhazip.com/).
{% endhint %}

<figure><img src="/files/3Z6uMH9HGR1CvkJxCmTH" alt=""><figcaption><p>Add a new record</p></figcaption></figure>

Follow the remaining steps on Cloudflare's website to change your domain's nameservers to Cloudflare. Wait until the nameserver change is confirmed and the site is active in Cloudflare.

## Get your Zone ID

On the website Dashboard in the right-hand column is your domain's "Zone ID." Copy the Zone ID for later.

<figure><img src="/files/8kBXcuoJhdhlMv8K6PLh" alt=""><figcaption><p>Cloudflare Zone ID</p></figcaption></figure>

## Create an API token

Next, we need to create an API token for Cloudflare. An API token allows `hostd` to access your Cloudflare DNS without needing your email or password.

1. Click the account icon in the top right corner of the page.
2. Click "My Profile" in the dropdown.
3. Click "API Tokens" in the sidebar on the left
4. Click "Create Token"

<figure><img src="/files/44K6UqOtCTGYuOK1hDbI" alt=""><figcaption><p>Cloudflare "Create Token" button</p></figcaption></figure>

We will now create a token with only write access to the zone we created. In the API token templates click "Use Template" next to "Edit zone DNS."

<figure><img src="/files/5G11grOgrsfX37tgK4U5" alt=""><figcaption><p>Cloudflare token template</p></figcaption></figure>

Under "Permissions," make sure that the token has the "Edit" permission on the DNS. Under "Zone Resources," make sure to "Include" the "Specific Zone" and select the domain we just added. Since you likely have a dynamic IP, leave "Client IP Address Filtering" blank. TTL is optional, but you will need to remember to create a new token, or your DDNS will break.

<figure><img src="/files/PLOv9uDCwhE0dxtPooX2" alt=""><figcaption><p>Cloudflare token permissions</p></figcaption></figure>

Once you have set the permissions, click "Continue to summary." On the summary screen, double-check that the token has DNS Edit access to the Zone we just added and click "Create". The token will be displayed on your screen. Copy the token now. Once you leave the page, it will not be shown again.

<figure><img src="/files/22p2C08PJGavH81pDeG1" alt=""><figcaption><p>A new API token</p></figcaption></figure>

## Configure hostd

It's finally time to configure `hostd` and enable DDNS.

1. Access the `hostd` UI, `http://localhost:9980` by default
2. Click the "Configuration" icon in the sidebar
3. Change the "Address" field to the domain name you set up. (e.g. `myfamoushost.sia.tools:9982`)

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

1. Scroll to the "DNS" section
2. Change "Dynamic DNS Provider" to "Cloudflare"
3. Turn on IPv4 and/or IPv6, depending on your setup
4. In the "Token" field copy the API token we created
5. In the "Zone ID" field copy the Zone ID

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

If you changed the settings correctly, you should see "Dynamic DNS enabled" in the top status bar. You will also need to announce your new net address so renters will be able to connect. `hostd` will now update your Cloudflare DNS record when your IP address changes.

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


# Announcing

Now that your storage node has been configured and finished syncing, you can announce your node to the network.

Announcing your storage node serves as the bridge between your fully prepared node and potential renters seeking storage solutions. This process publishes information about your storage node, including its network address and public key, onto the blockchain, allowing renters to discover your node and establish contracts.

{% hint style="warning" %}
An announcement transaction incurs a small fee in Siacoins (SC), which will be deducted from your wallet. Ensure your `hostd` wallet is funded by checking out [Transferring Siacoins](/provide-storage/transferring-siacoins).
{% endhint %}

Go to `hostd`. If you're asked to unlock the UI, use your custom password if you've set one. If you haven't got a wallet set up in `hostd`, visit our [Setting up `hostd`](/provide-storage/setting-up-hostd) guide; otherwise, choose from the sidebar **Configuration**.

Click on the **Announce** button in the top right-hand corner.

<figure><img src="/files/aNbjL30tUf2uk0KwsktL" alt=""><figcaption><p>Confirming the announcement of your storage node</p></figcaption></figure>

Finally, check the announcement fee and click **Announce** in the dialog to confirm.

{% hint style="success" %}
Congratulation! Your storage node has been successfully announced to the network and is now ready to be discovered by renters and establish contracts.
{% endhint %}

## Check your storage node's status

Once the announcement is confirmed, you can check if your storage node is visible on the network by going [here](https://troubleshoot.siacentral.com).

<figure><img src="/files/6HcDu7eSc5MgQ66H9QLV" alt=""><figcaption><p>SiaCentral Troubleshooter</p></figcaption></figure>

Enter your storage node's network address and click **Check Host**. This tool will connect to your storage node and notify you of any issues.


# Your Sia Wallet

\
The Sia Wallet is the official cryptocurrency wallet designed exclusively for Siacoins (SC). This secure and user-friendly platform allows you to store, send, receive, and manage your Siacoin holdings.

While `renterd` and `hostd` have their respective Sia Wallets, it's important to highlight `walletd` as Sia's primary solution for securing your Siacoins. With `walletd` seamlessly integrated into the Sia network and ecosystem, it makes it the inclusive choice for managing your Siacoins.

Utilizing `walletd` prioritizes user convenience and security within the network, offering an official web application as the ultimate hub for Siacoin management and transactions. Some key features include:

* Securely send, receive, and store Siacoins and Siafunds.
* Stay informed by monitoring the blockchain for events relevant to specific addresses.
* Easily track your wallet balance and transaction history.
* Seamlessly integrate with Ledger hardware wallets.

Whether you prefer the command-line interface's flexibility or the web-based interface's ease of use, `walletd` ensures top-notch Siacoin management and security. Discover the best-in-class Siacoin management and protection with `walletd`, the official wallet solution developed by the creators of the Sia network.

{% hint style="info" %}
**Getting Started with `walletd`**

Start storing your Siacoins on Sia by downloading the official [`walletd` software](https://sia.tech/software/walletd) and exploring our step-by-step [Setting up walletd](/wallet/setting-up-walletd) guide.
{% endhint %}


# Setting up walletd


# Linux

This guide will walk you through setting up `walletd` on Linux. At the end of this guide, you should have:

* Installed Sia `walletd` software
* Created a `walletd` wallet

## Pre-requisites

To run `walletd` on Linux, your system should meet the following specifications:

* **Operating System Compatibility:** `walletd` is supported on the following Linux versions:
  * Trixie (Debian 13)
  * Bookworm (Debian 12)
  * Bullseye (Debian 11)
  * Plucky (Ubuntu 25.04)
  * Noble (Ubuntu 24.04)
  * Jammy (Ubuntu 22.04)
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `walletd`
* **System Updates:** Ensure that your Linux system is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Network Access:** `walletd` interacts with the Sia network, so you need a stable internet connection and open network access to connect to the Sia blockchain.

## Getting `walletd`

1. Download the latest version of `walletd` for your operating system from the [official website](https://sia.tech/software/walletd). For this guide, we'll be downloading the Linux version of `walletd` .
2. Now that we have downloaded `walletd`, it's recommended to unzip the `walletd` binary to `/usr/local/bin`. Right-click the unzip file, select **Open Terminal Here** to open your Terminal Emulator, and run the following commands:

```bash
unzip walletd_linux_arm64.zip
sudo mv -t /usr/local/bin walletd
rm -rf walletd_linux_arm64.zip 
```

{% hint style="info" %}
You'll be prompted to authorize this action by providing your system password. Type this in and press enter to continue.
{% endhint %}

3. Finally, for good practice, create a folder on the home drive. This folder will be utilized specifically to store data related to the `walletd` software. Open the Terminal Emulator and run the following command:

```bash
mkdir ~/walletd
```

## Running `walletd`

1. Run the following in your Terminal Emulator to start `walletd`:

```bash
 walletd
```

You will be prompted to input a `API password`. You choose this password, which can be anything you want. It will be used to unlock the `walletd` UI, via your browser, should be something secure and easy to remember. This value is not stored anywhere; you will need to re-enter it every time you start `walletd`.

{% hint style="info" %}
You can also set the `WALLETD_API_PASSWORD` environment variables so you do not have to re-enter the values every time.
{% endhint %}

2. After entering your desired `API password`, `walletd` will start.
3. You can now access the `walletd` UI by opening a browser and going to `http://localhost:9980`.

{% hint style="warning" %}
Remember to leave the Terminal Emulator open while `walletd` it is running. If you close the command prompt window, `walletd` stop.
{% endhint %}

Enter your `API password` you created in the previous step to unlock `walletd`.

{% hint style="success" %}
Congratulations on successfully setting up `walletd` and taking a significant step towards storing data on the Sia network.
{% endhint %}

## Updating

New versions of `walletd` are released regularly and contain bug fixes and performance improvements.

To update:

1. Download the latest version of `walletd` from the [official website.](https://sia.tech/wallet)
2. Stop the `walletd` service with `Crtl+C`.
3. Unzip and replace `walletd` with the new version.
4. Restart `walletd`.


# Docker

Setup a new wallet using Docker compose

This guide will walk you through setting up `walletd` using Docker compose. At the end of this guide, you should have the following:

* Installed Sia `walletd` software
* Created a `walletd` wallet

***

## Pre-requisites

To run `walletd` with Docker Compose, your system should meet the following specifications:

* **Software Requirements:** Before installing `walletd`, you will need to install [Docker](https://www.docker.com/get-started/).
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `walletd`
* **Network Access:** `walletd` interacts with the Sia network, so you need a stable internet connection and open network access to connect to the Sia blockchain.

## Create the compose file

Create a new file named `docker-compose.yml`. You can use the following as a template. The `/data` mount is where consensus data is stored and is required.

```yml
services:
  walletd:
    container_name: walletd
    image: ghcr.io/siafoundation/walletd:latest
    restart: unless-stopped
    ports:
      - 127.0.0.1:9980:9980/tcp
      - 9981:9981/tcp
    volumes:
      - walletd-data:/data

volumes:
  walletd-data:
```

{% hint style="warning" %}
Be careful with port 9980 as Docker will expose it publicly by default. It is recommended to bind it to 127.0.0.1 to prevent unauthorized access. If you need to expose it to a LAN, ensure the port is not accessible publicly.
{% endhint %}

## Getting the `walletd` image

To get the latest `walletd` image run the following command:

```
docker compose pull
```

![](/files/SD9X76UOUEmTlzrzYCJ5)

## Configuring `walletd`

Now that you have the latest `walletd` image downloaded, you will need to create a seed phrase and admin password. To launch the built-in configuration wizard, run the following:

```console
docker compose run --rm -it walletd config
```

![](/files/zrJhqx2RoxUp0VYHzb8p)

When the configuration wizard loads, you will be asked to verify the location of your data directory. Type `no` to keep the default.

![](/files/etOtEok2r9I5hoGuKPuh)

Next, you will be prompted to enter an admin password. This is used to unlock the `walletd` web UI.

![](/files/ZMHwhd7NbtGmv8XICmzE)

Finally, you will be asked if you want to configure advanced settings for `walletd`. Type `no` and hit enter to exit the configuration wizard.

![](/files/UA0gDGaq5XgwAItQ6UG4)

## Running `walletd`

Now that you have `walletd` successfully installed and configured, it is time to run it. Use the following command to start `walletd`:

```console
docker compose up -d
```

![](/files/GGqa9dVHp9lU0nOPsFfw)

Once `walletd` has successfully started, you can access the web UI by opening your browser and going to [http://localhost:9980](http://localhost:9980/).

![](/files/YTECKkThitPFajgTYlXF)

{% hint style="success" %}
Congratulations, you have successfully set up `walletd`.
{% endhint %}

## Checking the container status

To check the status of the container run:

```
docker ps -a
```

If the container is not running, it will show in the `STATUS` column

![](/files/7D7S7zRgWMdp7pKTYTFn)

## Checking the logs

To check the container logs run:

```
docker compose logs walletd
```

![](/files/BVGihS53v9rxgf7qP2xQ)

## Upgrading `walletd`

It is essential to keep your `walletd` up to date. New versions of `walletd` are released regularly and contain bug fixes and performance improvements.

To upgrade your `walletd` to the newest version, make sure you have shut down `walletd` and then run the following:

```console
docker compose pull && docker compose up -d
```

![](/files/Xj11ZlCcdr5KfVnDWStO)

{% hint style="success" %}
Congratulations, you have successfully updated your version of `walletd`!
{% endhint %}


# macOS

This guide will walk you through setting up `walletd` on macOS. At the end of this guide, you should have the following:

* Installed Sia `walletd` software
* Created a `walletd` wallet

## Pre-requisites

To run `walletd` on macOS, your system should meet the following specifications:

* **Hardware Requirements:** A stable setup that meets the following specifications is recommended.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `walletd`
* **System Updates:** Ensure that your macOS is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Network Access:** `walletd` interacts with the Sia network, so you need a stable internet connection and open network access to connect to the Sia blockchain.

## Getting `walletd`

{% hint style="warning" %}
Remember to check which version to download to ensure it works correctly with your operating system. To do this, click on the Apple icon in the top left corner of your toolbar, then click on **About This Mac**. If the processor/chips says:

* **Intel** - `MacOS AMD64`
* **M1 or M2** - `MacOS ARM64`
  {% endhint %}

1. Download the latest version of `walletd` for your operating system from the [official website](https://sia.tech/software/walletd). For this guide, we'll be downloading the macOS version of `walletd` .
2. Now that we have downloaded `walletd`, you may need to unzip it.
   * Double-click the downloaded `walletd` zip file to unzip it if it hasn't done so automatically.
   * Click on the newly unzipped directory.
   * Right-click on the path bar at the bottom of the Finder window and click **Open in Terminal**.
3. In the opened terminal window, move the `walletd` binary to `/usr/local/bin` by running the following command and press enter:

```sh
sudo mv walletd /usr/local/bin
```

{% hint style="info" %}
You'll be prompted to authorize this action by providing your system password. Type this in and press enter to continue.
{% endhint %}

4. Finally, for good practice, create a folder on the home drive. This folder will be utilized specifically to store data related to the `walletd` software.

```sh
mkdir ~/walletd
```

## Running `walletd`

1. Run the following in your terminal command to start `walletd`:

<pre class="language-sh"><code class="lang-sh"><strong>walletd
</strong></code></pre>

You will be prompted to input a `API password`. You choose this password, which can be anything you want. It will be used to unlock the `walletd` UI, via your browser, should be something secure and easy to remember. This value is not stored anywhere; you will need to re-enter it every time you start `walletd`.

{% hint style="info" %}
You can also set the SIA`_API_PASSWORD` environment variables so you do not have to re-enter the values every time.
{% endhint %}

2. After entering your desired `API password`, `walletd` will start.
3. You can now access the `walletd` UI by opening a browser and going to `http://localhost:9980`.

{% hint style="warning" %}
Remember to leave the terminal window open while `walletd` is running. If you close the command prompt window, `walletd`will stop.
{% endhint %}

<figure><img src="/files/Em03F1CQ2uyxm3J43FEk" alt=""><figcaption><p>walletd</p></figcaption></figure>

Enter your `API password` you created in the previous step to unlock `walletd`.

{% hint style="success" %}
Congratulations on successfully setting up `walletd` and taking a significant step towards securing your Siacoins.
{% endhint %}

## Updating

It is imperative to keep your host up to date. New versions of `walletd` are released regularly and contain bug fixes and performance improvements.

To update:

1. Download the latest version of `walletd` from the [official website](https://sia.tech/software/walletd).
2. Stop the `walletd` service with `Cmd+C`.
3. Unzip and replace `walletd` with the new version
4. Restart `walletd`.


# Windows

The `walletd` desktop app provides a user-friendly web UI to start storing data on the Sia network. By the end of this guide, you will have:

* Installed Sia `walletd` software
* Created a `walletd` wallet

## Pre-requisites

To run `walletd` on Windows, your system should meet the following specifications:

* **Operating System Compatibility:** `walletd` is only supported by `64-bit` versions of Windows.
* **Hardware Requirements:** A stable setup that meets the following specifications is recommended.
  * A quad-core CPU
  * 8GB of RAM
  * 256 GB SSD for `walletd`
* **System Updates:** Ensure that Windows is up to date with the latest system updates, as these updates can contain important security fixes and improvements.
* **Network Access:** `walletd` interacts with the Sia network, so you need a stable internet connection and open network access to connect to the Sia blockchain.

## Download

1. Go to [Sia Software Downloads](https://sia.tech/software-downloads). Here you can find the latest software downloads for all our daemons.

![](/files/RpKVSQhZWxxlFq6sBjiO)

2. From the dropdown menu, select **Windows AMD64**.

![](/files/L6yZ7dDHArSh2B499Idt)

{% hint style="warning" %}
Before proceeding with downloading, please read our [Terms of Service](https://sia.tech/terms-of-service). Once you have reviewed and are satisfied, check the box to agree.
{% endhint %}

## Run

After downloading the `walletd` desktop application:

1. **Install the app:** Double-click the installer (e.g., `walletd.<version>.Setup.exe`) and follow the prompts. The app installs to the default location.
2. **Launch the app:** After installation, you can delete the installer, and launch `walletd` from the Start Menu like any other program.
3. **Initial setup&#x20;*****(first-time users only)*****:** On first launch, the Welcome to `walletd` window will guide you to set a password to access the web UI. After entering your desired `API password`, `walletd` will start.
4. **Access the Web UI:** Click **save and start daemon**. It will open automatically, or if not, you can access it at <http://localhost:9980> while `walletd` runs in the background.

![](/files/wKs8MSgw7kqcmzhyit8P)

{% hint style="warning" %}
When you first run `walletd`, Windows Security may ask to allow public and private network access. This is normal—select **Allow** so `walletd` can communicate properly through the firewall.
{% endhint %}

![](/files/RvD5oEDPLB591OohkBN9)

{% hint style="success" %}
**Success!** `walletd` is now running on your Windows system, and you’re ready to start storing your data on the Sia network.
{% endhint %}

## Configure

You can customize `walletd` through the desktop app, which provides full control over all available settings, from wallet indexing to batch sizing and more.

On **Windows**, you can access the `walletd` configurations by going to the taskbar, expanding the up arrow to see hidden icons, and double-clicking the `walletd` app. This will open the configuration window and let you customize its behavior.

![](/files/C34qfLdtXasS0JlNZNj3)

There are several configurable settings in `walletd`. Below is a breakdown of what each setting does:

| Field                                    | Description                                                                                                      |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Password                                 | Set or update your wallet password                                                                               |
| Automatically open the Web UI on startup | Enable this to launch the interface when `walletd` starts                                                        |
| Data Directory                           | Where `walletd` stores its data and config files                                                                 |
| HTTP Address                             | Local address for the Web UI                                                                                     |
| Log Level                                | Amount of detail in logs                                                                                         |
| Index Mode                               | Indexing scope of either `personal` (your addresses), `full` (entire chain), or `none` (read-only).              |
| Index Batch Size                         | Number of blocks processed per batch during indexing                                                             |
| Consensus Network                        | Connect to either `mainnet` (live network) or `zen` (test network)                                               |
| Syncer Gateway Address                   | Address for connecting to a gateway node for syncing (optional)                                                  |
| Syncer Bootstrap                         | Enable for discovering and syncing with the network                                                              |
| Syncer Enable UPnP                       | Enable Universal Plug and Play (UPnP) to automatically configure router port forwarding for incoming connections |

{% hint style="warning" %}
Always **save and restart daemon** after making configuration changes to ensure they are applied.
{% endhint %}

You can monitor your node’s activity and track changes by checking the logs. These provide detailed information about the system, network connections, API endpoints, S3 interface, and autopilot operations, helping you understand what your node is doing at any given time.

![](/files/uc8Hk3uonOkgQCt4ofGY)

## Update

`walletd` updates regularly with bug fixes, performance improvements, and new features. Updating your node ensures stability and compatibility with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. Simply restart the app to run the latest version.

{% hint style="info" %}
You can always check for the version of the software at the bottom of the app interface.
{% endhint %}


# Transferring Siacoins

## Sending Siacoins

Whether you're sending Siacoins (SC) to an exchange or a friend, it's easy and can be done right. You can check the transaction status in `walletd`.

Go to `walletd`. If you're asked to unlock the wallet, use your seed or a custom password if you've set one. If you haven't got a wallet set up, visit our[ Setting up `walletd`](/wallet/setting-up-walletd) guide; otherwise, choose from the **Dashboard** a wallet you wish to send Siacoins from.

### Setup your transaction

Click on the `Send` button. Enter the recipient's wallet address and the amount of Siacoins you want to send. Make sure that you've entered a Siacoin wallet address and that you've entered it correctly.

<figure><img src="/files/IRe8mdnFmvsKopmudqLj" alt=""><figcaption><p>Sending Siacoins via walletd</p></figcaption></figure>

{% hint style="warning" %}
Siacoins sent to mistyped addresses or addresses of other types of cryptocurrency can not be retrieved.
{% endhint %}

Click **Generate Transaction.**

### Confirm your info

Next, you need to confirm everything. You'll have a chance to double-check the currency, amount, and recipient address. The window will also show you estimated network fees.

For security measures, you will also be asked to provide your Seed.

<figure><img src="/files/MoaI9xR5AG7akNy1n4Az" alt=""><figcaption><p>Confirming your transaction</p></figcaption></figure>

Click **Setup** to change something. If it's all good, click **Sign and broadcast transaction**.

<figure><img src="/files/LwX6aH7YiOr1JTdVeBps" alt=""><figcaption><p>Confirmation of a successful transaction broadcasted</p></figcaption></figure>

You'll immediately get a confirmation that your transaction has been successfully broadcasted.

### Checking the status

Go to your **Dashboard** and select the wallet you made the transaction with. It's normal to see **Unknown** or **Send** at the top of the list; the transaction is on its way but hasn't yet appeared in a block.

<figure><img src="/files/uqu5G1o0METnTEhw9auE" alt=""><figcaption><p>Wallet transaction list</p></figcaption></figure>

{% hint style="info" %}
It might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.

## Receiving Siacoins

At some point, you'll need to receive Siacoins. You might be receiving them from an exchange wallet, another Sia wallet you own, or requesting Siacoins from a friend. No matter the reason, it's easy to generate or retrieve your address in `walletd` to receive Siacoins.

Go to the `walletd`. If you're asked to unlock the wallet, use your seed or a custom password if you've set one. If you haven't got a wallet set up, visit our [Setting up walletd](/wallet/setting-up-walletd) guide; otherwise, choose from the **Dashboard** a wallet you wish to receive Siacoins from.

Click on the **Addresses** in the top right corner, and you'll be presented with the wallet address.

<figure><img src="/files/XbUmDieSWnhmQ83Q31p4" alt=""><figcaption><p>Wallet addresses</p></figcaption></figure>

### Sharing the address or QR

Copy and paste your address manually, or use the **Copy** button to the right to ensure you get the full address without any extra spaces, and provide this address to whomever you're receiving the fund from.

You can also receive Siacoins by sharing your QR code for others to scan.

<figure><img src="/files/rGCLERTVqkPW4EipO1OF" alt=""><figcaption><p>Getting the address and QR of your wallet</p></figcaption></figure>

You can check the transaction status by going to your **Dashboard** and selecting the wallet you made the transaction with. It's normal to see **Unknown** at the top of the list of transactions; it means the transaction is on its way but hasn't yet appeared in a block.

{% hint style="info" %}
The transaction might take a minute or two to appear in the wallet's transactions list.
{% endhint %}

Once it's in a block, you can check the status and see a new transaction type of **siacoin transfer**.


# Sia Ledger app with Sia Central

## What is a Ledger Nano?

The Ledger Nano X and Ledger Nano S are hardware wallets created by Ledger. A hardware wallet stores the private keys to cryptocurrency on a separate device, making it much harder for malicious parties to steal them. In fact, the private keys never leave the hardware wallet, so they will remain secure even if the device is connected to a compromised computer. As long as you follow best practices when using your hardware wallet, it is virtually impossible for an attacker to steal your funds.

Hardware wallets are an important part of the crypto ecosystem, and they're one of the best ways to personally secure your coins. We're happy to be working with Ledger to offer our official Sia app for use on both the Ledger Nano X and Ledger Nano S.

To send and receive Siacoin on a Ledger device we will be using Sia Central's web wallet through the latest version of Google Chrome desktop. Sia Central's web wallet only supports Siacoin, sending and claiming Siafund dividends are not yet supported. The web wallet should always be accessed from <https://wallet.siacentral.com>. This article will be using a Ledger Nano X with bluetooth, but the steps are similar for USB or the Ledger Nano S.

## Things you'll need

Using Sia on a Ledger device requires a few things. You will need:

* Your Ledger device
* The Sia app installed on your device
* A desktop browser to access Sia Central's web wallet

### Supported browsers

The web wallet only supports Ledger wallets on some desktop browsers:

|                | USB Support   | Bluetooth Support (Ledger Nano X only) |
| -------------- | ------------- | -------------------------------------- |
| Chrome         | 89+           | 89+ (macOS and Windows only)           |
| Microsoft Edge | 89+           | Not available                          |
| Opera          | 76+           | Not available                          |
| Brave          | 1.29.77+      | Not available                          |
| Safari         | Not available | Not available                          |
| Firefox        | Not available | Not available                          |
| Android        | Not available | Not available                          |
| iOS            | Not available | Not available                          |

## Set up your device

*Let's make sure your hardware wallet is ready to use.*

### Ledger Nano X

1. [Initialize](https://support.ledger.com/hc/en-us/articles/360018784134-Set-up-your-Ledger-Nano-X) your Ledger Nano X. This gets the hardware wallet set up and ready to use.
2. Download [Ledger Live Desktop](https://support.ledger.com/hc/en-us/articles/4404389606417-Download-and-install-Ledger-Live) onto your computer. Ledger Live is the app you use to manage your Ledger device.
3. [Install the latest firmware](https://support.ledger.com/hc/en-us/articles/360013349800-Update-Ledger-Nano-X-firmware) on your Nano X. This ensures compatibility with the Sia app.

### Ledger Nano S

1. [Initialize](https://support.ledgerwallet.com/hc/en-us/articles/360000613793) your Ledger Nano S. This gets the hardware wallet set up and ready to use.
2. Download [Ledger Live](https://support.ledgerwallet.com/hc/en-us/articles/360006395553/) onto your computer. Ledger Live is the app you use to manage your Ledger device.
3. [Install the latest firmware](https://support.ledgerwallet.com/hc/en-us/articles/360002731113) on your Nano S. This ensures compatibility with the Sia app.

At this point, you're ready to install apps on your Ledger device. Remember to store your 24-word recovery phrase in a safe place, because you'll need it to recover your funds if your device is lost or damaged.

### Install the Sia Ledger app <a href="#install_the_sia_ledger_app" id="install_the_sia_ledger_app"></a>

*Now we'll install the Sia app onto your Ledger hardware wallet.*

1. Open the **Manager** in Ledger Live.

   ![Ledger manager](/files/6nFoGFTrdoQBNrMzcKsC)
2. Connect and unlock your Ledger device via USB. You will be prompted on the device to allow the manager.
3. Search for Sia in the app catalog.

   ![Ledger app catalog](/files/91CrDTOTzcCcLkyGW74y)
4. Click the **Install** button. Your device will display **Processing...**
5. When the main menu reappears, the Sia app has been successfully installed.

## Wallet Setup

Sia Central's web wallet is a lite, non-custodial wallet that allows you to send and receive Siacoin without downloading the blockchain. After the Ledger wallet is imported, your balance can be viewed almost immediately.

1. Access the wallet at <https://wallet.siacentral.com>
2. If you have never used the wallet before you will be prompted to set a password. This password is used to encrypt your data and is required to unlock your wallets in the future.

   ![Sia Central wallet](/files/0OHN8mKg2kneOvvivgpM)
3. Create a new wallet

   ![Sia Central create Ledger wallet](/files/aXKBStzdRV4YYw6ykh7f)
4. Click **Ledger Wallet** to add a new Ledger wallet.

   You will now need to connect your device and import an address to send Siacoins to. When connecting you can choose either USB or Bluetooth depending on your browser's support.

   <figure><img src="/files/0HSk34w6pX9BNk4HoR2y" alt=""><figcaption><p>Sia Central connect Ledger</p></figcaption></figure>
5. Connect and unlock your device, then open the Sia app.
6. Click the green **Connect** button in the wallet. The status should change to "Connected". If you have never connected your device to this computer before, you may need to confirm the pairing on the device.

   ![Sia Central connect Ledger pair](/files/N97IrBMG3w4np5Nf2PT2)
7. Click the **Add Address** button. Confirm that you want to generate the address on your device by pressing the right button once, the screen should now read "Approve"; then press both buttons together to confirm.

   ![Ledger generate address](/files/bBr9bMuPQdS7w9f9Av5A)
8. The address is now imported, verify that the address in the box matches the address displayed on the device. If you have used this device before your balance will update.
9. Optionally, you can add additional addresses by clicking the **Add Address** button again and confirming on the device.
10. After you have imported your addresses click the **Done** button at the bottom. You will now have a new wallet in your dashboard.

    ![Sia Central Ledger setup complete](/files/OeYDzdTclbIixWrXUmNZ)

## Receiving Siacoin <a href="#receiving_siacoin" id="receiving_siacoin"></a>

After the initial setup is complete you can send Siacoin to your wallet. Select your wallet from the list on the right, then click the *Receive* button right under the balance.

![](/files/fgvtIpfAE35VYlXLBsVj)

Before sending Siacoin to an address it is important to manually verify that it belongs to your wallet.

1. Connect your Ledger Nano, unlock it, and open the Sia app.
2. Click the green *Connect* button above the QR code.
3. Click the green *Verify* button next to your address.
4. Confirm that you want to generate the address on your device.
5. Manually check that the address displayed on the device matches the address in the text box.

After verifying the address you can send Siacoin to this address. If this is the first time you have sent Siacoin to a hardware wallet, try with a small amount first to make sure everything is set up correctly. When you receive Siacoin it will be marked as an unconfirmed transaction for 10 minutes to an hour. You will have to wait for at least one confirmation before you can spend your Siacoin.

![](/files/nmCnhAtf4y2U36ORfzAB)

## Checking balance <a href="#checking_balance" id="checking_balance"></a>

Your balance and your last 500 transactions can be displayed at any time by selecting the wallet from the list on the left of the dashboard. You do not need your Ledger to view your balance. Just to verify addresses or send transactions.

![](/files/P5V55YVHaGhaa8D0Nc2B)

## Sending Siacoin <a href="#sending_siacoin" id="sending_siacoin"></a>

To send a transaction you will need your device. Select your wallet from the list on the left; then click **Send**. A dialog will pop up allowing you to input the recipient's address and the amount of Siacoin to send them. You can enter the amount in your display currency, or Siacoin.

![](/files/cfN8AsrmJq4MeBwVyFSA)

Once you have entered the address and amount, click the **Send** button. You will now need to verify the transaction and sign it with your device.

![](/files/yP61byMjcWrdFnQalR26)

1. Connect your Ledger device, unlock it, and open the Sia app.
2. Press the green **Connect** button; the **Sign** button should enable.

   ![Sia Central connect Ledger](/files/UjRCmtRpizJSJzQwFly0)
3. Click the green **Sign** button.
4. You will now need to confirm the transaction details on your device.

   ![Confirm on Ledger device](/files/Oq2Pe91Jf4pmROjJNrQY)
5. Verify that the "SC Output #1", displayed on your device, matches your intended recipient. To confirm on the device: scroll to page 2 by pressing the right button, then press both buttons at the same time.
6. Next the send amount will be displayed; verify it matches the amount you wish to send. Then confirm by pressing both buttons at the same time.
7. Verify that "Miner Fee #1" matches the amount displayed on the screen. Confirm by pressing both buttons at the same time.
8. After confirming the transaction details are correct, sign the transaction. Press the right button once; the device should now say "Approve". Press both buttons at the same time to confirm the signature.
9. In the lite wallet, the **Send** button should appear. To broadcast your transaction and send your Siacoin, press **Send**. The amount will be deducted from your balance and sent to your recipient.

   ![Sia Central send step](/files/K5UnIJ2fkBvuG7UDgzHc)

If the transaction broadcast successfully, you should now have a new unconfirmed transaction in your transaction list deducting the amount + the transaction fee. Your recipient will have to wait between 10 minutes to an hour for the transaction to be confirmed. Depending on how many UTXOs are in your wallet; you may have to wait for at least one confirmation before being able to send another transaction.

![Sia Central shows unconfirmed transaction](/files/w9raTNqg50DrXav7Kw4f)

## Additional help

If you're having trouble, we're here to help. Come talk to us on our [Discord](https://sia.tech/discord) and post in the `#help` channel.


# Sia Ledger Nano app with CLI


# S3 Integrations


# Jellyfin

A step-by-step guide for setting up Jellyfin with renterd.

## What is `Jellyfin`?

Jellyfin stands out as a free, open-source media server, offering a compelling alternative to proprietary platforms like Emby and Plex. It’s designed to give you complete control over organizing, managing, and streaming your media collection, which includes movies, TV shows, music, and photos. Its client/server model ensures cross-platform compatibility, enabling access to various devices, including desktops, smartphones, and smart TVs. The main allure of setting up Jellyfin is the autonomy it offers: you have complete control over your media, free from hidden fees or data tracking. Its user-friendly interface and robust community support make it highly customizable and continuously evolving. Jellyfin is ideal for creating a personal media hub, akin to having your own private Netflix, where your entire media library is organized and easily streamable to your chosen devices anywhere in the world. This combination of features makes Jellyfin not just a media server but a customizable, privacy-respecting solution that adapts to your growing media needs.

## Recommended System Requirements:

* **Processor:** A modern quad-core processor (Intel i5/i7 or equivalent AMD processor) or better.
* **Memory:** 16GB of RAM. More if handling high-quality media or numerous streams.
* **Storage:** SSD for the operating system and applications, with additional HDD or SSD storage for cached media files.
* **Network:** Stable, high-speed internet connection for effective streaming and data transfers.
* **Operating System:**
  * Windows 10 or later
  * MacOS 12 or later
  * Linux (Ubuntu, Debian, Fedora, CentOS, etc)

## Step 1: Install `renterd` and configure S3

This guide requires that you have a working installation of `renterd`. If you have not already installed `renterd`, you will need to do so before continuing.

{% hint style="warning" %}
Make sure to configure S3 when installing `renterd`, as this will be required later.
{% endhint %}

{% embed url="<https://docs.sia.tech/v/current/renting/setting-up-renterd>" %}

## Step 2: Install `rclone`

Install rclone and configure a new S3 remote using `renterd` for your storage backend.

{% embed url="<https://docs.sia.tech/sia-integrations/s3-integrations/rclone>" %}

## Step 3: Upload media

Once your `renterd` remote has been mounted on your system, you can begin uploading media. For the best experience, following the Jellyfin naming and sorting conventions is recommended. Doing so will help Jellyfin automatically obtain detailed metadata from various online databases. This includes cover art, media description, date, rating, related media, etc.

Below is an example of a properly structured file system following Jellyfin’s [TV Shows](https://jellyfin.org/docs/general/server/media/shows) and [Movies](https://jellyfin.org/docs/general/server/media/movies/) standards.

![](/files/o0qgQItGiIV39X6xMbt7)

## Step 4: Install `Jellyfin`

Download and install the Jellyfin server for your system.

{% embed url="<https://jellyfin.org/downloads/server>" %}

## Step 5: Configure `Jellyfin` Server

Once you have installed the Jellyfin Server for your system, you can visit [`http://localhost:8096`](http://localhost:8096/) in your browser and follow the onscreen setup wizard to complete setting up your Jellyfin Server.

Select your preferred display language and click “Next”.

![](/files/IYG355ikIFW8QDNrx3xy)

Create a `Username` and `Password`, then click “Next”.

![](/files/NP9atJtbPbveEi1IkZjn)

On the next screen, you will be asked to set up your media libraries. Since this guide uses two media types in our `renterd` bucket, TV Shows and movies, we will create a separate library for each. Click the `Add Media Library` card you see on the screen.

![](/files/oPfyagkFVTfgLqxbNOG7)

You will next be asked to select a `Content type`. We will begin by adding our TV Shows first. Select shows from the drop-down menu.

![](/files/6FxfMxlrRUnBj7PdByP9)

Next, enter a Display name and click the `+` to add your media.

![](/files/KGDFODjBisd0I5xBMxSn)

Enter the folder path to where your TV Shows are stored on your mounted `renterd` remote and click “Ok”.

![](/files/xeBY4qHVc2atWXmLB3HT)

Finish configuring the rest of the `Library Settings` to your preferences, then click “Ok”.

![](/files/c6z3YwH83NTOu1cfmGkk)

You will now see your TV Shows added to your media libraries. Repeat the process to add your Movies library and any others you might have. Then click “Next”.

![](/files/WTokrhQB1LSsuww27gRM)

Select the `Language` and `Country` you would like to use as the default for downloading your library’s metadata. Then click “Next”.

![](/files/D43earGAbU7LBdJ0ijNp)

Configure Remote Access to your Server. If you are planning on accessing your libraries from another device on your network, you will need to have `Allow remote connections to this server` selected. Click “Next” when ready.

{% hint style="warning" %}
If you would like to access your Jellyfin libraries from outside your network, you should only do so using a secure `HTTPS` connection. This can be easily set up using [Caddy](https://caddyserver.com/).
{% endhint %}

![](/files/6Rtjhu4081uXqkluRIXH)

Congratulations! You have completed setting up your Jellyfin server. You can now click “Finish” and log in using the account you created initially.

![](/files/g6A2QXgRGGYUOtTEsFjy)

## Step 6: Accessing your media collection

### Install a Jellyfin client

Once you have your Jellyfin server up and running, you can access your media collection from any device on your network using one of the available [Jellyfin clients](https://jellyfin.org/downloads/clients/all).

{% embed url="<https://jellyfin.org/downloads/clients/all>" %}

### Connect to your Jellyfin server

After you have installed a Jellyfin client on your device, run the client app and follow the onscreen instructions to connect to your Jellyfin server.

Click "Add Server".

![](/files/49Q9h2h8p3cyzpvUIeQJ)

Type in your server’s IP address, followed by port `8096`, then click "Connect".

![](/files/1PJu8NAGhRzaaFCwBZDx)

Next, enter your `User` name and `Password`, then click "Sign In.

![](/files/xoPbOGiDIMcxOrPapizK)

## All done.

Congratulations! You have successfully set up Jellyfin to stream your media collection from the Sia network.

![](/files/9CsHe1TsPjanMVqHmdZy)


# Nextcloud

A step-by-step guide for setting up Nextcloud with renterd.

## What is `Nextcloud`?

Nextcloud is an open-source content collaboration platform. It’s like your own Cloud service that runs on your own hardware. You can use it for storing and sharing files through a web interface, mobile app, or desktop client, and even to collaborate with others or as a communication platform. There is almost no limit to what it can do with its open plugin store.

## Step 1: Install `renterd` and configure S3

This guide requires that you have a working installation of `renterd`. If you have not already installed `renterd`, you will need to do so before continuing.

{% hint style="warning" %}
Make sure to configure S3 when installing `renterd`, as this will be required later.
{% endhint %}

{% embed url="<https://docs.sia.tech/renting/setting-up-renterd>" %}

## Step 2: Install `Nextcloud`

Once you have `renterd` installed with a working S3 endpoint, you will now need to install the latest version of Nextcloud.

{% embed url="<https://nextcloud.com/install/>" %}

{% hint style="info" %}
For detailed instructions on installing Nextcloud, please refer to the [Nextcloud Administration Manual](https://docs.nextcloud.com/server/latest/admin_manual/installation/).
{% endhint %}

## Step 3: Configuring `Nextcloud`

Now that you have both `Nextcloud` and `renterd` running, we can mount a `renterd` bucket as a folder. To keep it simple, this guide will mount the `default` bucket. This bucket is where files will be uploaded by `default` if no other bucket is specified. If you want to use a different one, e.g., a `nextcloud` bucket, this can be done through the `renterd` web UI.

### Enable “External storage support”

Before we mount the folder, we must ensure that “External storage support” has been enabled in `Nextcloud`. From the landing page, click the round shape with your user’s initials in the top right. This will open a dropdown menu.

![](/files/6aJdwjjdcwDcrqSOShqZ)

From there, select “Apps”. This takes you to the apps menu, where you should find the “External storage support” — app. Make sure to enable it if it isn’t already. It should look like this if it is ready to use (The button on the right says “Disable”).

![](/files/R8FGByOyine60lLjLCGe)

### Configure backend

Now, go to “Administration settings” from the same dropdown menu as before. On the left, you will find two sections. In the lower section labeled “Administration”, select “External storage”. From there, you should get to a menu like below.

![](/files/3MGFIQikNdauFT6H9FRZ)

Select “Amazon S3” and give your folder a friendly name like “Sia”. For “Authentication”, select “Access key”. Fill in the bucket “default”, the hostname of your renterd instance (e.g., localhost), and the port “8080” (unless you changed the default port). Also, make sure to tick “Enable Path Style” and fill in your access key information. It’s the same as the one you specified when starting renterd. If you want to give all your Nextcloud users access to mount that folder, select “All users” as well. Finally, click the check mark on the right. If everything was configured correctly, a green check mark should appear on the left.

![](/files/Mp1SsCHRk5TTUJQwYIGt)

## All done.

Congratulations! You successfully configured Sia as a backend for your `Nextcloud` instance. If you click the “Files” tab on the top and then “External storage” in the menu on the left, you should see the folder as shown below.

![](/files/rkHKgzov3pVFe5quHdmG)


# rclone

A step-by-step guide for setting up rclone with renterd for Windows, Mac OS, and Linux.

## What is rclone?

Rclone is a command-line program to manage files on cloud storage. Rclone is very feature-rich and integrates with dozens of cloud storage providers, including any S3-compatible object stores like Sia `renterd`.

> Users call rclone *"The Swiss army knife of cloud storage"*, and *"Technology indistinguishable from magic"*.

Rclone [mounts](https://rclone.org/commands/rclone_mount/) any local, cloud, or virtual filesystem as a disk on Windows, Mac OS, Linux, and FreeBSD and serves these over [SFTP](https://rclone.org/commands/rclone_serve_sftp/), [HTTP](https://rclone.org/commands/rclone_serve_http/), [WebDAV](https://rclone.org/commands/rclone_serve_webdav/), [FTP](https://rclone.org/commands/rclone_serve_ftp/), and [DLNA](https://rclone.org/commands/rclone_serve_dlna/). The mount lets us interact with our Sia `renterd` storage as a regular filesystem. We can mount `renterd` storage to a server’s filesystem or even a local laptop’s filesystem.

## Step 1: Install `renterd` and configure S3

This guide requires that you have a working installation of `renterd`. If you have not already installed `renterd`, you will need to do so before continuing.

{% hint style="warning" %}
Make sure to configure S3 when installing `renterd`, as this will be required later.
{% endhint %}

{% embed url="<https://docs.sia.tech/renting/setting-up-renterd/>" %}

## Step 2: Install `rclone`

{% hint style="danger" %}
Please note that only `rclone` versions 1.56.0 and above are supported.
{% endhint %}

Install `rclone` for your system using the official [`rclone` install guide](https://rclone.org/install/).

{% embed url="<https://rclone.org/install/>" %}

## Step 3: Configuring `rclone`

Now `rclone` has been installed, you can use the interactive configuration wizard to set up a new remote. To do so, run the following command from the Terminal.

```shell-session
rclone config
```

When the configuration wizard loads, enter `n` to create a new remote.

```shell-session
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
```

Next, name your remote. You can name it anything you want, but for this guide, we will be naming it `renterd`.

```shell-session
Enter name for new remote.
name> renterd
```

You will now be given a list of `Storage` options. Type in `s3` and press `Enter`.

```shell-session
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
...
Storage> s3
```

Next, you will be asked to select a `Provider`. Type in `other` and press `Enter`

```shell-session
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
...
provider> Other
```

You will now be asked to select how you would like to supply your S3 credentials. Since we are supplying an `access_key_id` and `secret_access_key`, we will not be using environment variables. Type in `false` or simply press `Enter` to use the default.

```shell-session
Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
...
env_auth> false
```

For the next two questions, you will be prompted for your `access_key_id` and `secret_access_key` that you set in [Step 1](#step-1-enable-renterd-s3-api).

```shell-session
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> your_renterd_access_key
```

```shell-session
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> your_renterd_secret_key
```

When prompted for your `Region`, press `Enter` to leave it blank.

```shell-session
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
region>
```

You will now be asked to enter an `Endpoint`. This should be the same as the `address` parameter we configured in our `renterd.yml` for [Step 1](#step-1-enable-renterd-s3-api).

```shell-session
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> http://localhost:8080
```

When asked for a `Location constraint` press `Enter` to leave it empty.

```shell-session
Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>
```

Next, you will be asked to select an `ACL` from the list provided. Type in `private` and press `Enter`.

```shell-session
Option acl.
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server-side copying objects as S3
doesn't copy the ACL from the source but rather writes a fresh one.
If the acl is an empty string then no X-Amz-Acl: header is added and
the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
...
acl> private
```

When asked if you would like to edit the advanced config, type in `n` and press `Enter`.

```shell-session
Edit advanced config?
y) Yes
n) No (default)
y/n> n
```

You will now be given a summary of your new remote. If they are correct, you can type in `y` and press `Enter` to save your remote.

```shell-session
Configuration complete.
Options:
- type: s3
- provider: other
- access_key_id: your_renterd_access_key
- secret_access_key: your_renterd_secret_key
- endpoint: localhost:8080
- acl: private
Keep this "renterd" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
```

You have now successfully created a remote for `renterd`. You can now type in `q` and press `Enter` to quit the configuration wizard.

## Step 4: Mount the filesystem

Now that your `renterd` remote has been configured, it can be mounted on your computer's filesystem.

```shell-session
rclone mount renterd:/default /path/to/mount/point/ --s3-chunk-size 120MiB --fast-list --vfs-cache-mode full --daemon
```

## All done.

{% hint style="success" %}
`renterd` should now be successfully mounted on your computer's filesystem. For more details and system-specific instructions, visit the official [`rclone` documentation](https://rclone.org/commands/rclone_mount/)

{% embed url="<https://rclone.org/commands/rclone_mount/>" %}
{% endhint %}


# V2: The Final Cut - Network Upgrade (December 2025)

Sia performed a network upgrade at block 552,100 which occurred at about 9:40 AM UTC on December 2, 2025. This release removed deprecated fields, fixed a difficulty adjustment bug, and prepared the network for parallel and instant syncing.

The hardfork activated without issue and all ecosystem parties upgraded successfully.

#### Supported versions:

* walletd v2.11.0+
* hostd v2.4.0+
* renterd v2.7.0+
* minerd v0.3.2+

This is a drop-in upgrade for all v2 compatible versions.

## Exchanges

As always, we recommend never storing your tokens on an exchange. You know the old saying: not your keys, not your coins.

| Exchange   | Pct. Daily Volume | Status           |
| ---------- | ----------------- | ---------------- |
| Poloniex   | 40%               | Upgrade complete |
| HTX        | 26%               | Upgrade complete |
| BitMart    | 11%               | Upgrade complete |
| Binance    | 6%                | Upgrade complete |
| Upbit      | 4%                | Upgrade complete |
| MEXC       | 2%                | Upgrade complete |
| CoinW      | 2%                | Notified         |
| SuperEx    | 1.7%              | Notified         |
| Digifinex  | 1.5%              | Notified         |
| Bybit      | 1.5%              | Upgrade complete |
| BYDFi      | 1.5%              | Notified         |
| BigONE     | 1.3%              | Notified         |
| Kraken     | 1%                | Upgrade complete |
| BitKan     | 0.5%              | Upgrade complete |
| Gate.io    | 0.3%              | Upgrade complete |
| Bithumb    | 0.2%              | Upgrade complete |
| Crypto.com | 0.2%              | Notified         |

## Mining Pools

| Pool   | Status           |
| ------ | ---------------- |
| f2pool | Upgrade complete |
| DxPool | Upgrade complete |
| Luxor  | Upgrade complete |


# V2 Hardfork - June 2025

The Sia network hardfork activated at block 526,000 on June 6th, 2025. All major ecosystem pools and exchanges supported the upgrade. We're still working with a small number of third parties to ensure full compliance.

## Details of the fork

The Sia network forked to radically update Sia's consensus code, bringing huge benefits to performance, scalability, and functionality. Given the significance of this hardfork, we've come to refer to it as **Sia v2**.

Upgrading to Sia v2 is necessary to send or store coins, rent, or host after the fork. Every user, exchange, mining pool, wallet, and integration must upgrade.

## What do I need to do?

If you use Sia and have not upgraded yet, now's the time. Renters, hosts, and wallet users should [update to the latest releases](https://sia.tech/upgrade-your-software) to get the most recent fork-compliant versions.

{% hint style="info" %}
If you haven't checked in for a while, in 2024 we split Sia into three distinct apps - `renterd` for renters who upload files, `hostd` for hosts who store those files, and `walletd` for Siacoin holders. You'll need to download and install each app if you use the associated function. Sia-UI and `siad` are deprecated and will not be updated.
{% endhint %}

### If you are using Sia Central's lite wallet

You do not need to do anything to support the fork.

### If you are holding tokens on an exchange

All exchanges that we are aware of have updated to support the fork, so your coins should be good to go. As always, we recommend never storing your tokens on an exchange long-term. You know the old saying: not your keys, not your coins.

### If you *are* an exchange or mining pool

Upgrade to the latest version of `walletd`. Read our [upgrade guide](/miscellaneous/v2/exchanges) for exchanges.

## How did it work?

### Step 1: Software release

The hardfork was multi-stage. First, users signaled support for the hardfork by updating to hardfork-compatible versions.

### Step 2: Hardfork activation

The actual hardfork -- the point at which you *must* be running a v2 node -- occured at block 526,000 on June 6th, 2025. The Sia ecosystem is large, so we made sure that not only our users, but exchanges, miners and pools, web wallets, and other integrations had plenty of time to update.

* The hardfork activated at block height **526,000** on **June 6th, 2025**. After this height, blocks contained v2 transactions, so if you are not running an updated node, **you will not be able to sync**. This will enable most of the new v2 features.

### So how does the hardfork benefit...

#### ...renters and hosts?

Sia v2 includes an update to the renter-host protocol that is faster and more efficient in almost every measurable way. Here are some highlights:

* Many more options and flexibility for your contracts
* Faster uploads and downloads, including concurrent uploads to the same host
* Enables decentralized uploads and downloads in a browser, no plugins or daemons necessary

It's important for renters and hosts to upgrade if they have not already so that they can enjoy the benefits of v2 and the new renter-host protocol as soon as possible.

#### ...Siacoin holders?

Your Siacoins remain secured by your seed and don’t change with Sia v2. `walletd` is fully compatible with the existing blockchain data, so you're not required to move your coins to prevent loss. However, Sia v2 is deprecating support for legacy 28-word and 29-word seeds in favor of industry standard BIP39 12-word seed phrases.

`walletd` only supports the new 12-word seed format and does **not** support legacy 28-word or 29-word seeds. To ensure continued access to your coins, we **strongly recommend** generating a new 12-word seed and transferring your balance. Use the [SiaCentral Web Wallet](https://wallet.siacentral.com/) to create your new seed and Deposit Address.

* **If you're using a synced Sia-UI wallet:**\
  First send a small test amount (\~10 SC) to the new address to confirm it’s received. Then transfer the rest, leaving 1 SC behind if needed to cover the network fee.
* **If you don’t have a synced Sia-UI wallet:**\
  Log into SiaCentral with your 28/29-word seed and transfer your coins from there. SiaCentral will continue to support both old and new seed formats, but official apps will only support the new 12-word format.

We recommend that all Siacoin holders who have not upgraded to `walletd` to do so immediately.

#### ...for miners?

We've carefully designed Sia v2 to preserve the layout of block headers, so all mining hardware will remain compatible. You should, however, check in with your mining pool to make sure they've updated.

#### ...for exchanges?

Sia v2 will enable highly increased performance and usability for your exchange. You'll have more control over your Siacoin treasury and the ways you interact with it.

Exchanges should upgrade to `walletd` v2 as soon as possible to ensure an issue-free transition. Due to the volume of users you serve, you should leave time for a proper upgrade. Once you do, your exchange will be able to support the fork once it takes effect.

## More questions?

Let us know! Send us an [email](mailto:hello@sia.tech), or [reach out to the community on Discord](https://discord.gg/sia).


# How to Upgrade: Exchanges

This guide is for exchanges that are currently using `siad` to track and manage Siacoin deposits. Exchanges should upgrade to `walletd` before the V2 hardfork to continue supporting the Sia network.

{% hint style="info" %}
The hardfork activated at the block height of **526,000** on or around **June 6th, 2025 06:00 UTC**.
{% endhint %}

`walletd` is the new reference wallet for exchanges. It is designed to be more secure, reliable, and scalable than `siad`. `walletd` also has a more robust API, supports multiple wallets simultaneously, and provides easier support for secure key management setups.

### Differences from `siad`

The most important difference between `siad` and `walletd` is that `walletd` is a watch-only server. That means that it does not store any private keys. This makes `walletd` more secure, but also means that transactions must be signed by an external service with access to the private keys. Either a hardware security device, like a YubiKey, Hashicorp Vault, `vaultd`, or any other offline signing node with ed25519 support. This can be more complex than with `siad`, but it provides significantly more flexibility and security.

Another difference is that `walletd` does not need to rescan the blockchain when adding new addresses to a wallet. This makes managing deposit addresses significantly easier than with `siad`.

`walletd` supports significantly more addresses than `siad` and can handle a much larger number of transactions. This makes it a better choice for exchanges that need to manage a large number of deposit addresses.

`walletd` does not require addresses to be added to wallets before they can be used for addresses. However, there are a few benefits to using addresses that have been added to a wallet.

* The balance of a wallet is the sum of all addresses that have been added to a wallet
* The wallet event list contains transactions for all of its addresses
* `walletd` can construct transactions using UTXOs controlled by all of the addresses in a wallet

### How to run `walletd`

`walletd` can be installed as a standalone binary or as a Docker container. The Docker container is the recommended way to run `walletd` in a production environment. For exchanges, we recommend running `walletd` in "full" index mode. This mode is designed for exchanges and wallet integrators that need to track all addresses and transactions on the Sia network.

It is also possible to disable HTTP authentication on endpoints that are safe to expose to the public using the `--http.public` flag.

```sh
walletd --index.mode=full --http.public
```

```yml
services:
  walletd:
    image: ghcr.io/siafoundation/walletd:latest
    command: --index.mode=full --http.public
    restart: unless-stopped
```

## Wallets

`walletd` supports multiple wallets. Each wallet has its own set of addresses and transactions. Wallets can be created and updated using the `wallets` API. When running in "full" index mode, it is not required to group addresses into wallets. However, it is recommended to do so for easier indexing.

### Creating a wallet

```sh
curl -u :"sia is cool" "http://localhost:9980/api/wallets" -X POST -d '{"name":"exchange"}'
```

```json
{
        "id": "1",
        "name": "exchange",
        "description": "",
        "dateCreated": "2025-02-07T11:02:51-08:00",
        "lastUpdated": "2025-02-07T11:02:51-08:00",
        "metadata": null
}
```

### Adding an address to a wallet

To add an address to a wallet, you can use the `[PUT] /api/wallets/:id/addresses` endpoint. When an address is added in "full" index mode, the wallet is immediately updated without needing to rescan the chain. The spend policy is used to track the address' unlock conditions. It can be ignored for addresses where the unlock conditions are not known. If the address is already in the wallet, its metadata will be updated.

```sh
curl -u :"sia is cool" "http://localhost:9980/api/wallets/1/addresses" -X PUT -d '{"address":"3dbc6e05dfe9db593dd4796a9522b5df435e9fc45ec9b90b6f2ae5d2d18550b6bd8db06bc824","spendPolicy":{"type":"uc","policy":{"timelock":0,"publicKeys":["ed25519:0d49fba38e80a888f847cb9661fd91f97cfba1e355ddeb15de2b8dd9a4b58614"],"signaturesRequired":1}}}'
```

If successful, the body will be empty and a `204` response code will be returned.

### Getting the balance of a wallet

To get the balance of a wallet, you can use the `[GET] /api/wallets/:id/balance` endpoint. This endpoint will return the balance of the specified wallet.

```sh
curl -u :"sia is cool" "http://localhost:9980/api/wallets/1/balance"
```

```json
{
        "siacoins": "0",
        "immatureSiacoins": "0",
        "siafunds": 0
}
```

### Getting the events of a wallet

To get the events of a wallet, you can use the `[GET] /api/wallets/:id/events` endpoint. This endpoint will return a paginated list of events for the specified wallet. You can use this event list to track deposits and other changes from the wallet. The pagination can be controlled with the `offset` and `limit` query parameters. It defaults to `0` and `50`, respectively.

```sh
curl -u :"sia is cool" "http://localhost:9980/api/wallets/1/events
```

```json
[
        {
                "id": "268ef8627241b3eb505cea69b21379c4b91c21dfc4b3f3f58c66316249058cfd",
                "index": {
                        "height": 0,
                        "id": "e23d2ee56fc5c79618ead2f8f36c1b72c6f3ec5e0f751c05e08bd6665a6ec22a"
                },
                "confirmations": 45791,
                "type": "v1Transaction",
                "data": {
                        "transaction": {
                                "id": "268ef8627241b3eb505cea69b21379c4b91c21dfc4b3f3f58c66316249058cfd",
                                "siacoinOutputs": [
                                        {
                                                "value": "1000000000000000000000000000000000000",
                                                "address": "3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946"
                                        }
                                ],
                                "siafundOutputs": [
                                        {
                                                "value": 10000,
                                                "address": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
                                        }
                                ]
                        }
                },
                "maturityHeight": 0,
                "timestamp": "2023-01-13T08:53:20Z",
                "relevant": [
                        "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
                ]
        }
]
```

### Sending Transactions

When using wallets, you can construct transactions using the construct API. This API will return a transaction that must be signed before it can be broadcast to the network. You can sign transactions using a hardware security device, like a YubiKey, Hashicorp Vault, or another offline signing node. This can be more complex than with `siad`, but it provides significantly more flexibility and security.

The example is provided in Go, but the same process can be done in any language that supports ed25519 signing.

```go
package main

import (
	"go.sia.tech/core/types"
	"go.sia.tech/walletd/v2/api"
	"go.sia.tech/walletd/v2/wallet"
)

const (
	walletdAPIAddress  = "http://localhost:9980/api"
	walletdAPIPassword = "change me"
)

func main() {
	privateKey := types.GeneratePrivateKey() // private key is a standard ed25519 private key

	unlockConditions := types.StandardUnlockConditions(privateKey.PublicKey())
	depositAddress := unlockConditions.UnlockHash()
	recipientAddress := types.VoidAddress
	sendAmount := types.Siacoins(10)

	client := api.NewClient(walletdAPIAddress, walletdAPIPassword)

	w, err := client.AddWallet(api.WalletUpdateRequest{
		Name: "test wallet",
	})
	if err != nil {
		panic(err)
	}

	// create a wallet and add an address
	wc := client.Wallet(w.ID)
	err = wc.AddAddress(wallet.Address{
		Address: depositAddress,
		SpendPolicy: &types.SpendPolicy{
			Type: types.PolicyTypeUnlockConditions(unlockConditions),
		},
	})
	if err != nil {
		panic(err)
	}

	cs, err := client.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	// construct a transaction sending 10 SC to the void address
	resp, err := wc.Construct([]types.SiacoinOutput{
		{Address: recipientAddress, Value: sendAmount},
	}, nil, depositAddress)
	if err != nil {
		panic(err)
	}

	basis := resp.Basis
	txn := resp.Transaction

	for i, sig := range txn.Signatures {
		// calculate the sig hash
		sigHash := cs.WholeSigHash(txn, sig.ParentID, 0, 0, nil)
		// sign the hash
		sig := privateKey.SignHash(sigHash)
		// add the signature to the transaction
		txn.Signatures[i].Signature = sig[:]
	}

	// broadcast the transaction
	if err := client.TxpoolBroadcast(basis, []types.Transaction{txn}, nil); err != nil {
		panic(err)
	}
}
```

## Addresses

In "full" index mode, `walletd` will automatically index all addresses on the Sia network. This means that you can query any address on the Sia network without needing to add it to a wallet. However, it is recommended to add addresses to a wallet for easier management.

### Getting the balance of an address

To get the balance of an address, you can use the `[GET] /api/addresses/:address/balance` endpoint. This endpoint will return the balance of the specified address. When in full index mode, you can use this endpoint to check the balance of any address on the Sia network.

```sh
curl "http://localhost:9980/api/addresses/053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807/balance"
```

```json
{
        "siacoins": "2102400000000000000000000000000000",
        "immatureSiacoins": "0",
        "siafunds": 10000
}
```

### Getting UTXOs of an address

To get the UTXOs of an address, you can use the `[GET] /api/addresses/:address/outputs/siacoin` endpoint. This endpoint will return a paginated list of UTXOs controlled by the address. By default, 50 UTXOs will be returned. When in full index mode, you can use this endpoint to get the UTXOs of any address on the Sia network.

The returned `basis` field should be used when broadcasting a transaction using `[POST] /api/txpool/broadcast`.

```sh
curl http://localhost:9980/api/addresses/053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807/outputs/siacoin
```

```json
{
        "basis": {
                "height": 36160,
                "id": "00000000a23eea639f23280271ee4ca6d0c0d377203836b23f8d71b23f6b2e11"
        },
        "outputs": [
                {
                        "id": "c4ea841fd65d568800f0570f9884b89ce5a32522550567825d9a37586b71ddbf",
                        "stateElement": {
                                "leafIndex": 62,
                                "merkleProof": [
                                        "4a4efb6bcd0c72f9184919d37cf82a3bba8437e839729862f3e950f67dd6abc4",
                                        "7c41069f30e59762a25f50f592b1e055c671e5a491d86dba890d261c50fa882d",
                                        "2394d769cda0c493a9c11ff91575b2b69bde3ff82098b96d0b28fa05879fa15b",
                                        "e44f7f72902cea0a6c0c1502bcdeb8e20b3d096a8483b484f7f1a50b6c4ce172",
                                        "2f19474ba8ced8878c7bad3667dfb360eae2eebdec12e9331ce4949316bbdaf1",
                                        "fb2bb42a2eb46429404181c66ed47d98d3cc14de0277646a3dc97d7b1bbde520",
                                        "c2ec74ea3fbe05b61627c7991ff218618169d291324cb3e94239a75a3f08b8c8",
                                        "d712efa3e01cb26bb3ec7b6695b67d4b6c6d9c4f56d2e5b13e1da5268135db43",
                                        "50fcc5496c329090ff1752d294eb1e5a7627adb932f1a203585ab0c3826cd463",
                                        "504400a021f71285e05ce053ea50fe728cc03536df530a2a7b8edf9bb36623d7",
                                        "49b6d947606ffc9c7ff32ae4ecfd2f8c79243bf6038bd02a3acb8694900a171b",
                                        "83d3a112a3da3227e7249be6cd00bf60109d47a521ee0483b426d937fd22bdbc",
                                        "969707c956e18368593a38995033cb1849e5e2ff7bb1aac7b595b3662b5cac1e",
                                        "3fa743ce013f5e0086d6eb48e089caa02b0ff11bd79e142cc612ae9d018b5863",
                                        "d59fda9e08a521c6db35b6f60cc78b1d304834b781e1bbfb5b7955d5daea75aa",
                                        "42614f598bc8698783f619c5e07ec00b46017015d99a5f94b14c9e38e29adcc8"
                                ]
                        },
                        "siacoinOutput": {
                                "value": "1576800000000000000000000000000000",
                                "address": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
                        },
                        "maturityHeight": 174
                }
        ]
}
```

### Scanning for deposits

`walletd` has an endpoint designed to make scanning the blockchain for deposits simpler. `[GET] /api/consensus/updates/:index` will return 10 blocks after the specified index. This endpoint is designed to be polled by exchanges that do not use `wallets` to track new deposits. `index` is the chain index of the last block that has been processed. The updates will also handle reverted blocks in the path. When a changeset is processed, `index` should be updated to the last block processed to process the next batch of blocks.

The block data, the spent UTXOs, and the height are all included in the response. This data can be used to update the exchange's internal database with new deposits from relevant addresses.

```sh
curl http://localhost:9980/api/consensus/updates/0::0000000000000000000000000000000000000000000000000000000000000000
```

```json
{
	"applied": [
		{
			"update": {
				"siacoinElements": [
					{
						"siacoinElement": {
							"id": "35b81e41f594d7faeb88bd8eaac2eaa68ce99fe1c8fe5f0cba8fafa65ab3a70e",
							"stateElement": {
								"leafIndex": 0,
								"merkleProof": [
									"88052fa2d1e22e4a5542fed9686cdad3fbeccbc60d15d4fd36a7691d61add1e1"
								]
							},
							"siacoinOutput": {
								"value": "1000000000000000000000000000000000000",
								"address": "3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946"
							},
							"maturityHeight": 0
						},
						"created": true,
						"spent": false
					}
				],
				"siafundElementDiffs": [
					{
						"siafundElement": {
							"id": "69ad26a0fbd1a6985d2053246650bb3ba5f3491d818748b6c8562db1ddb2c45b",
							"stateElement": {
								"leafIndex": 1,
								"merkleProof": [
									"837482a39d5bf66f07bae3b89191e4375b82c9f341ce6a17e22e14e0333ab9f6"
								]
							},
							"siafundOutput": {
								"value": 10000,
								"address": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
							},
							"claimStart": "0"
						},
						"created": true,
						"spent": false
					}
				],
				"fileContractElementDiffs": null,
				"v2FileContractElementDiffs": null,
				"attestationElements": null,
				"chainIndexElement": {
					"id": "e23d2ee56fc5c79618ead2f8f36c1b72c6f3ec5e0f751c05e08bd6665a6ec22a",
					"stateElement": {
						"leafIndex": 2
					},
					"chainIndex": {
						"height": 0,
						"id": "e23d2ee56fc5c79618ead2f8f36c1b72c6f3ec5e0f751c05e08bd6665a6ec22a"
					}
				},
				"updatedLeaves": {},
				"treeGrowth": {},
				"oldNumLeaves": 0,
				"numLeaves": 3
			},
			"state": {
				"index": {
					"height": 0,
					"id": "e23d2ee56fc5c79618ead2f8f36c1b72c6f3ec5e0f751c05e08bd6665a6ec22a"
				},
				"prevTimestamps": [
					"2023-01-13T00:53:20-08:00",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z"
				],
				"depth": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
				"childTarget": "0000000100000000000000000000000000000000000000000000000000000000",
				"siafundTaxRevenue": "0",
				"oakTime": 0,
				"oakTarget": "00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff",
				"foundationSubsidyAddress": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807",
				"foundationManagementAddress": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69",
				"totalWork": "1",
				"difficulty": "4294967295",
				"oakWork": "4294967297",
				"elements": {
					"numLeaves": 3,
					"trees": [
						"e1c3af98d77463b767d973f8a563947d949d06428ff145db30143a2811d10014",
						"134b1f08aec0c7fbc50203a514277d197947e3da3ab1854749bf093b56402912"
					]
				},
				"attestations": 0
			},
			"block": {
				"parentID": "0000000000000000000000000000000000000000000000000000000000000000",
				"nonce": 0,
				"timestamp": "2023-01-13T00:53:20-08:00",
				"minerPayouts": [],
				"transactions": [
					{
						"id": "268ef8627241b3eb505cea69b21379c4b91c21dfc4b3f3f58c66316249058cfd",
						"siacoinOutputs": [
							{
								"value": "1000000000000000000000000000000000000",
								"address": "3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946"
							}
						],
						"siafundOutputs": [
							{
								"value": 10000,
								"address": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
							}
						]
					}
				]
			}
		},
		{
			"update": {
				"siacoinElements": [
					{
						"siacoinElement": {
							"id": "ca02d6807c92f61af94e626604615fbcdb471f38fcd8f3add6c6e6e0485ce090",
							"stateElement": {
								"leafIndex": 3,
								"merkleProof": [
									"e1c3af98d77463b767d973f8a563947d949d06428ff145db30143a2811d10014",
									"134b1f08aec0c7fbc50203a514277d197947e3da3ab1854749bf093b56402912"
								]
							},
							"siacoinOutput": {
								"value": "300000000000000000000000000000",
								"address": "c5e1ca930f193cfe4c72eaed8d3bbae627f67d6c8e32c406fe692b1c00b554f4731fddf2c752"
							},
							"maturityHeight": 145
						},
						"created": true,
						"spent": false
					}
				],
				"siafundElementDiffs": null,
				"fileContractElementDiffs": null,
				"v2FileContractElementDiffs": null,
				"attestationElements": null,
				"chainIndexElement": {
					"id": "0000000028e731f0bb5d48662283bec83cca9427581b948d1036deb2b42c3006",
					"stateElement": {
						"leafIndex": 4
					},
					"chainIndex": {
						"height": 1,
						"id": "0000000028e731f0bb5d48662283bec83cca9427581b948d1036deb2b42c3006"
					}
				},
				"updatedLeaves": {},
				"treeGrowth": {
					"0": [
						"190d98a7d8ff464e57f89dc916b155455ecf927f4c74b9edf5e80c103f052bfa",
						"134b1f08aec0c7fbc50203a514277d197947e3da3ab1854749bf093b56402912"
					],
					"1": [
						"2b082bec52801c1e61e5b0d0c1f5fc3925bd24e16d2f490afeb70374828586f1"
					]
				},
				"oldNumLeaves": 3,
				"numLeaves": 5
			},
			"state": {
				"index": {
					"height": 1,
					"id": "0000000028e731f0bb5d48662283bec83cca9427581b948d1036deb2b42c3006"
				},
				"prevTimestamps": [
					"2023-01-13T08:18:19-08:00",
					"2023-01-13T00:53:20-08:00",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z",
					"0001-01-01T00:00:00Z"
				],
				"depth": "00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff",
				"childTarget": "0000000100000000000000000000000000000000000000000000000000000000",
				"siafundTaxRevenue": "0",
				"oakTime": 26699000000000,
				"oakTarget": "000000008052201448053c59f99803e7a8165929036cd574d91425423191387c",
				"foundationSubsidyAddress": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807",
				"foundationManagementAddress": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69",
				"totalWork": "4294967297",
				"difficulty": "4294967295",
				"oakWork": "8568459756",
				"elements": {
					"numLeaves": 5,
					"trees": [
						"589fb425faa23be357492394813dc575505899d42d0b23a7162e1c68f7eeb227",
						"750cc671d80aef6ee5c73344ba4e74eccda77d9f0cf51ed6237952b1d84bc336"
					]
				},
				"attestations": 0
			},
			"block": {
				"parentID": "e23d2ee56fc5c79618ead2f8f36c1b72c6f3ec5e0f751c05e08bd6665a6ec22a",
				"nonce": 10689346,
				"timestamp": "2023-01-13T08:18:19-08:00",
				"minerPayouts": [
					{
						"value": "300000000000000000000000000000",
						"address": "c5e1ca930f193cfe4c72eaed8d3bbae627f67d6c8e32c406fe692b1c00b554f4731fddf2c752"
					}
				],
				"transactions": [
					{
						"id": "1148417ad8fa6546646da6922618358210bc7a668ef7cb25f6a8a3605851bc7b",
						"arbitraryData": [
							"Tm9uU2lhAAAAAAAAAAAAAClvJjNhfcbxtEfP2yfbBM4="
						]
					}
				]
			}
		}
	],
	"reverted": null
}
```

### Sending Transactions

If you do not want to use a wallet to construct a transaction, you can manually select UTXOs and build the transaction yourself. This is more complex than using a wallet, but it provides more control over the transaction construction process. It is required to use this method if you are using multi-sig addresses.

```go
package main

import (
	"go.sia.tech/core/types"
	"go.sia.tech/walletd/v2/api"
)

const (
	walletdAPIAddress  = "http://localhost:9980/api"
	walletdAPIPassword = "change me"
)

func main() {
	const txnSizeBytes = 1200

	privateKey := types.GeneratePrivateKey() // private key is a standard ed25519 private key

	unlockConditions := types.StandardUnlockConditions(privateKey.PublicKey())
	depositAddress := unlockConditions.UnlockHash()
	recipientAddress := types.VoidAddress
	sendAmount := types.Siacoins(10)

	client := api.NewClient(walletdAPIAddress, walletdAPIPassword)

	utxos, basis, err := client.AddressSiacoinOutputs(depositAddress, 0, 10)
	if err != nil {
		panic(err)
	}

	fee, err := client.TxpoolFee()
	if err != nil {
		panic(err)
	}
	minerFee := fee.Mul64(txnSizeBytes)

	txn := types.Transaction{
		MinerFees: []types.Currency{minerFee},
		SiacoinOutputs: []types.SiacoinOutput{
			{Address: recipientAddress, Value: sendAmount},
		},
	}

	// construct a transaction sending 10 SC to the recipient
	outputSum := sendAmount.Add(minerFee)
	var inputSum types.Currency
	for _, utxo := range utxos {
		if inputSum.Cmp(outputSum) >= 0 {
			break
		}

		inputSum = inputSum.Add(utxo.SiacoinOutput.Value)
		txn.SiacoinInputs = append(txn.SiacoinInputs, types.SiacoinInput{
			ParentID:         utxo.ID,
			UnlockConditions: unlockConditions,
		})
		txn.Signatures = append(txn.Signatures, types.TransactionSignature{
			ParentID:       types.Hash256(utxo.ID),
			PublicKeyIndex: 0,
			Timelock:       0,
			CoveredFields:  types.CoveredFields{WholeTransaction: true},
		})
	}

	if inputSum.Cmp(outputSum) < 0 {
		panic("insufficient funds")
	} else if change := inputSum.Sub(outputSum); !change.IsZero() {
		txn.SiacoinOutputs = append(txn.SiacoinOutputs, types.SiacoinOutput{
			Address: depositAddress,
			Value:   change,
		})
	}

	cs, err := client.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	for i, sig := range txn.Signatures {
		// calculate the sig hash
		sigHash := cs.WholeSigHash(txn, sig.ParentID, 0, 0, nil)
		// sign the hash
		sig := privateKey.SignHash(sigHash)
		// add the signature to the transaction
		txn.Signatures[i].Signature = sig[:]
	}

	// broadcast the transaction
	if err := client.TxpoolBroadcast(basis, []types.Transaction{txn}, nil); err != nil {
		panic(err)
	}
}
```

## How to Support V2?

After the block height **526,000** (estimated **June 6th, 2025 06:00 UTC**), `siad` is no longer be able to send or receive Siacoins. To continue supporting the Sia network, exchanges must upgrade to `walletd`. In addition to upgrading to `walletd`, exchanges will need to start sending V2 transactions and using the new V2 API endpoints.

### Sending V2 transactions

This example uses our Go SDK, but you can also use the `walletd` API directly. It is not required to create a wallet to send transactions, but it does simplify transaction creation.

#### Changes from V1

* The miner fee is no longer an array of `Currency` but a single `Currency` value.
* There is a slightly different structure to siacoin inputs
* The input signature has moved to the siacoin input instead of in a separate signatures array.
* The sig hash is calculated using the `InputSigHash` method on the consensus state instead of `WholeSigHash` or `PartialSigHash`.

#### With a wallet

When using a wallet, there are two primary changes to make. The first, is to use `[POST] /api/wallets/:id/construct/v2/transaction` instead of `[POST] /api/wallets/:id/construct/transaction`.

```go
package main

import (
	"go.sia.tech/core/types"
	"go.sia.tech/walletd/v2/api"
	"go.sia.tech/walletd/v2/wallet"
)

const (
	walletdAPIAddress  = "http://localhost:9980/api"
	walletdAPIPassword = "change me"
)

func main() {
	privateKey := types.GeneratePrivateKey() // private key is a standard ed25519 private key

	unlockConditions := types.StandardUnlockConditions(privateKey.PublicKey())
	depositAddress := unlockConditions.UnlockHash()
	recipientAddress := types.VoidAddress
	sendAmount := types.Siacoins(10)

	client := api.NewClient(walletdAPIAddress, walletdAPIPassword)

	w, err := client.AddWallet(api.WalletUpdateRequest{
		Name: "test wallet",
	})
	if err != nil {
		panic(err)
	}

	// create a wallet and add an address
	wc := client.Wallet(w.ID)
	err = wc.AddAddress(wallet.Address{
		Address: depositAddress,
		SpendPolicy: &types.SpendPolicy{
			Type: types.PolicyTypeUnlockConditions(unlockConditions),
		},
	})
	if err != nil {
		panic(err)
	}

	cs, err := client.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	// construct a transaction sending 10 SC to the void address
	resp, err := wc.ConstructV2([]types.SiacoinOutput{
		{Address: recipientAddress, Value: sendAmount},
	}, nil, depositAddress)
	if err != nil {
		panic(err)
	}
	basis := resp.Basis
	txn := resp.Transaction

	// calculate the hash to sign
	sigHash := cs.InputSigHash(txn)

	// sign the transaction
	for i := range txn.SiacoinInputs {
		txn.SiacoinInputs[i].SatisfiedPolicy.Signatures = []types.Signature{privateKey.SignHash(sigHash)}
	}

	// broadcast the transaction
	if err := client.TxpoolBroadcast(basis, nil, []types.V2Transaction{txn}); err != nil {
		panic(err)
	}
}
```

#### Without a wallet

```go
package main

import (
	"go.sia.tech/core/types"
	"go.sia.tech/walletd/v2/api"
)

const (
	walletdAPIAddress  = "http://localhost:9980/api"
	walletdAPIPassword = "change me"
)

func main() {
	const txnSizeBytes = 1200
	privateKey := types.GeneratePrivateKey() // private key is a standard ed25519 private key

	unlockConditions := types.SpendPolicy{Type: types.PolicyTypeUnlockConditions(types.StandardUnlockConditions(privateKey.PublicKey()))}
	depositAddress := unlockConditions.Address()
	recipientAddress := types.VoidAddress
	sendAmount := types.Siacoins(10)

	client := api.NewClient(walletdAPIAddress, walletdAPIPassword)
	utxos, basis, err := client.AddressSiacoinOutputs(depositAddress, 0, 10)
	if err != nil {
		panic(err)
	}

	fee, err := client.TxpoolFee()
	if err != nil {
		panic(err)
	}
	minerFee := fee.Mul64(txnSizeBytes)

	txn := types.V2Transaction{
		MinerFee: minerFee,
		SiacoinOutputs: []types.SiacoinOutput{
			{Address: recipientAddress, Value: sendAmount},
		},
	}

	// construct a transaction sending 10 SC to the recipient
	outputSum := sendAmount.Add(minerFee)
	var inputSum types.Currency
	for _, utxo := range utxos {
		if inputSum.Cmp(outputSum) >= 0 {
			break
		}

		inputSum = inputSum.Add(utxo.SiacoinOutput.Value)
		txn.SiacoinInputs = append(txn.SiacoinInputs, types.V2SiacoinInput{
			Parent: utxo,
			SatisfiedPolicy: types.SatisfiedPolicy{
				Policy: unlockConditions,
			},
		})
	}

	if inputSum.Cmp(outputSum) < 0 {
		panic("insufficient funds")
	} else if change := inputSum.Sub(outputSum); !change.IsZero() {
		txn.SiacoinOutputs = append(txn.SiacoinOutputs, types.SiacoinOutput{
			Address: depositAddress,
			Value:   change,
		})
	}

	cs, err := client.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	// calculate the hash to sign
	sigHash := cs.InputSigHash(txn)

	// sign the transaction
	for i := range txn.SiacoinInputs {
		txn.SiacoinInputs[i].SatisfiedPolicy.Signatures = []types.Signature{privateKey.SignHash(sigHash)}
	}

	// broadcast the transaction
	if err := client.TxpoolBroadcast(basis, nil, []types.V2Transaction{txn}); err != nil {
		panic(err)
	}
}
```

## Signing transactions with `vaultd`

`vaultd` is an optional replacement for `siad`'s secure private key storage. Like `siad`, `vaultd` supports importing 28/29 word seed phrases, generating addresses, and offline signing of transactions using a secure API. If you are running your own keystore, you do not need to use vaultd and can sign transactions using your existing infrastructure.

API documentation can be found here: <https://api.sia.tech/vaultd>

We recommend running `vaultd` in a Docker container, but binaries and setup instructions are also provided on [GitHub](https://github.com/siafoundation/vaultd).

### Running `vaultd`

```yml
services:
  vaultd:
    image: ghcr.io/siafoundation/vaultd:latest
    ports:
      - 127.0.0.1:9980:9980/tcp
    volumes:
      - vaultd-data:/data
    environment:
      VAULTD_API_PASSWORD: my auth password
      VAULTD_SECRET: my encryption secret
    restart: unless-stopped

volumes:
  vaultd-data:
```

### Importing a seed into `vaultd`

Seeds can be imported using the [`[GET] /seeds`](https://api.sia.tech/vaultd#d9f9962b-a82e-4991-b2d7-59d3a80c5a90) endpoint. An example using the Go SDK client can be found below:

```go
package main

import (
	"context"
	"log"

	"go.sia.tech/vaultd/api"
)

const (
	// api address of your vaultd
	vaultdAPIAddress = "http://localhost:9980"

	// api password of your vaultd
	vaultdAPIPassword = "change me"

	// number of keys to generate and import into vaultd. Make sure this is
	// large enough. You can always generate more keys by calling GenerateKeys
	// again.
	keysToGenerate = 100

	// your siad seed to import
	phrase = "touchy inroads aptitude perfect seventh tycoon zinger madness firm cause diode owls meant knife nuisance skirting umpire sapling reruns batch molten urchins jaded nodes"
)

func main() {
	client := api.NewClient(vaultdAPIAddress, vaultdAPIPassword)

	// add seed to store
	meta, err := client.AddSeed(context.Background(), phrase)
	if err != nil {
		panic(err)
	}

	// add keys to store
	resp, err := client.GenerateKeys(context.Background(), meta.ID, keysToGenerate)
	if err != nil {
		panic(err)
	}
	for _, addr := range resp {
		log.Printf("generated address: %v", addr.Address)
	}
}
```

### Signing V1 Transactions

Once you have imported your keys, you can sign legacy transactions using the [`[POST] /sign`](https://api.sia.tech/vaultd#6d7949f0-790e-4cd3-b85e-76ae01a631d1) endpoint.

#### Example

```go
package main

import (
	"context"

	"go.sia.tech/core/types"
	vaultd "go.sia.tech/vaultd/api"
	walletd "go.sia.tech/walletd/v2/api"
	"go.sia.tech/walletd/v2/wallet"
)

const (
	// api address of your vaultd
	vaultdAPIAddress = "http://localhost:9980"

	// api password of your vaultd
	vaultdAPIPassword = "change me"

	walletdAPIAddress = "http://localhost:9880"

	walletdAPIPassword = "change me"

	// number of keys to generate and import into vaultd. Make sure this is
	// large enough. You can always generate more keys by calling GenerateKeys
	// again.
	keysToGenerate = 100

	// your siad seed to import
	phrase = "touchy inroads aptitude perfect seventh tycoon zinger madness firm cause diode owls meant knife nuisance skirting umpire sapling reruns batch molten urchins jaded nodes"
)

func main() {
	vclient := vaultd.NewClient(vaultdAPIAddress, vaultdAPIPassword)
	wclient := walletd.NewClient(walletdAPIAddress, walletdAPIPassword)

	// create a new walletd wallet. This should not be necessary if you
	// already have a wallet.
	mywallet, err := wclient.AddWallet(walletd.WalletUpdateRequest{
		Name: "test",
	})
	if err != nil {
		panic(err)
	}
	mywalletClient := wclient.Wallet(mywallet.ID)

	// import seed to vaultd
	meta, err := vclient.AddSeed(context.Background(), phrase)
	if err != nil {
		panic(err)
	}

	// Generate keysToGenerate keys, returning the address and spend policy
	// for each key. Each call will result in n new addresses being generated
	resp, err := vclient.GenerateKeys(context.Background(), meta.ID, keysToGenerate)
	if err != nil {
		panic(err)
	}

	// add the new addresses to the wallet
	for _, addr := range resp {
		mywalletClient.AddAddress(wallet.Address{
			Address:     addr.Address,
			SpendPolicy: &addr.SpendPolicy,
		})
	}

	addrResp, err := mywalletClient.Addresses()
	if err != nil {
		panic(err)
	}

	// construct a transaction to send 1 SC to a recipient
	txnResp, err := mywalletClient.Construct([]types.SiacoinOutput{
		{Address: types.VoidAddress, Value: types.Siacoins(1)},
	}, nil, addrResp[0].Address)
	if err != nil {
		panic(err)
	}

	cs, err := wclient.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	// sign the transaction
	signedTxn, ok, err := vclient.Sign(context.Background(), cs, txnResp.Transaction)
	if err != nil {
		panic(err)
	} else if !ok {
		panic("transaction not signed")
	}

	// broadcast the signed transaction
	if err := wclient.TxpoolBroadcast(txnResp.Basis, []types.Transaction{signedTxn}, nil); err != nil {
		panic(err)
	}
}
```

### Signing V2 Transactions

Once you have imported your keys, you can sign V2 transactions using the [`[POST] /v2/sign`](https://api.sia.tech/vaultd#6d7949f0-790e-4cd3-b85e-76ae01a631d1) endpoint.

#### Example

```go
package main

import (
	"context"

	"go.sia.tech/core/types"
	vaultd "go.sia.tech/vaultd/api"
	walletd "go.sia.tech/walletd/v2/api"
	"go.sia.tech/walletd/v2/wallet"
)

const (
	// api address of your vaultd
	vaultdAPIAddress = "http://localhost:9980"

	// api password of your vaultd
	vaultdAPIPassword = "change me"

	walletdAPIAddress = "http://localhost:9880"

	walletdAPIPassword = "change me"

	// number of keys to generate and import into vaultd. Make sure this is
	// large enough. You can always generate more keys by calling GenerateKeys
	// again.
	keysToGenerate = 100

	// your siad seed to import
	phrase = "touchy inroads aptitude perfect seventh tycoon zinger madness firm cause diode owls meant knife nuisance skirting umpire sapling reruns batch molten urchins jaded nodes"
)

func main() {
	vclient := vaultd.NewClient(vaultdAPIAddress, vaultdAPIPassword)
	wclient := walletd.NewClient(walletdAPIAddress, walletdAPIPassword)

	// create a new walletd wallet. This should not be necessary if you
	// already have a wallet.
	mywallet, err := wclient.AddWallet(walletd.WalletUpdateRequest{
		Name: "test",
	})
	if err != nil {
		panic(err)
	}
	mywalletClient := wclient.Wallet(mywallet.ID)

	// import seed to vaultd
	meta, err := vclient.AddSeed(context.Background(), phrase)
	if err != nil {
		panic(err)
	}

	// Generate keysToGenerate keys, returning the address and spend policy
	// for each key. Each call will result in n new addresses being generated
	resp, err := vclient.GenerateKeys(context.Background(), meta.ID, keysToGenerate)
	if err != nil {
		panic(err)
	}

	// add the new addresses to the wallet
	for _, addr := range resp {
		mywalletClient.AddAddress(wallet.Address{
			Address:     addr.Address,
			SpendPolicy: &addr.SpendPolicy,
		})
	}

	addrResp, err := mywalletClient.Addresses()
	if err != nil {
		panic(err)
	}

	// construct a transaction to send 1 SC to a recipient
	txnResp, err := mywalletClient.ConstructV2([]types.SiacoinOutput{
		{Address: types.VoidAddress, Value: types.Siacoins(1)},
	}, nil, addrResp[0].Address)
	if err != nil {
		panic(err)
	}

	cs, err := wclient.ConsensusTipState()
	if err != nil {
		panic(err)
	}

	// sign the transaction
	signedTxn, ok, err := vclient.SignV2(context.Background(), cs, txnResp.Transaction)
	if err != nil {
		panic(err)
	} else if !ok {
		panic("transaction not signed")
	}

	// broadcast the signed transaction
	if err := wclient.TxpoolBroadcast(txnResp.Basis, nil, []types.V2Transaction{signedTxn}); err != nil {
		panic(err)
	}
}
```

## How Can I Test?

To test your integration with `walletd` without risking real Siacoin, you can use one of our two testnets.

* To test V2 transactions, you can use the Zen testnet. Pass the `--network=zen` CLI flag to `walletd` to connect to the Zen testnet.

## More questions?

Let us know!

* Send us an [email](mailto:hello@sia.tech)
* [Reach out to the community on Discord](https://discord.gg/sia)
* [Open an Issue](https://github.com/SiaFoundation/walletd)


# Sia Ecosystem Fork Status


# Siacoin Total Supply

The total supply of Siacoins (SC) is unlimited; there will never be a cap on the number of Siacoins generated. Humans produce an extensive amount of data, making it practically limitless. When Sia becomes the industry-standard storage layer of the internet, the network will require a significant quantity of Siacoins to fulfill all the associated contracts.

As of June 6, 2025, approximately 60.5 billion coins have been created, with the new coin introduction slowing down as each new block is produced.

Additionally, miners would lose their incentive to continue providing services to the network if the block reward were to cease.

## Creation of new Siacoins

New Siacoins are created through proof-of-work mining. Over 56 billion Siacoins are circulating, which will continue to increase. Sia is poised to become the foundational storage layer of the internet, necessitating billions of Siacoins to accommodate the petabytes and exabytes of data that will be stored on our platform.

{% hint style="info" %}
The number of Siacoins created for each block is 300,000 minus the height. This means a block with a block height of 200,000 has created 100,000 Siacoins. After a height of 270,000, the block reward won't get lower, and all blocks will have a reward of 30,000 Siacoins.
{% endhint %}

## Supply structure changes

Sia version 1.5.4 introduced a network hard fork, which, in turn, established the Sia Foundation—an emerging non-profit organization dedicated to supporting, developing, and promoting the Sia network. The Sia Foundation led to a minor alteration in the supply structure since it received continuous funding through a block subsidy of 30,000 Siacoins per block, disbursed every 4,380 blocks. Additionally, the hard fork included an initial offering of approximately 1.57 billion Siacoins to kickstart the Foundation's operations and finance its initial development and activities.

Consequently, this resulted in a slight, temporary increase in the inflation schedule for a single year, with an uptick of a few percentage points, before swiftly returning to nearly pre-fork levels.

## Siacoin inflation

Inflation is an inherent feature of Siacoin designed to accommodate various factors that lead to the gradual reduction of coins in circulation. These factors include the coins locked in contracts as collateral, lost coins, coins burnt due to failed storage contracts. Over time, this inflation diminishes significantly, yet it plays a crucial role in safeguarding the network by offering block rewards to miners.

| Year                | % Growth in total Siacoins |
| ------------------- | -------------------------- |
| 1                   | 90                         |
| 2                   | 39                         |
| 3                   | 21                         |
| 4                   | 11.6                       |
| 5                   | 4.6                        |
| 6 (Foundation year) | 9.9                        |
| 7                   | 6.3                        |
| 8                   | 5.9                        |
| 9                   | 5.6                        |
| 10                  | 5.3                        |
| 20                  | 2.3                        |


# Siafunds

## Overview: Siafunds

Siafunds serve as tokens utilized for revenue sharing within the Sia network, wherein a 3.9% fee from every storage-related transaction on the Sia platform is allocated to Siafund holders. Roughly 1,400 Siafunds were initially distributed to investors through securities sales, while Skynet Labs presently holds the remaining \~8,600 Siafunds.

When contractually completed on the network, 3.9% of each funding source, including renter fees for storage, renter bandwidth costs, and host collateral, is earmarked for Siafund holders. The reserved amount is equitably dispersed upon contract completion among all Siafund holders.

The creation of Siafunds was driven by the goal of establishing a sustainable means of funding the development of the Sia network. These tokens incentivize and empower both ourselves and investors to actively support and enhance the Sia network by capturing a portion of its growing revenue. As the user base expands and more users pay for storage, Siafund revenues increase, providing additional resources for developing Sia-supported software.

### Siacoins vs Siafunds

Utility tokens, such as Siacoins, primarily gain value through their utilization on a blockchain platform. In contrast, Siafunds derive their value from both the current and anticipated worth of the Sia storage network.

### Limited Supply

The maximum number of Siafunds that will ever be issued is 10,000, and all of these were generated at the launch of the Sia software in 2015. Given that the quantity, size, and value of contracts on the Sia network are rising, the revenue per Siafund increases proportionally as the number of issued Siafunds remains constant.

Initially, Nebulous, Inc. held all 10,000 Siafunds. However, they have conducted multiple Siafund sales to support development. In 2021, Nebulous rebranded as Skynet Labs and still retains approximately 8,600 Siafunds, while the rest have been distributed to third parties.

## How to obtain Siafunds

Siafunds are typically unavailable on mainstream exchanges due to their classified securities by the SEC under United States laws in 2018. This classification makes most exchanges unwilling to comply with the requisite regulatory requirements for trading in securities. If you are in the United States, you may need to qualify as an accredited investor to engage in Siafunds transactions.

{% hint style="danger" %}
**We strongly advise researching the relevant securities regulations in your country before considering buying or selling Siafunds and seeking legal counsel for guidance in this matter.**
{% endhint %}

Siafunds are typically bought and sold through the `#siafunds` channel on the Sia [Discord](https://sia.tech/discord) server, where over-the-counter trades are facilitated.

## How to store Siafunds

Siafunds are stored in `walletd`, right next to your Siacoins.

![](/files/jBfUCKjMfX170kesCcEc)

You can also send and receive Siafunds to and from standard Siacoin addresses, and they can be recovered using your Siacoin balance as long as you possess your Sia seed.


# Withdrawing Siafunds

If you're a Siafund owner, you can cash out these accrued Siacoins at any point by sending your Siafunds to your Sia address. This can be the same wallet the Siafunds are currently in or a different wallet you control.

{% hint style="info" %}
You **do not** lose the Siafunds in this process. You'll always retain control unless you send them to someone else or a bad address.
{% endhint %}

## Generate a Sia address

Click **Receive.** in the top right hand corner to get your wallet address.

![](/files/tmTsGkIQcFMeuCu2R6AR)

Click the drop down arrow and copy your address. You will be using it in the next step to send your Siafund.

![](/files/oA9so1fczLDpGW8e28Nf)

## Send your Siafunds to this address

Now switch over to the Send section of your wallet by clicking **Send** in the top right.

![](/files/GkKHqEqj4B12SmZ9ewA1)

You will see a **Send** dialog pop up. Enter the wallet address and the amount of Siafunds you want to send. Make sure that you've entered a Sia wallet address you control, and that you've entered it correctly.

![](/files/ACOuL7tI6rHSVWuVH7dc)

{% hint style="danger" %}
Siafunds sent to mistyped addresses cannot be retrieved.
{% endhint %}

Click **Generate Transaction.**

## Sign & Send

Next, you need to verify everything. You'll have a chance to double-check the currency, amount, and recipient address. If everything looks good, enter your wallet seed phrase and click **Sign and broadcast transaction**.

![](/files/BjmXoZyQCzUCjtFasxQa)

## Check the status

You'll immediately get a confirmation that your transaction has been broadcast to the network. Note that it will take \~10 min for your transaction to be sent through.

![](/files/pHJiW0ZUDmDhcOpwUhkX)

{% hint style="success" %}
Once the transaction has been complete, your wallet will be credited with any accrued Siacoin generated from your Siafund.
{% endhint %}


# SEC Settlement

## **Overview**

In October 2019, Nebulous settled with the SEC regarding a claim related to the unregistered offering and sale of Sianotes in May 2014 and the conversion of Sianotes into Siafunds in June 2015. It's important to note that, as outlined in the settled order, the SEC did not take any enforcement action concerning the Siacoin (SC) token or any ongoing activities on the Sia network. Furthermore, the order does not require Nebulous to register the Siacoin token as a security with the SEC.

Following their investigation and as indicated in the settled order, the SEC determined that Siafunds should be classified as securities. Therefore, failing to register the 2014 offering and the 2015 conversion was deemed a violation of Section 5 of the Securities Act 1933.

## Components of the Network

### Two-token model

Sia uses two tokens, [Siacoins](/get-started-with-sia/learn-about-siacoins) and [Siafunds](/miscellaneous/learn-about-siafunds)**.**

We endorse Sia's two-token model, which fosters an optimal ecosystem. This system incentivizes the Sia core team and Siafund investors to prioritize product development and ensure the network's long-term, sustainable growth.

{% hint style="info" %}
Check out our [blog post](https://blog.sia.tech/the-ico-paradox-and-how-to-fix-it-3bfc61bc6eb8), where we discuss Sia's two-token model and address the challenges associated with ICOs.
{% endhint %}

### Sianote

Sianotes served as precursors to Siafunds. In 2014, we made Sianotes available to investors, and in mid-2015, when the Sia network was launched, we exchanged them for Siafunds. It's worth emphasizing that Sianotes were acquired in exchange for Bitcoin and were issued on the NXT Asset Exchange.

The Sia team did not knowingly sell unregistered securities. During the 2014 offering, we were unaware that the SEC might consider Sianotes or Siafunds securities. This offering took place months before Ethereum's emergence and years before the SEC issued guidance related to cryptocurrencies.

While we appropriately registered our 2018 offering of Siafunds in response to the SEC's 2017 guidance regarding digital assets, we are disappointed that the SEC opted to take action regarding our relatively small 2014 offering.

## **Impact on the Sia Ecosystem**

### **Sia Network**

The SEC settlement has no impact on the Sia network. As indicated in the settlement terms, the SEC took no enforcement action regarding the Siacoin token or ongoing Sia network activities. Nebulous is not obliged to register the Siacoin token as a security with the SEC. After an extensive SEC investigation, no changes or restrictions were imposed on the Sia network.

### **Sia Project**

The SEC did not pursue enforcement actions against the Siacoin token or ongoing Sia network activities. There were no criminal charges brought against Nebulous or the Sia core developers. The cryptocurrency community may see the settlement as a reinforcement for the Sia project, given the SEC's decision not to take any enforcement action related to the Siacoin token.

### Sia Foundation

The settlement does not impact our decision to conduct future offerings of Siafunds. Similar to our 2018 offering, we will classify future Siafunds offerings as securities unless there are changes in regulatory guidance.

### **Exchanges**

The listing of Siacoin on exchanges remains unaffected. The SEC did not initiate enforcement actions concerning the Siacoin token or ongoing Sia network activities. Nebulous is not required to register the Siacoin token as a security with the SEC, and the SEC had comprehensive information about Siacoins, including their trading on various global exchanges. We are ready to provide any exchange with a legal opinion regarding Siacoin's status under U.S. securities law.

### **Community**

The recent settlement does not impact users or holders of Siacoins for cloud storage rentals. The SEC refrained from taking enforcement actions regarding Siacoins despite understanding how they are created and used. You can continue using Siacoins on the Sia network if you rent cloud storage. Siacoin holders can store them in wallets or trade them on supported exchanges.

For Siacoin miners, the settlement does not affect their operations. The SEC did not pursue enforcement actions despite understanding Siacoin's creation and usage. Miners can confidently continue their activities.

The settlement does not affect Siafunds purchased during the April 2018 offering. The offering was conducted in full compliance with regulations, following SEC guidelines under Regulation D. All Siafunds acquired during the 2018 offering were distributed to investors after a one-year lockup period.

It's important to note that the SEC classified Siafunds as securities under U.S. laws. If you exchanged Sianotes for Siafunds in 2014, we recommend researching relevant securities laws in your country. In the United States, accredited investor status may be required to buy or sell Siafunds.

{% hint style="danger" %}
**We strongly advise consulting with an attorney for guidance on this matter.**
{% endhint %}

{% hint style="info" %}
For more detailed information, please visit the following links:

* [SEC Settlement](https://www.sec.gov/litigation/admin/2019/33-10715.pdf)
* [SEC Administrative Summary](https://www.sec.gov/enforce/33-10715-s)
* [SEC Waiver](https://www.sec.gov/rules/other/2019/33-10716.pdf)
* [Waiver Request Letter](https://www.sec.gov/divisions/corpfin/cf-noaction/2019/nebulous-093019-506.pdf)
  {% endhint %}


# Brand Guidelines

Third-party projects constitute an integral part of the Sia ecosystem. They broaden the range of applications on Sia and enhance the network through solutions that are not actively being developed by our team.

We aim for users to discern between core and non-core projects for several reasons:

* Non-core projects often involve some level of centralization, which is entirely acceptable. Users benefit from having choices, and centralization allows for the implementation of features that are more accessible to achieve compared to those on Sia's core infrastructure.
* There's the potential for confusion where users might mistake your project for something created by the core team. We want to ensure that users know where to go for help.
* Acknowledge your dedication to your project; we desire to give it the recognition it deserves, allowing it to stand out prominently.

These Sia brand guidelines will assist those developing their project by ensuring clarity, consistency, and distinction between other projects and core Sia offerings.

## Logo and Branding Usage

The Sia Foundation exclusively owns the Sia trademark in the United States and prohibits the direct use of the Sia logo or wordmark in any third-party project. Do not copy, modify, or style the Sia logo or wordmark in a way that could cause confusion or misrepresentation.

<div data-full-width="false"><figure><img src="/files/ypv04jI1JAzqGqaaMwbl" alt="" width="300"><figcaption><p>Sia Wordmark Logo</p></figcaption></figure> <figure><img src="/files/CVeIuqYvjekN0r2h2cpT" alt="" width="164"><figcaption><p>Sia Shorthand Logo</p></figcaption></figure></div>

### Referencing Sia in Content

You may use the name **“Sia”** in plain text when accurately referring to the project in articles, reviews, presentations, or other informational materials.

* Do not alter, recreate, or style the official Sia logo.
* Do not imply any official endorsement or partnership unless you have prior written permission from the Sia Foundation.

### Branding Your Own Project

You may **not** use the name **“Sia”** or the official logo in your project’s name, branding, or marketing in a way that could cause confusion or suggest affiliation.

* Develop your own distinct name, logo, and branding.
* Avoid names that are similar to “Sia” or that incorporate it as part of the name.
* Sia's trademark name is pronounced *"sigh-uh,"* not *"see-ya."*
* Do not use the name **"Sia"** in your project without explicit written approval from the Sia Foundation.

#### Built on Sia Assets

If you would like to showcase your project's integration with Sia, you can add any one of the following `Built on Sia` assets to your project.

|   Color   |              Primary Version              |               Text Only               | Type |
| :-------: | :---------------------------------------: | :-----------------------------------: | :--: |
|    Dark   |    ![Dark](/files/nHiGvqqRORLouAd8nTEU)   |  ![Dark](/files/P76ZZfV2SXCFcxLdqzBu) | .jpg |
|    Dark   |    ![Dark](/files/UZ88Hpa6rOG78lwFYJct)   |  ![Dark](/files/oyLDyfSvhpNEHMWzcyoG) | .png |
|    Dark   |    ![Dark](/files/6Ke6QrUZyrwXuoTj7VuI)   |  ![Dark](/files/ASe8kFSbNdSs6lGP9yuf) | .svg |
|  Dark 50% |  ![Dark 50%](/files/bPN3G36nkBY7cDPT7yO6) |                  N/A                  | .jpg |
|  Dark 50% |  ![Dark 50%](/files/ZeyK0sUroge2Sl8pXpOH) |                  N/A                  | .png |
|  Dark 50% |  ![Dark 50%](/files/p40NvhOWwdluD0UK8NHo) |                  N/A                  | .svg |
|   Light   |   ![Light](/files/TCDiUNmlhze0hdrnTMtH)   | ![Light](/files/yWYfypdx7UpEvu94nZm3) | .png |
|   Light   |   ![Light](/files/V4bLqaYSfOGDorFifIMs)   | ![Light](/files/g4xFCQdjy3h69C4puh20) | .svg |
| Light 50% | ![Light 50%](/files/czJdeWb69cJcrwbNIQsJ) |                  N/A                  | .png |
| Light 50% | ![Light 50%](/files/JTMprB2fRdQ0ltyBGXnh) |                  N/A                  | .svg |

{% hint style="info" %}
We're eagerly anticipating what you'll create! If you have any questions regarding our Sia branding guidelines, please don't hesitate to reach out via [email](mailto:hello@sia.tech) or [Discord](https://sia.tech/discord).
{% endhint %}


# Welcome to Sia!

Whether you're brand new to the Sia community or just need a refresher on the basics, this article will get you up to speed.

Sia is a decentralized cloud storage platform secured by blockchain technology. The Sia storage network leverages underutilized hard drive capacity around the world to create a data storage marketplace that is more reliable and lower cost than traditional cloud storage providers. Sia has its own blockchain, and a utility token that powers it – the Siacoin.

Your data is truly private and gets stored across the globe to eliminate any single point of failure and ensure the highest possible uptime. Since you hold the keys, you own your data. No outside company can access or control your files.

Data cannot be de-platformed. Files can not be hacked.

## Sia is here for good

Not only is your data safe on Sia, but you can feel confident that Sia isn't going anywhere. Sia has been in development for six years and has been live for five. The Sia software has been downloaded over a million times, and thousands of TB have been uploaded to the network since its inception. If the Sia dev team quit tomorrow, the network can autonomously run forever.

Sia has a thriving community of renters, hosts, miners, data storage enthusiasts and an ecosystem of open source software and commercial data storage platforms. Discover the ecosystem on our [website's community and ecosystem page](https://sia.tech/community-ecosystem).


# Introduction to these docs

The goal of the Sia Docs is to be a comprehensive source of Sia information. Info in these docs has been taken from a number of sources, primarily the previous Sia Support Center and community-driven sites like the Sia Wiki, SiaStats, and SiaSetup. Thanks to these sites and the many others that have contributed to the Sia ecosystem over the years.

Keeping docs up to date is no small task, and GitBook allows anyone in the community to submit an edit to a document, or even a completely new article on their own. While we still need to review and approve submissions, the pipeline to getting docs updated is significantly cleaner than it used to be.

While this site can be updated by our users, a community never suffers from having too many resources. Where this site takes a targeted approach to on-boarding new users and getting them up and running, another site might take a more philosophical approach. Yet another might focus on metrics. There's nothing wrong with redundancy – the entire Sia network is based on it.

### Submit your edits!

You can edit these docs by submitting a proposal in the [GitHub repo](https://github.com/SiaFoundation/docs). The simplest way is to click **Edit on GitHub** under the **ellipsis (...)** which appears in the upper right corner of every page.

<figure><img src="/files/uUUmDa4X3zNSoOJW91rj" alt=""><figcaption><p>Edit on Github</p></figcaption></figure>

You'll be taken to GitHub, which is a website that lets multiple people collaborate on code. The code, in this case, is our support document.

Login or create a GitHub account, then click **Edit the file in your fork of this project**.

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

Because you're contributing, you're not directly editing the file. This helps prevent people from vandalizing the site. You're making a fork of the support docs, which is your own little version of them where can you make any edits you want.

Once you make your changes, scroll down to the bottom. Add a title to your edits, and a description that lets us know what you're changing and why. Click **Propose changes**.

![](/files/vwqgngKdZIfQbdPhP9cK)

This sends it to us. It won't be live right away – we have to review and approve your edits first. But this gives the community an incredible way to contribute to Sia documentation.

## What to do if you need more help.

Couldn’t find your answer here? Don’t worry, we have more support options for you.

Join the #help channel in [the Sia Discord server.](https://sia.tech/discord) We have a huge community that loves helping users with their issues.

You can also [send us an email.](mailto:hello@sia.tech) We’ll respond as soon as we can.


# Sia 101

Let's take it from the top.

Sia has a few important terms that you'll want to get familiar with. These will be explained in more detail in their related sections, but here's a short sample.

* **Node:** Your instance or installation of Sia.
* **Renter:** Someone who uploads files to the network.
* **Host:** Someone who lends their storage space so others can upload files to the network.
* **Contracts:** Formed between renter and host, contracts determine how much data is being stored, for how long, and at what price. These are automatically tracked and completed by the software and blockchain.
* **Siacoins:** The cryptocurrency that powers Sia.
* **Siafunds:** A secondary, revenue-sharing token on the network that grants the holder Siacoins for every completed contract.

## What Sia does

When a file gets uploaded to Sia, it gets split up, encrypted, and sent all over the world. Renters upload files, hosts store those files, and everything is automated. Once you upload your files, the network ensures that they're always accessible to you by copying them multiple times. And they're never accessible to hosts because they only receive pieces of whole files that are already encrypted.

## Why it's here

Sia’s core goal is to bring decentralization to data storage. We want you to be able to store your data in a way that gives you full, exclusive control. We want to make sure you're protected against theft, censorship, and that you are never denied access to your data by hackers, miners, developers, or a government body. Your data belongs to you.

## Who makes Sia?

Sia was conceived at HackMIT in 2013 by David Vorick and Luke Champine. The founders formed Nebulous Labs and later Skynet Labs to develop Sia. More recently, the Sia Foundation was formed as a non-profit dedicated to leading core development into the future.

## Community contribution

While there is a distinct development and operations team, dozens of individuals have contributed to the core code or apps built on top of the network. Check out our [GitHub repositories](https://github.com/SiaFoundation) if you're interested in following along or writing code for Sia and further decentralizing the project!

## **Renting on Sia**

When you upload files to Sia, you become a **renter**. You upload files to other users who have made their space available, called **hosts**. We use the term renter because Sia creates contracts with other hosts:

* to store a certain amount of data
* for a certain period of time
* for a certain amount of money

## Hosting on Sia

**Hosting** means you are contributing your excess storage space to Sia. You're helping to keep data where it belongs – safely in the hands of those who uploaded it, the **renters**.

You also earn Siacoin, the cryptocurrency that powers the Sia network. Siacoin can be used to purchase your own storage space, or converted to other cryptocurrency or fiat on crypto exchanges.

Hosts are a critical part of the ecosystem. You are contributing to the decentralized network that is the heart of Sia.

## The Sia core software

{% hint style="info" %}
Please note that while much of the documentation is written for `siad` and Sia-UI. We are actively transitioning to `renterd`, `hostd`, and `walletd` and will be updating all documentation to reflect this new software.
{% endhint %}

The original core Sia software consists of `siad` and Sia-UI. This software is currently being deprecated and replaced with the new software outlined below.

* **`siad`** is a daemon that can be used via CLI. `siad` supports renting, hosting, wallets, and more - essentially all-in-one software for using Sia.
* **Sia-UI** is `siad` wrapped with a graphical user interface.

The Sia Foundation has been developing a new suite of software that improves on `siad` and takes a more modular approach, with separate software for renting, hosting, wallet, and explorer. The software is generally more scalable, performant, and easier to integrate.

The new software is:

* **`renterd`** is a next-generation Sia renter, developed by the Sia Foundation. It aims to serve the needs of both everyday users -- who want a simple interface for storing and retrieving their personal data -- and developers -- who want to a powerful, flexible, and reliable API for building apps on Sia.
* **`hostd`** is an advanced Sia host solution created by the Sia Foundation, designed to enhance the experience for storage providers within the Sia network. Tailored for both individual and large-scale storage providers, `hostd` boasts a user-friendly interface and a robust API, empowering providers to efficiently manage their storage resources and revenue. `hostd` incorporates an embedded web-UI, simplifying deployment and enabling remote management capabilities, ensuring a smooth user experience across a diverse range of devices.
* **`walletd`** is a watch-only wallet server. It does not have access to any private keys, only addresses derived from those keys. Its role is to watch the blockchain for events relevant to particular addresses. The server therefore knows which outputs are spendable by the wallet at any given time, and can assist in constructing and broadcasting transactions spending those outputs. However, *signing* transactions is the sole responsibility of the client.
* **`explored`** An explorer backend for Sia.

## **Quick Resources**

[Discord](https://sia.tech/discord)

[YouTube](http://youtube.com/c/siatvofficial)

[Reddit](http://reddit.com/r/siacoin/)


# What are Siacoins?

Siacoins are the utility tokens that power the Sia network. This article is included early on because anything you want to do on the network requires Siacoins, whether you want to hold or trade, or rent or host data.

Siacoins are used in lots of ways but serve a single purpose – facilitating network operations. When you upload files to Sia, you pay for that storage in Siacoins. If you're a host and you're storing other people's data, you get paid for that in Siacoins. If you own Siafunds, your share of Sia network growth is paid out in, you guessed it, Siacoins.

You can send Siacoins to others, or receive them at your own wallet address. You can store them in our official software, or on a hardware or paper wallet. You can get Siacoins by having someone send them to you, buying them on an exchange, or mining them.

New Siacoins are only made by mining. There's over 40 billion Siacoins out there right now, and that number will never stop growing. Sia is going to be the storage layer of the internet, and billions will be required for the petabytes and exabytes of data that will be stored on Sia.


# How to buy Siacoins

Whether you want to upload files to the decentralized cloud or lend your extra storage space to the network, you need Siacoins to use Sia. Siacoins can be sent to you once you make a Sia address, or you can mine them. Otherwise, you’ll need to buy them.

Siacoins are available on a number of major exchanges like Binance, Bittrex, Kraken, Upbit, and Poloniex. Get the full list [here](https://sia.tech/community-ecosystem?software=exchanges#software).

Some exchanges support direct fiat (local currency) to Siacoin purchases, but others require you to buy Bitcoins, Ethereum, or other crypto to make your purchase. We’ll walk you through the process of buying your first Siacoins.

## What is KYC?

No, this isn't chicken related. KYC stands for Know Your Customer and is a set of identity verification rules that most exchanges have to follow to abide by local laws. This might include submitting scans of state or federal ID, or sending in your government ID numbers like a Social Security Number if you live in the US. You'll be guided through whatever KYC process your exchange of choice has.

## Buy SC from an exchange

This option gets you the best prices but has a fairly intense on-ramp for a new user.

This example will use [Bittrex](https://bittrex.com/), a US-based exchange that allows you to trade regular US dollars (USD), BTC, ETH, or USDT for Siacoins. But the general process will be similar no matter which exchange you use.

* [Sign up for an account](https://bittrex.zendesk.com/hc/en-us/articles/115005329167-Creating-a-Bittrex-Account-and-Performing-Verification) with Bittrex. The process is simple, but fairly long and requires identity verification along the way.
* Once signed up, find the market you’re interested in. Purchase directly with [USD](https://bittrex.com/Market/Index?MarketName=USD-SC) or [Bitcoin](https://bittrex.com/Market/Index?MarketName=BTC-SC).
* Make a trade by specifying how many Siacoins you want to buy, and at what price.

{% hint style="warning" %}
If this is your first time purchasing crypto, start with a small amount until you’re comfortable with it.
{% endhint %}

* Now you have the Siacoins in your Bittrex wallet, but exchange wallets aren’t a good place to store crypto, and you can’t use it for its intended purpose - using Sia.
* Transfer to your Sia wallet by [making a Sia address](/legacy/get-started-with-sia/how-to-buy-siacoins) and then sending to it from Bittrex.

## Buy SC using Transak

Transak offers incredibly easy crypto purchasing using just your debit or credit card, but you pay extra fees and there are minimum purchase amounts that might be higher than what you need.

Visit [transak.com](https://transak.com), tell them how much of your local currency you want to spend, and they'll tell you how much SC you can get.

![](/files/fjGXAJ4myG90TJAS1KrG)

Click **Buy Now**.

![](/files/BdQ0EYvXjPAQWdsiiPuA)

Then enter in your SC address [that you made](/legacy/your-sia-wallet/how-to-make-a-sia-address), and click **Buy Now** again to proceed through the transaction process.


# What is the Siacoin total supply?

Siacoins are the utility token powering the Sia network and are intended to be used for the fulfillment of smart storage contracts on the decentralized network.

## So what's the total supply?

**Unlimited** – there will never be a cap on the number of Siacoins generated. Humans produce so much data that it is effectively a limitless amount – and when Sia is the industry-standard storage layer of the Internet, the network will need lots of Siacoins to fulfill all those contracts. Additionally, the Proof of Burn mechanic (more on this later) functions to eliminate coins from the supply, so there needs to be a constant allowance of new Siacoins being created. As of March 23, 2021, about 47.3 billion coins have been created, but the number of new coins introduced will slow as each new block is produced. By 2022, there should be about 50 billion coins in circulation.

Additionally, if the block reward were to stop, miners would be disincentivized to continue providing their service to the network.

## How are Siacoins created?

Siacoins are created only as block rewards during mining on the Sia Proof of Work blockchain.

## Let's get a little more technical

The number of Siacoins created each block is (300,000 - height). This means that a block with a block height of 200,000 created 100,000 Siacoins (300,000 - 200,000). After height 270,000, the block reward won't get lower and all blocks will have a reward of 30,000 Siacoins.

By about July of 2020 when Sia hits the 270,000 block height, there will be about 44.55 billion (((300,000+30,000)/2)x270,000=44.55 billion) Siacoins available in the market. From there, there will be about 1.57 billion (30,000x144x365=1.5678 billion) Siacoins created from the mining every year, forever.

## The Sia Foundation

In addition, Sia v1.5.4 introduced a network hardfork. The fork introduced the Sia Foundation, a new non-profit entity charged with supporting, developing, and promoting the Sia network. The Foundation changed the supply structure slightly as it is funded by an ongoing block subsidy of 30,000 Siacoins per block, paid out every 4,380 blocks. The hardfork also included an initial subsidy of approximately 1.57 billion Siacoins to help get the Foundation off the ground and fund initial development and activities.

This creates a small single year spike in the inflation schedule of a few percentage points, but that quickly reduces back to nearly pre-fork levels. You can see the entire inflation schedule at the fantastic community site [SiaStats](https://siastats.info/macroeconomics).

## Will the number of coins ever be reduced?

In the future, we'll be implementing a mechanic called Proof of Burn. Using this, sellers of storage on the network will burn coins to prove that they are real and have good intentions towards the network. It also offers another layer of network security. Here's more explanation from Sia lead dev David Vorick on the mechanic:

> Hosts burn coins by sending them to a provably unspendable address. Hosts are expected to burn a portion of their revenue (\~4%) as a demonstration that they are real. Renters will select hosts that have burned coins with a probability that grows in a linear relationship to the total number of coins burned. Therefore, a host that has burned 2x as many coins will be twice as likely to be selected as another host that has all other factors the same. This provides a very important defence against Sybil attacks. An attacker that is trying to manipulate a renter will need to have all of the excess redundancy of a file before being able to commit an attack. For a file with 3x redundancy, that means the attacker will need to get at least 2.1x of that redundancy, which means that the attacker will need to burn enough coins to look like 67% of the network. That entails burning 1.5x as many coins as the rest of the network has burned combined. Especially as the network grows and matures, collecting that many coins is going to be prohibitive. ([Source](https://web.archive.org/web/20171102065557/https://forum.sia.tech/topic/108/how-sia-works))

## Isn't too many coins a bad thing?

Inflation is built-in with Siacoin to account for the many factors over time that will cause coins to disappear, such as the Proof of Burn mechanic, lost coins, and un-refunded collateral due to bad hosting. This inflation becomes very small over time, but still provides security to the network in the form of block rewards for the miners.

|                          | % Growth in total Siacoins |
| ------------------------ | -------------------------- |
| Year 1                   | 90                         |
| Year 2                   | 39                         |
| Year 3                   | 21                         |
| Year 4                   | 11.6                       |
| Year 5                   | 4.6                        |
| Year 6 (Foundation year) | 9.9                        |
| Year 7                   | 6.3                        |
| Year 8                   | 5.9                        |
| Year 9                   | 5.6                        |
| Year 10                  | 5.3                        |
| Year 20                  | 2.3                        |


# Wallet overview

Sia-UI and `siac` are the best places to store your Siacoins. They're also the only official apps made by the developers of the Sia network.

[Download Sia.](http://sia.tech/get-started)

Sia-UI allows you to store Siacoins in a secure wallet, or rent or sell storage space on the Sia network. `siac` is a command-line client for Sia, and is only recommended for advanced users.

[Download Sia.](http://sia.tech/get-started)

Your wallet gives you access to see your balance and transaction history, and the ability to send or receive Siacoin to any other Sia user.

Here's what a typical Sia-UI wallet looks like.

![](/files/F0qbayRY9gk2mshRTY5o)

Your **balance** is at the top. This is the current amount of Siacoins in your wallet, and can fluctuate quite a bit depending on how you use Sia. If you own any Siafunds, they show up next to this.

## The Transactions tab

Every transaction is broken into a few categories - the Amount, Transaction ID, Time, TX Type, and Status.

![In this example, you can see three transactions.](/files/opoAt4g1QbADQqHPm1ex)

{% tabs %}
{% tab title="Amount" %}
The amount of Siacoins entering or leaving your wallet.
{% endtab %}

{% tab title="Transaction ID" %}
Use these to look up your transaction in a Sia blockchain explorer. The transaction IDs are shortened, but you can hover over them to see the full ID. You can also copy and paste while you do this.
{% endtab %}

{% tab title="Time" %}
The date and time the transaction was made.
{% endtab %}

{% tab title="TX Type" %}
The type of transaction that took place. Possible values are Siacoin, Siafund, Contract, Proof, Revision, Block, Defrag, and Setup.
{% endtab %}

{% tab title="Status" %}
While your transaction is confirming, you'll see 0/6, then 1/6, and so on. Once you reach six confirmations, you'll see the green checkmark like above and your transaction is considered confirmed.
{% endtab %}
{% endtabs %}

Near the upper right corner, you'll see a button that says `More`. Click on this to get some additional wallet options.

![](/files/RQ8rX4xb6yAX790fvIOf)

**View Seed** shows you your seed in case you need to see it again.

**Change Password** lets you set a custom password for your wallet, instead of using your Sia seed. [Learn about the pros and cons of a custom password.](/legacy/your-sia-wallet/how-do-i-change-my-sia-wallet-password)

## Be careful

There are plenty of scams in the cryptocurrency space. Make sure the only software wallet you use to store your Siacoin is the official app downloaded from the official Sia website: <https://sia.tech/get-started>[.](https://gitlab.com/NebulousLabs/Sia-UI/tags) There are some other great recommendations you can get from [our community](https://sia.tech/discord), but we can't guarantee that any other software wallet will safely store your Siacoins.


# The importance of your seed

Your Sia seed is your key to your Siacoin balance, and in the future, it will be the key to your files as well. It’s the most important piece of information in your Sia experience.

## About the seed

* It’s 29 words... most of the time. There's a small chance you'll get a 28-word seed.
* It's generated when you first make your Siacoin wallet
* It will also be your wallet password unless you set a custom password
* If you have your correct seed, you can always recover your Siacoin balance.

### Loss

If you lose your seed, your Siacoin balance will be permanently inaccessible. Because Sia is truly decentralized, the Sia dev team can’t access your seed at any time, for any reason.

### Theft

If someone steals your seed, they can easily steal your Siacoin balance. Be wary of giving any untrusted third party your seed.

### Keep it safe

Because your seed is so important, you should have physical and digital methods of storing it safely. As with any piece of digital information that you care about, you shouldn't consider it safe unless you have multiple independent backups.

* Store it the same way it's given to you: all lower-case letters, with a space between each word.
* Make sure there is no space at the beginning or end of the seed.

#### Physically Safe

Keep a laminated paper copy stored in a locked safe or a bank safe deposit box.

#### Digitally Safe

Keep your seed in a password or biometric (e.g. fingerprint) secured app like 1Password or LastPass.

## Make sure it's right

Once you write it down, copy and paste it, or re-type it, make sure you've done so correctly. A single miswritten word or mistyped letter means the entire seed is incorrect, and can no longer be used to unlock your wallet or recover your Siacoin.

## Unlock your wallet

Your seed is your private key to your Siacoin balance, and it can also be used to unlock your wallet. The default setting is for your seed to double as your wallet password, but you also have the ability to set a custom password if you’d like. Because your seed is so long, it can function as an effective line of defense against someone gaining unauthorized access to your wallet. This isn’t the whole picture though, and there are other things you should consider before deciding whether to use your seed or a custom password to get in and out of your Siacoin wallet.

### Using your seed as your password

It would take modern technology trillions upon trillions of years to figure out a 20+ word phrase from scratch. This makes your seed a powerful deterrent against intruders if it doubles as your wallet password. But frequently typing your seed also makes you vulnerable to malicious software that might be installed on your computer. Let’s look at the pros and cons of each.

{% hint style="success" %}
**Pro:** Your seed is long. This offers great protection against someone trying to “brute force” it, or someone peeking over your shoulder as you type it.

**Pro:** Since you'll be typing it in fairly often, you'll know it's correct.
{% endhint %}

{% hint style="danger" %}
**Con:** Typing your seed in repeatedly makes you vulnerable to keylogging. Keylogging is when your keyboard input is recorded using malware or a physical device and then sent to a malicious party. If someone gets your seed, they can easily steal your Siacoin, as we noted earlier.
{% endhint %}

### Using a custom password

During wallet creation, you have an option to create a custom password for getting in and out of your wallet. You can also set this afterward at any point. This allows you to use something familiar instead of the wallet seed.

{% hint style="success" %}
**Pro:** You don’t have to type in a ton of words every time you want to unlock your wallet.

**Pro:** It reduces the exposure of your seed. If keylogging software were to steal your custom password, there’s nothing they can do with it unless the person also has access to your computer.
{% endhint %}

{% hint style="danger" %}
**Con:** It might make accessing your wallet easier for those who have physical or remote access to your computer.
{% endhint %}


# How to make a Sia address

At some point, you'll need to receive Siacoins. You might be sending them over from an exchange wallet, another Sia wallet you own, or requesting Siacoins from a friend. No matter the reason, it's easy to generate an address in your Sia-UI wallet to receive Siacoins.

{% hint style="info" %}
You can also receive [Siafunds](/legacy/siafunds/what-are-siafunds) using one of these addresses. Siacoins **and** Siafunds can be sent to any address generated by Sia.
{% endhint %}

Go to the Wallet in Sia-UI. Click on the **Receive** tab.

![](/files/hnW6eZofu0UNJ4MrcqAe)

Click **Generate New Address** to create a new Siacoin address.

![](/files/0EryeNXjVohfOXQwfxAA)

Copy and paste this manually, or use the **Copy** button to the right to make sure you get the full address without any extra spaces.

Clicking **Generate New Address** again will move the Latest Address down a step, and create a brand new Siacoin address for you to use.

![](/files/kghHk796Z755z9s2WMn1)

Once you receive Siacoins, you'll see a history in the **Transactions** tab. You'll see 0/6, then 1/6, and so on. This indicates how many blocks have passed since the transaction has been processed. At six confirmations, we deem the transaction to be fully confirmed and will show a green checkmark.

![](/files/AyvSQ3kxMvgLrQR6lL2F)


# How to send Siacoins

Whether you're sending Siacoins to an exchange or a friend, it's easy and can be done right from the app.

Go to the Wallet in Sia-UI. If you're asked to unlock the wallet, use either your seed or a custom password if you've set one.

![](/files/F0qbayRY9gk2mshRTY5o)

## Setup your transaction

Click on the `Send` tab. Enter the recipient's wallet address and the amount of Siacoins you want to send. Make sure that you've entered a Siacoin wallet address, and that you've entered it correctly.

![](/files/ZhcTWOdwNv3tOvlMsNz3)

{% hint style="warning" %}
Siacoins sent to mistyped addresses, or addresses of other types of cryptocurrency can not be retrieved.
{% endhint %}

Click **Generate Transaction.**

## Verify your info

Next, you need to verify everything. You'll have a chance to double-check the currency, amount, and recipient address. Sia-UI will also show you estimated network fees.

Click back to change something. If it's all good, click **Broadcast.**

![](/files/S5MkeKsli6EWmK9zmDAk)

## Check the status

You'll immediately get a confirmation.

![](/files/itMjGQacINlxX2Uh5fP4)

And you'll see a small tag appear under your balance to let you know the transaction is on its way, but hasn't yet appeared in a block.

![](/files/EwrYvnK4oJm0Uo743ctT)

Once it's in a block, you can go back to your Transactions history to see its status.

![](/files/KxUerb7W7yC2GimwataR)

{% hint style="info" %}
It might take a minute or two for the transaction to pop up in the Transactions list.
{% endhint %}

## Did you know?

You can also send Siafunds by using the dropdown next to Siacoin. This option won't be selectable unless you also have some in your wallet. [Learn about Siafunds.](/legacy/siafunds/what-are-siafunds)

![](/files/fM7gRavlKIuiOXUp5H7P)


# How do I change my Sia wallet password?

## Your seed vs a custom password

By default, your 29 word Sia seed is your Sia-UI wallet password. But you can also set a custom password to unlock your wallet, and there are pros and cons to each. Let's take a look.

{% hint style="warning" %}
Even if you set a custom password, you still need to keep your seed safe. Learn about [the importance of your seed.](/legacy/your-sia-wallet/the-importance-of-your-seed)
{% endhint %}

## Things you'll need

Sia-UI, [downloaded and installed](/legacy/your-sia-wallet/sia-ui-faqs/how-to-download-and-install-sia-ui).

Your Sia-UI wallet [set up](/legacy/your-sia-wallet/sia-ui-faqs/how-to-make-a-new-wallet-in-sia-ui).

## Using a custom password

This means you set your wallet password to a totally custom phrase of any length.

{% hint style="success" %}
**Advantages**

* You don’t have to type in a ton of words every time you want to unlock your wallet.
* It reduces the exposure of your seed. If keylogging software were to steal your custom password, there’s nothing they can do with it unless the person also has access to your computer.
  {% endhint %}

{% hint style="danger" %}
**Disadvantage**

* It might make accessing your wallet easier for those who have physical or remote access to your computer.
  {% endhint %}

## Using your seed as your password

{% hint style="success" %}
**Advantages**

* Your seed is long. This offers great protection against someone trying to “brute force” your wallet open, or someone peeking over your shoulder as you type it.
* Since you'll be typing it in fairly often, you'll know it's correct.
  {% endhint %}

{% hint style="danger" %}
Disadvantages

* Typing your seed in repeatedly makes you vulnerable to keylogging. Keylogging is when your keyboard input is recorded using malware or a physical device and then sent to a malicious party. If someone gets your seed, they can easily steal your Siacoins.
* Typing in 29 words every time you want to access your wallet might not be tolerable for you.
  {% endhint %}

## Setting a custom password

Go to the Wallet tab in Sia-UI.

![](/files/F0qbayRY9gk2mshRTY5o)

Click **More** in the upper right corner.

![](/files/vG2ZqYp9oDAdyRPDgOtw)

Click **Change Password.** Sia-UI will ask for your current password. For current password, enter whatever you're using to unlock your wallet now. You can then enter your custom password.

![](/files/IPBxs0Hqi4trtZgeg2h0)

That's it! You've changed your Sia-UI password.


# Back up your Sia wallet

Keeping your digital assets safe is something you need to put thought into. Whether those digital assets are precious family photos or keys to your cryptocurrency wallets, you should store copies in multiple secure locations.

This article will provide an overview of what you need to save in order to backup your Siacoin wallet, and provide some suggestions on how to go about doing it.

## Your Sia seed is your key

When you first create your wallet in Sia, you are presented with your Sia seed – a long string of words. This string of words must be stored safely.

### About the Sia seed

* It’s 29 words... most of the time. There's a small chance you'll get a 28-word seed.
* It's generated when you first make your Siacoin wallet.
* As long as you have a copy of your 29-word seed, you can recover your Siacoins and your uploaded files, as long as you've backed up your metadata. Learn how to load a wallet from a seed (WIP).

## Backing up your Sia wallet

{% hint style="info" %}
Because your seed is so important, you should have physical and digital methods of storing it safely.
{% endhint %}

* Store it the same way it's given to you: all lower-case letters, with a space between each word.
* Make sure there is no space at the beginning or end of the seed.

### Physically Safe

Keep a laminated paper copy stored in a locked safe or a bank safe deposit box.

### Digitally Safe

Keep your seed in a password or biometric (e.g. fingerprint) secured app like 1Password or LastPass.

Learn more about the [importance of your seed](/legacy/your-sia-wallet/the-importance-of-your-seed).

## It's time to strategize

There's an old saying about data.

> Your data isn't safe unless it's backed up three different ways in three separate physical locations.

If there were a fire in your home, would your important things be safe? Even if you had the stuff you cared about backed up onto a hundred hard drives and printed out three copies of every photo you cared about – what would happen if your home flooded?

These are things to consider when creating a backup strategy for your digital necessities. And I don't use the word strategy lightly – keeping your data safe is a constant, evolving practice. Hard drives fail, drinks are spilled, electrical surges occur. Time moving forward, as it always will, increases the risk that your data will no longer be your data. When your last failsafe fails, you have entered into a data loss event. Make sure yours is minimized.

This attitude applies to more than just digital content, but that's a bit beyond the scope of this article. 😃

## That's it

Cryptocurrency assets should absolutely be considered when estate planning as well. If you're holding long term, make sure your Siacoin balance is factored into your will, and that the person who receives it will know how to retrieve and use it. They'll need a copy of your seed, and instructions on how to restore that seed into a wallet.


# Wallet troubleshooting


# Delete your seed and make a new one

[Your seed is incredibly important](/legacy/your-sia-wallet/the-importance-of-your-seed), but there might be a time where you want to initialize your wallet with a new seed. Maybe you lost your old one, or maybe you're making a new wallet for a new purpose. Either way, we've got you covered.

## Things you'll need

* Sia installed on your computer
* A Sia wallet set up
* Siacoins, the cryptocurrency used to buy and sell storage

{% hint style="warning" %}
This process generates a new wallet with a new Sia seed. This is not recommended if you currently have Siacoins in your wallet, unless you've already forgotten your Sia seed. Any Siacoins in your current wallet will no longer be accessible unless you have your previous seed and restore from it.
{% endhint %}

## Deleting your wallet and starting over

1. Go to the Terminal tab
2. Type: `wallet init --force`

{% hint style="warning" %}
There are two dashes before the word `force`.
{% endhint %}

This will immediately erase your old wallet and create a new one. You will also see your new seed instantly in the Terminal window. [Make sure you safely store your new seed](/legacy/your-sia-wallet/the-importance-of-your-seed).

Go back to the Wallet tab, and use the new seed to unlock your wallet. Since this is a brand new wallet, your Siacoin balance will be 0 SC. Enjoy your new wallet!


# Find or fix your seed

Your seed is the most important part of your Sia node because it controls access to your wallet and files. You need to keep it safe, but there are a few tools you have available to find or fix your Sia seed.

These commands can be used directly in `siac`. In Sia-UI, open the Terminal from the toolbar on the top of the app.

## If Sia is already unlocked

You might use a custom password to access Sia. If you do, you don't often type your seed in and you may need a refresher on what it is.

Unlock your wallet and open the Terminal. Type `wallet seeds`.

Your seed will be displayed. [Make sure you store your seed safely.](/legacy/your-sia-wallet/the-importance-of-your-seed)

## Use siac utils

siac utils has a couple of commands that can help you troubleshoot your seed.

### verify-seed

This will attempt to diagnose an issue with your seed.

**Usage** `./siac utils verify-seed`

You'll be asked to provide your seed, at which point Sia will provide one of the following outputs:

#### Success

* No issues detected with your seed - *the seed you provided meets all the requirements for a Sia seed, and should be valid*

#### Failure

* invalid formatting - *usually indicative of extra spaces in between words or at the end, or no spaces between words*
* seed is not valid: must be 28 or 29 words - *your seed is too short or too long*
* seed is not valid: all words must be lowercase - *there is a capital letter somewhere in your seed*
* seed is not valid: illegal character - *you have something other than a letter in your seed*

### bruteforce-seed

If your seed is missing one word, this will attempt to figure out the missing word. This can also be used to check a word you're not sure about, by deleting it and then running this.

**Usage** `./siac utils bruteforce-seed`

You'll be asked to provide your partial seed, and Sia will get to work. It may take a couple of minutes to complete. Sia will provide one of the following outputs:

#### Success

* Found valid seed! The missing word was \<word>.

Sia will then print the entire correct seed for you to store safely.

#### Failure

* No valid seed - *the utility was unable to find your missing word*
* Expected 27 or 28 words in partial seed, got \<n> - *the partial seed you provided was missing more than one word*
* Couldn't read seed - *the partial seed you provided was invalid in other ways*


# I lost my seed. What do I do?

Your Sia seed grants full access to your wallet and balance of Siacoins. For various security reasons, the Sia team does not and is not able to have access to any user's seeds. We cannot recover your seed for you.

{% hint style="danger" %}
**Losing your seed means permanently losing access to your coins.**
{% endhint %}

But you might not be totally stuck.

## A way to view your seed

This is a way in which you can locate your current seed using Sia. *If your wallet happens to already be unlocked*, you can recover the seed using a command. In Sia-UI, click the `>` at the top to access the Terminal.

Follow these steps if your wallet is currently unlocked.

1. Click on the Terminal tab
2. Type: `wallet seeds`

and your wallet's seed will be presented to you. Make sure you safely store it right away.

Additionally, if you've updated to 1.4.0 or later, you can access your Sia wallet, click on More, and choose **View Seed.**

![](/files/fRDiuR0kufz1DIPFVMTu)

Learn more about the [importance of your seed](/legacy/your-sia-wallet/the-importance-of-your-seed)**.**

How do I [delete my current wallet and start over](/legacy/your-sia-wallet/wallet-troubleshooting/delete-your-seed-and-make-a-new-one)?


# My deposit or withdrawal didn't go through

This could happen with transactions involving your wallet, an exchange like Bittrex or Poloniex, or mining pools like Luxor or Siamining.

The first thing you should do is see if the transaction was added to the Sia blockchain. To do so, go to the [SiaStats Explorer](https://siastats.info/navigator) and paste the transaction ID into the search box in the upper right corner.

If your hash is not found in the database, then the transaction has not yet been added to the blockchain. it may need some time to confirm, or there may have been an issue with your transaction. Common issues include using an incorrect address or wallet downtime on the exchanges.

It can take over 10 minutes, and sometimes over an hour during peak times, for your transaction to be added to the blockchain.

If you are withdrawing from an exchange or a mining pool, and you do not see your transaction in the explorer within an hour or so, please file a support ticket with the exchange or pool.

If your transaction does appear in the explorer, that's a good sign. Your transaction should reach its destination shortly, but delays may still occur due to network or exchange issues.


# Why does Sia take so long to sync?

Sia needs to download an entire copy of the blockchain to maintain the integrity of the network’s transactions. This is a critical step and allows the decentralized network to function correctly.

{% hint style="info" %}
As of January 2021, the blockchain is a little over 24 GB, and grows about 1 GB every two months.
{% endhint %}

On newer solid-state drives (SSDs) this can take several hours. On standard hard disk drives (HDDs) this process can take over a day.

This is totally normal, but we are working to decrease this initial sync time in future releases.

Troubleshooting steps can be taken to address this. If the initial sync appears to be frozen:

* Give it time. Often, the sync will resume on its own.
* Quit Sia and restart your computer.

Some sites will allow you to "bootstrap" the blockchain, by giving you a mostly complete version to download and drop in the appropriate folder on your computer. As this requires trusting the party you download it from, we always recommend letting Sia sync itself.


# What are these deductions in my wallet?

Unexpected deductions of Siacoin from your Sia-UI wallet are not an immediate cause for concern. There are a few completely normal causes.

## **You are renting storage space, and the coins are paying for the storage space, as specified in your renter allowance.**

If you don't store any files, your coins will be returned to your wallet after the contract expires in three months.

## **You are hosting, and your coins are paying for collateral.**

If you are a good host (preserve uptime and preserve any files you are storing), your coins will be returned to your wallet after the contract expires in three months.

## **You may be running the same wallet (same seed) on multiple computers.**

This is not supported and can cause problems. You should delete both wallets and start over with fresh seeds. You can do this by clicking on the "Terminal" tab and typing \`wallet init --force\`. Then use the Recover Seed feature to restore your old seed to only one of the computers.

## **Something else may have gone wrong.**

If none of the above points describe your situation, you can delete your current wallet by clicking on the Terminal tab and typing:

`wallet init --force`

Then use the Recover Seed feature to restore your old seed to your new wallet. This should fix the problem.

## **Someone has access to your seed.**

This is the bad one. If someone has access to your 29-word seed, they can easily steal your Siacoin by loading it into another instance of Sia-UI. Keep your seed safe.


# Why does Sia-UI give me a new address each time I click Receive Siacoin?

Address reuse is a security and privacy issue in the crypto space, affecting any blockchain project that uses addresses. You can read more about it [here](https://en.bitcoin.it/wiki/Address_reuse). In short, with a combination of address reuse and social engineering, a malicious party could identify you and how much cryptocurrency you hold.

## How it relates to your Siacoin wallet

When it comes to your Siacoin addresses, we try to avoid address reuse whenever possible. The Sia network is a blockchain project just like Bitcoin, and – in a worst-case scenario – your privacy could be compromised with address reuse. **Sia-UI will create a new receiving address whenever you click**`Generate New Address`**.** This is intentional.

## What about those old addresses I made?

Your old addresses still work! Every address generated by Sia will always link to your wallet. You can re-use previous addresses if your risk tolerance is higher than the risk created by doing it.

## How risky is it, really?

It can vary, and you should learn more about address reuse before making a decision. But most people seriously involved in the crypto space will tell you to err on the side of caution, and re-use addresses as little as possible.

## How do I find my old addresses?

To find a list of all addresses linked to your wallet, go to the Terminal tab and type:

`wallet addresses`


# Sia-UI FAQs


# How to download and install Sia-UI

Learn how to install Sia-UI on Windows, Linux, or MacOS.

## Things You'll Need

* A desktop or notebook computer with a decent amount of available storage space. As of January 2021, you need about 24 GB for the Sia blockchain to download. This file will only get larger, so allocate some space to be able to grow with Sia.
* A basic knowledge of your computer's file structure.

### Find the right download for you <a href="#find_the_right_download_for_you" id="find_the_right_download_for_you"></a>

Go to [our official downloads page](http://sia.tech/get-started). You'll see two options, Sia-UI and Sia Daemon. Sia-UI is our user-friendly app, while Sia Daemon is for users comfortable with command-line interfaces. Download Sia-UI for your operating system by clicking the correct OS name.

<figure><img src="/files/44F2LkOp9xbRibhNTGmG" alt=""><figcaption></figcaption></figure>

Now either continue straight through to installing on [Windows or Linux](#installation-windows-and-linux), or skip ahead to install on [MacOS](#installation-macos).

## Installation: Windows and Linux

The process for Windows and Linux is very similar. The result of your download will be an `.exe` or Linux executable file. Double click it.

![](/files/kDiXXBC8flTpbBiouzjU)

Before Sia-UI launches, you'll likely see a warning that the app is from an unknown publisher. This is standard whenever you try to open an app that is not on your OS developer's approved list. In this case, Sia-UI is from Nebulous, the company the employs the Sia development team. Click **Run.**

![](/files/9e4B74u9ffV8IwLWzVnL)

Sia-UI will inform you that it's installing.

![](/files/h9SJJqtTpSITexs2zqWl)

Your computer is going to double-check with you about installing Sia-UI. If you see: `Do you want to allow this app form an unknown publisher to make changes to your device?`, click **Yes.**

Depending on your installed security software, you may also see a warning regarding network access or some other security precaution. In this example, Windows Defender is asking if siad.exe, the primary file that Sia uses to operate, is allowed to communicate on the network. Click **Allow access.**

![](/files/BQIWicXe87E0smWHB6Lf)

Sia-UI is now ready to go!

[First time installing? Set up a wallet.](/legacy/your-sia-wallet/sia-ui-faqs/how-to-make-a-new-wallet-in-sia-ui)

## Installation: macOS

The result of your download on macOS will be a `.dmg` file, typically in your Downloads folder. Access your Finder and navigate to your Downloads folder to locate it. In this example, the file is called `Sia-UI-1.4.0.dmg`. This can vary depending on the version.

Double click on this file to start the installation.

![](/files/hOBR8mu5ADX11coOQHUA)

A new window will appear, with the Sia-UI icon, an arrow, and an image of your Applications folder.

![](/files/vQY6pQx7xbwSON2RMxbh)

Drag the Sia-UI icon to the Applications folder and let go. Sia-UI has now been installed.

NoteTipWarningIf you had another version of Sia-UI previously installed, you'll be asked to overwrite it. It's ok to do this - you're installing the latest version.

You can now open your Applications folder from your Finder to locate the app.

![](/files/EtT3SH1wi1DcD0P09wk2)

When you first attempt to open Sia-UI, you'll likely see a warning that you are opening an app from an unidentified developer. This is standard whenever you try to open an app that is not on Apple's approved list. Click **OK.**

![](/files/ovRxaFNoH85PoWUMCcde)

As of macOS 10.15 Catalina, you may be notified that Sia-UI may contain malicious software. **Sia-UI is safe to use**, but since it hasn't been pre-verified with Apple they give a warning to be extra safe. To install, either go to System Preferences > Security and Privacy, and click Allow, or right-click the app icon and choose Open.

![](/files/Na2wc5XlSihUej1GSPu7)

We need to tell your Mac that Sia-UI is safe to run. Navigate to System Preferences, which can be accessed by clicking on the Apple in the upper left corner of your screen. Once there, click on **Security and Privacy.** This is in the first row of icons.

![](/files/1Jedf7t5EdUsq3aY8gFc)

The next screen will open to the General tab, which is exactly where you need to be. Towards the bottom of the window, you'll see the message: "Sia-UI was blocked from opening because it is not from an identified developer." Click **Open Anyway** to the right.

![](/files/78avlMZMHXvZVei6jPf7)

You might see one more message letting you know that Sia-UI is from an unidentified developer. Click **Open.**

![](/files/bu2YwgpkTUlLBHZLY6me)

Sia-UI is now ready to go!

[First time installing? Set up a wallet.](/legacy/your-sia-wallet/sia-ui-faqs/how-to-make-a-new-wallet-in-sia-ui)


# How to make a new wallet in Sia-UI

Learn how to make a new wallet in Sia-UI. This set of instructions assumes that you are setting up a new wallet in Sia-UI for the first time. If you need to restore an existing wallet, [learn how here.](/legacy/your-sia-wallet/sia-ui-faqs/how-to-restore-a-wallet-from-a-seed-in-sia-ui)

## Things You'll Need

A desktop or notebook computer with Sia-UI installed. [Don't have Sia-UI yet?](http://sia.tech/get-started)

A secure physical and digital way to safely store a long string of words.

## Create a new wallet

When you first boot up Sia-UI, you'll be prompted to create a Siacoin wallet. A wallet lets you store Siacoins and is required to be able to upload files to the decentralized network, or rent out your storage space and earn more Siacoins.

After starting Sia, you'll see this screen. Click **Create new wallet.**

![](/files/0oYquUKwHiKEnr3K8QPD)

Next, you'll see your seed. Your seed is a string of (usually 29) words and is your key to your Siacoin wallet. It's also how you can recover your funds - or in the future, your files - from another computer.

![](/files/Rbgneu1JFCFergyYj1SY)

You need to keep your seed safe. Safe means a lot of things to different people – but because your entire Siacoin balance is controlled by your seed, keep both digital and physical copies. Everyone does different things, and everyone has a different risk tolerance. Knowing this, our recommendations are as follows.

**Digitally:** Use a password or biometric (e.g. fingerprint) secured app like 1Password or LastPass.

**Physically:** Keep a laminated paper copy stored in a locked safe.

{% hint style="warning" %}
**Loss:** If you lose your seed, your Siacoin balance will be unrecoverable.\
**Theft:** If someone steals your seed, they can easily steal your Siacoin balance.
{% endhint %}

Ready for a deep dive? [Learn more about the importance of your seed.](/legacy/your-sia-wallet/the-importance-of-your-seed)

Once you've stored your seed, click **Next.**

You'll then be asked to verify your seed. Sia-UI will ask you for a random selection of your 29 words to make sure you've copied them down correctly. Enter them in the appropriate blank spaces. You'll see each box outlined in green when you've entered them correctly, and you can go back to the previous screen if you need to double check. Click **Done.**

![](/files/NupNwpnfmk5mlKq1vFSo)

You might be asked to wait a moment while Sia-UI works.

![](/files/gBNSxU6nNVbpUVl5LUwC)

When Sia-UI is ready, you'll be taken the Dashboard. The Dashboard shows you a snapshot of the Sia network, including your current block height, the number of peers you're connected to, and the number of active hosts on the network.

These numbers will increase over time. Once you're caught up, block height grows by one every 10 minutes or so, active hosts will increase as more people lend their storage space to Sia, and active peers should stabilize around 7 or 8.

![](/files/6aSwFL5wwGRiGTAVHcMt)

When your block height is fully synced, you'll see **Synced** in the upper right corner. Hover over for more info.

![](/files/MrvNKZMMmUSCZYtKZUR1)

Your wallet is ready! Go to the Wallet tab to check it out.

![](/files/F0qbayRY9gk2mshRTY5o)

Your wallet shows you how many Siacoins you currently have, as well as three views: Transactions, Send, and Receive.

[Learn about your Siacoin wallet.](/legacy/your-sia-wallet/wallet-overview)


# How to restore a wallet from a seed in Sia-UI

If you already have a Sia seed with a balance of Siacoins, you can recover and use your Siacoins at any time by using Sia-UI on your computer.

## Things You'll Need

* A desktop or notebook computer with a decent amount of available storage space. As of January 2021, you need 24 GB for the Sia blockchain to download. This file will only get larger, so allocate some space to be able to grow with Sia.
* Your Sia seed.
* Sia-UI installed. [Don't have Sia-UI yet?](http://sia.tech/get-started)
* The Sia blockchain fully synced to Sia-UI. Syncing can take hours on an SSD, and days on a traditional HDD.

## Restore from a seed

{% hint style="info" %}
Restoring from your seed does not restore a custom password. After following this process, you'll use your Sia seed to log in to your wallet until you [set a custom password.](/legacy/your-sia-wallet/how-do-i-change-my-sia-wallet-password)
{% endhint %}

Go to the Wallet tab. If there's not another wallet setup already, you'll see two options: Create new wallet and Restore from seed. Click **Restore from seed.**

![](/files/WURPoHVmfyZxLsMcDBIa)

If the blockchain isn't fully synched, you'll receive a message telling you to wait. Sia-UI needs to be fully synced because it needs to scan the blockchain for all your transactions.

![](/files/hYfy9TuE32aKuQzIRjY7)

Once the blockchain is synced, clicking Restore from seed will prompt you for your Sia seed. It must be entered exactly as it was given to you: all lower-case letters, a space between each word, and no spaces at the beginning or end of the phrase. Enter your seed and then click **Next.**

NoteTipWarningThe text you enter here is readable on the screen, not disguised as bullets. Be sure no one is looking over your shoulder.

![](/files/Bdbyvg5bqnjwQcHqnKPi)

Sia-UI will then scan the blockchain.

![](/files/yzUcoy3AUqRoeQ3H2i6x)

Give Sia a few minutes, it needs to do some work on your wallet.

![](/files/ADqvT5glch9e2nbhUg7w)

After it's done, you'll be taken to the Dashboard. Click back to the Wallet tab to find your balance.

{% hint style="info" %}
After restoring Sia from your seed and resyncing, it might take your balance up to an hour to re-appear in the wallet as Sia performs more actions in the background.
{% endhint %}

![](/files/F0qbayRY9gk2mshRTY5o)

That's it! Sia's so smart, it even pulls your transaction history.


# How to perform a clean install in Sia-UI

Sia-UI is great for storing Siacoins, uploading data to the Sia network, or lending hard drive space for others to use.

It’s possible that you might have to perform a **clean install** of Sia-UI if you run into a problem that can’t be solved by other means.

During a clean install, two primary things are deleted:

* The Sia data folders
* The Sia-UI application, in certain circumstances

But don’t worry, restoring your balance of Siacoins is easy as long as you have your original wallet seed.

{% hint style="warning" %}
Performing a clean install will remove all your renting and hosting info as well. So if you've uploaded data to Sia or are hosting other's files, this will eliminate those contracts and should be used as a last resort. If you're not comfortable doing this, contact our team on[ Discord](https://sia.tech/discord) and we might be able to guide you through a specific fix.
{% endhint %}

## Your Sia wallet seed

When you first generated your wallet, you were given [a 29-word seed](/legacy/your-sia-wallet/the-importance-of-your-seed). This seed is the master key for your Sia wallet and your Siacoin balance. Your Siacoins are always safe as long as you, and only you, have your seed.

The seed is required for this process, so make sure you have it handy. We’ll use it towards the end of the document.

If you don’t have your seed, do not proceed with these steps.

## Deleting the Sia data folders

Sia stores its data in specific folders. This includes things like the entire blockchain and your wallet info. We need to delete these, but first we need to find them. There are two easy ways to locate the folders.

{% hint style="warning" %}
**Note:** Quit Sia before deleting the data folders.
{% endhint %}

**Navigate directly to the location below, depending on your OS.**

Windows: `%UserProfile%\AppData\Roaming\Sia-UI\sia`

Linux: `~/.config/Sia-UI/sia/`

Mac: `~/Library/Application Support/Sia-UI/sia/`

**or…**

**Use Sia-UI**

If you've updated to v1.3.1 or later, you can easily find these folders by clicking **Show Sia Data** in the About tab.

If you're on 1.4.0 or later, use the Info button at the top of Sia.

![](/files/0t4jL2Is6jpMKql9A6Ji)

Then click **Show Sia Data.**

Once you find the `/sia` folder:

![](/files/y83KPUlDDe4zLXxzA3Mz)

Delete it.

Reboot your computer after deleting this folder.

## Deleting and re-downloading Sia-UI

{% hint style="warning" %}
While not required, deleting and re-downloading the application files will ensure you are on the latest version. If you're sure you're already [on the latest version](https://sia.tech/get-started), you can skip this step.
{% endhint %}

### **Prior to 1.4.0**

Sia-UI installed where it was downloaded, unless moved. For Windows and Linux, you’ll see a folder that is named something like:

`Sia-UI-v1.3.2-win32-x64`

On macOS, you’ll simply see the Sia-UI icon.

Drag the folder containing the Sia-UI app into the trash if you wish to.

### **1.4.0 and later**

On macOS, Sia-UI can be found in the Applications folder. Trash it.

On Windows and Linux, you can run the uninstaller found with the Program file - `user/AppData/Local/Programs/Sia-UI/` on Windows.

[Learn how to download and install Sia-UI](/legacy/your-sia-wallet/sia-ui-faqs/how-to-download-and-install-sia-ui).

## Setting Sia-UI up again

At this point, you’ve deleted the Sia data folders and made sure you’re updated to the latest version of Sia-UI. Now you’ll need to restore your seed to make sure your Siacoin balance is restored.

When you open Sia-UI, choose **Restore from seed**. [Learn how to do that here](/legacy/your-sia-wallet/sia-ui-faqs/how-to-restore-a-wallet-from-a-seed-in-sia-ui) if you need help.

{% hint style="info" %}
After restoring Sia from your seed and resyncing, it might take your balance up to an hour to re-appear in the wallet as Sia performs more actions in the background.
{% endhint %}

Sia-UI will then scan the blockchain for any Siacoin associated with your seed. This may take a while, but once it’s done your Wallet will show your previous Siacoin balance.

## Questions?

If you're having trouble, we're here to help. Come talk to us on our [Discord](https://sia.tech/discord) and post in the `#help` channel.


# How do I uninstall Sia-UI?

## Sorry to see you go!

If you're done with Sia-UI, you can uninstall easily.

There are two things you need to remove — the application, and the associated data folders.

{% hint style="info" %}
Deleting your data folders means Sia is gone - blockchain and everything. You can always [restore your wallet](/legacy/your-sia-wallet/sia-ui-faqs/how-to-restore-a-wallet-from-a-seed-in-sia-ui), though.
{% endhint %}

## Windows

Sia-UI on Windows has a built-in uninstaller that will do it for you. It can be found in the default install location - `user/AppData/Local/Programs/Sia-UI`

Using this will delete Sia and all the associated data folders.

You can also use Add or Remove Programs app from the System Settings. Uninstalling from here will leave the data folders intact.

## Mac and Linux

On Mac and Linux, you can just delete the app from your Applications folder. You'll then need to delete the data folders.

In Sia-UI version 1.4.0 and later, there's an easy way to find this. Click on the **Info** button at the top of Sia-UI.

![](/files/LxezgJVu642xOlJnpyib)

Then click on **Show Sia Data** or **Open Data Folder** (version dependent)**.**

![](/files/TJGRMyOrCPeE0C8qWXnr)

You'll be taken to your computer's `/sia` folder. Delete the parent folder to this, `/Sia-UI`.

## Data folder locations

If you're having trouble and can't get to your Sia data from Sia, they can also be found in the following locations:

**Windows:** `%UserProfile%\AppData\Roaming\Sia-UI\`

**Mac:** `~/Library/Application Support/Sia-UI/`

**Linux:** `~/.config/Sia-UI/`


# For Advanced Users


# Verify the Sia release signature

All Sia release binaries are signed, which allows you to confirm that the version you've downloaded is indeed the exact version that we've released. This is an extra security check to ensure you're using legit, unmodified software, which can be pretty important when the app also handles money like Siacoins.

{% hint style="info" %}
These instructions are also available on the [official downloads page](https://sia.tech/get-started), just under the download links.
{% endhint %}

You can download the signing key [here](https://sia.tech/releases/sia-signing-key.asc), and the signed hashes for the current release [here](https://sia.tech/releases/Sia-v1.5.0-SHA256SUMS.txt.asc).

1. Download and import the Sia signing key. `wget -c https://sia.tech/releases/sia-signing-key.asc` `gpg --import sia-signing-key.asc`
2. Download the signed hash file, and verify the signature. `wget -c https://sia.tech/releases/Sia-v1.5.0-SHA256SUMS.txt.asc` `gpg --verify Sia-v1.5.0-SHA256SUMS.txt.asc`
3. If you downloaded a zip file, unzip that first. `unzip Sia-v1.5.0-linux-amd64.zip`
4. Check that the files you downloaded were signed. `sha256sum --check --ignore-missing Sia-v1.5.0-SHA256SUMS.txt.asc`

You should see "OK" next to the files you did download and errors for the files you have not downloaded.


# Using Sia on a remote node

## Using Sia on a remote node

While the majority of users use Sia on a local computer, there are a few instances where it is either not possible or more useful to run a Sia node on a remote server.

Sia already has the functionality to automatically pick up a running `siad` instance if one was started manually. To get Sia to pick up a remote instance, all you need to do is forward your local port 9980 to your remote server port 9980. For those comfortable with the command line, you can use the following command.

```
ssh -f user@domain -L 9980:localhost:9980 -N
```

`-f` Requests ssh to go to background just before command execution.

`-L` Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

`-N` Do not execute a remote command.

Now when you restart Sia, it will pick up the remote instance of siad. All API calls that don't require authentication will work, however API calls that require authentication will fail as the UI will be using the wrong API password. A workaround for this is to restart the remote siad instance with:

`--authenticate-api=false`

Now, all API calls will work and you can use Sia just like you would with a local siad instance.


# Using Sia on multiple computers

Using Sia on multiple computers can be an effective way to manage your Sia life. You can have one instance of Sia be your long-term Siacoin storage. While some users hold Siacoins, rent, and host under a single seed/single install, it's truly safest to have a separate seed and instance of Sia for each use case.

## Using the same seed on multiple computers

In short, don't. Using the same Sia seed on multiple computers can cause issues for your renter, host, and wallet balance.

In part, it comes down to address generation and syncing that data between the clients. It can cause your client to either not see or not catch in a timely manner the transactions that the other client is getting. Your wallet, renter, or host are not rescanning the blockchain before every transaction they make to ensure that the funding source wasn't already used.

Two wallets can become out of sync and show different balances, and new transactions could be denied by the blockchain.

When using multiple computers with Sia, your best and safest bet is to have a different seed for each Sia.


# How to bootstrap the Sia blockchain

We don't recommend that you bootstrap the Sia blockchain. While there are many trusted sources, the best source is one you don’t have to trust, Sia itself.

When you bootstrap, you're taking the consensus file from someone else who has already downloaded it (and potentially modified it) and using it for your Sia node. It's usually a lot faster than waiting for the Sia blockchain to sync, but that's the only benefit.

While there are a number of trusted community members offering the consensus file to bootstrap, you should let your Sia node sync the blockchain from the blockchain. Ironically, you should let your Sia node pull itself up by its own bootstraps.


# How to automatically restart and unlock Sia

When your Sia wallet is locked, it isn't able to perform common and important tasks. For renters, this might mean new contract formation or renewing your allowance. For hosts, it would mean downtime that affects your host scoring and the collateral you've put into contracts.

You can have your Sia wallet automatically unlock by setting up a few simple steps.

## Set the environment variable

An environment variable is just a piece of information that is specific to your computer. In this case, it's your Sia wallet password, so you'll set an environment variable named `SIA_WALLET_PASSWORD`.

[How do I set an environment variable?](/legacy/your-sia-wallet/for-advanced-users/how-to-set-an-environment-variable)

Environment variables are accessible by any program on your computer. If you still use your Sia seed to unlock your wallet instead of a custom password, you should change this before entering your Sia seed into the environment variable. Someone with access to your seed can easily steal your Siacoins and access your files. Learn how to set a custom password.

## Set your computer to automatically reboot after a power failure

Everything we do here won't matter much if you physically need to reboot your machine after it loses power. At that point, you could just launch Sia again on your own. This setting will allow your computer to reboot automatically anytime its power is interrupted.

* [Windows and Linux](https://www.technewsworld.com/story/78930.html) (done through your BIOS, complete with instructions for connecting to an APC for smooth power-downs and startups)
* [Mac](https://www.wikihow.com/Make-Your-Mac-Restart-Automatically-After-a-Power-Failure) (only applicable to certain models)

## Set your user to automatically login on startup

Your computer needs to automatically log in to your user after it reboots. Follow these steps depending on your OS.

* [Windows](https://www.groovypost.com/howto/automatically-sign-in-windows-10/)
* [Mac](https://support.apple.com/en-us/HT201476)
* [Linux - Ubuntu](https://help.ubuntu.com/stable/ubuntu-help/user-autologin.html.en)
* [Linux - other distros](http://www.linfo.org/automatic_login.html)

## Set Sia as a startup item

Now that your computer will automatically login after startup, you need to make sure that Sia will launch on its own after that happens. Follow one of these options:

* Visit one of the following links to learn how to setup Sia as a startup item. Once all these steps are set, reboot your computer and verify that your account logs in, Sia starts, and your wallet unlocks automatically.
  * [Windows](https://support.microsoft.com/en-us/help/4026268/windows-10-change-startup-apps)
  * [Mac](https://support.apple.com/kb/PH25590?locale=en_US)
  * [Linux - Ubuntu](https://www.howtoforge.com/tutorial/how-to-use-startup-applications-on-ubuntu/)
  * [Linux - other distros](https://www.simplified.guide/linux/automatically-run-program-on-startup)
* If you are using Linux Ubuntu and are comfortable with the command line, you can follow the systemd service setup guide featured in the next section.

### Creating a systemd service on Ubuntu

By creating a systemd file we can start Sia whenever the computer is booted instead of starting it manually. Run the following command to create a new systemd unit file:

```sh
$ sudo nano /etc/systemd/system/siad.service
```

Then, modify the following snippet to fit your host and then paste it into the file. You will want to change `asecurewalletpassword` to a more secure wallet password.

```
[Unit]
Description=siad
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/siad -M gctwh -d /home/ubuntu/siad
ExecStop=/usr/local/bin/siac stop
Restart=always
RestartSec=15
User=ubuntu 
Environment="SIA_WALLET_PASSWORD=asecurewalletpassword"
LimitNOFILE=900000

[Install]
WantedBy=multi-user.target
Alias=siad.service
```

```sh
$ sudo systemctl start siad
$ sudo systemctl enable siad
```

Your Sia node should now be running and accessible. You can try out a few commands to test it:

```sh
$ siac consensus
Synced: No
Height: 0
Progress (estimated): 0.0%
```

```sh
$ siac gateway
Address: localhost:9981
Active peers: 0
Max download speed: 0
Max upload speed: 0
```


# How to set an environment variable

## Linux

To set an environment variable on Linux, enter the following command at a shell prompt, according to which shell you are using:

csh/tcsh: *variablevalue* bash/ksh: *variable*=*value*

where `variable` is the name of the environment variable (such as ) and `value` is the value you want to assign to the variable, (such as ). To find out what environment variables are set, use the command. To remove a variable from the environment, use the following commands:

csh/tcsh: *variable\_bash/ksh: \_variable*

## Windows

You can create or change environment variables in the Environment Variables dialog box. If you are adding to the PATH environment variable, or any environment variable that takes multiple values, you should separate each value with a semicolon (;).

### Windows 8 and Windows 10

**To open the Environment Variables dialog box:**

1. In Search, search for and then select: Edit environment variables for your account

**To create a new environment variable:**

1. In the User variables section, click New. The New User Variable dialog box opens.
2. Enter the name of the variable and its value, and click OK. The New User Variable dialog box closes, and the variable is added to the User variables section of the Environment Variables dialog box.
3. Click OK in the Environment Variables dialog box.

**To modify an existing environment variable:**

1. In the User variables section, select the environment variable you want to modify.
2. Click Edit. The Edit User Variable dialog box opens.
3. Change the value of the variable and click OK. The Edit User Variable dialog box closes, and the variable is updated in the User variables section of the Environment Variables dialog box.

When you have finished creating or editing environment variables, click OK in the Environment Variables dialog box to save the values.

### Windows 7

**To open the Environment Variables dialog box:**

1. Click Start, then click Control Panel. The Control Panel opens.
2. Click User Accounts.
3. Click User Accounts again.
4. In the Task side pane on the left, click Change my environment variables. The Environment Variables dialog box opens.

**To create a new environment variable:**

1. In the User variables section, click New. The New User Variable dialog box opens.
2. Enter the name of the variable and its value, and click OK. The New User Variable dialog box closes, and the variable is added to the User variables section of the Environment Variables dialog box.
3. Click OK in the Environment Variables dialog box.

**To modify an existing environment variable:**

1. In the User variables section, select the environment variable you want to modify.
2. Click Edit. The Edit User Variable dialog box opens.
3. Change the value of the variable and click OK. The Edit User Variable dialog box closes, and the variable is updated in the User variables section of the Environment Variables dialog box.

When you have finished creating or editing environment variables, click OK in the Environment Variables dialog box to save the values. You can then close the Control Panel.

## macOS

To set an environment variable on Mac OSX, first open a terminal window\.If you are setting the environment variable to run jobs from the command line, use the following command:

**export** *variable=value*

where variable is the name of the environment variable (such as ) and value is the value you want to assign to the variable, (such as ). You can find out which environment variables have been set with the command.

If you are setting the environment variable globally to use with applications, use the commands given below. The environment variables set by these commands are inherited by any shell or application.

### OS X 10.10

To set an environment variable, enter the following command:

**launchctl setenv** *variable "value"*

To find out if an environment variable is set, use the following command:

**launchctl getenv** *variable*

To clear an environment variable, use the following command:

**launchctl unsetenv** *variable*

### Newer version of macOS

See [this article](https://apple.stackexchange.com/questions/106355/setting-the-system-wide-path-environment-variable-in-mavericks) for instructions on how to create a "plist" file to store system-wide environment variables in newer versions of macOS.

Thanks to [Schrodinger.com](https://www.schrodinger.com/kb/1842) for the content of this article.


# walletd

walletd based wallet documentation that will eventually replace the existing wallet section.

Welcome to `walletd`.


# Wallet overview

{% hint style="info" %}
Get started with the official [`walletd` software](https://sia.tech/software/walletd).
{% endhint %}

`walletd` is the best places to store your Siacoins. It is the official wallet app made by the developers of the Sia network, the Sia Foundation.

`walletd` allows you to store Siacoins in a secure wallet. Although `walletd` is launched via command line it also has a user interface that can be accessed via web browser.

Your wallet gives you access to see your balance and transaction history, and the ability to send or receive Siacoin to any other Sia user.

Here's what the `walletd` user interface looks like.

![](/files/F0qbayRY9gk2mshRTY5o)

Your **balance** is at the top. This is the current amount of Siacoins in your wallet, and can fluctuate quite a bit depending on how you use Sia. If you own any Siafunds, they show up next to this.

## The Transactions tab

Every transaction is broken into a few categories - the Amount, Transaction ID, Time, TX Type, and Status.

![In this example, you can see three transactions.](/files/opoAt4g1QbADQqHPm1ex)

{% tabs %}
{% tab title="Amount" %}
The amount of Siacoins entering or leaving your wallet.
{% endtab %}

{% tab title="Transaction ID" %}
Use these to look up your transaction in a Sia blockchain explorer. The transaction IDs are shortened, but you can hover over them to see the full ID. You can also copy and paste while you do this.
{% endtab %}

{% tab title="Time" %}
The date and time the transaction was made.
{% endtab %}

{% tab title="TX Type" %}
The type of transaction that took place. Possible values are Siacoin, Siafund, Contract, Proof, Revision, Block, Defrag, and Setup.
{% endtab %}

{% tab title="Status" %}
While your transaction is confirming, you'll see 0/6, then 1/6, and so on. Once you reach six confirmations, you'll see the green checkmark like above and your transaction is considered confirmed.
{% endtab %}
{% endtabs %}

Near the upper right corner, you'll see a button that says `More`. Click on this to get some additional wallet options.

![](/files/RQ8rX4xb6yAX790fvIOf)

**View Seed** shows you your seed in case you need to see it again.

**Change Password** lets you set a custom password for your wallet, instead of using your Sia seed. [Learn about the pros and cons of a custom password.](/legacy/your-sia-wallet/how-do-i-change-my-sia-wallet-password)

## Be careful

There are plenty of scams in the cryptocurrency space. Make sure the only software wallet you use to store your Siacoin is the official app downloaded from the official Sia website: <https://sia.tech/get-started>[.](https://gitlab.com/NebulousLabs/Sia-UI/tags) There are some other great recommendations you can get from [our community](https://sia.tech/discord), but we can't guarantee that any other software wallet will safely store your Siacoins.


# About renting on Sia

This page talks about the basic and terms you need to know to start renting. Later pages walk you through the specific process.

When you upload files on the Sia Storage Platform, you become a **renter**. You upload files to other users who have made their space available, called **hosts**. We use the term renter because Sia creates contracts with other hosts:

* to store a certain amount of data (whatever you upload)
* for a certain period of time (13 weeks by default, and it auto-renews)
* for a certain amount of money (the market dictates the prices)

You store data on the network by:

* setting an allowance
* uploading your files

## The marketplace

The Sia storage network uses a marketplace to find storage for your data. The cost of this storage, often referred to as **pricing**, is the market rate determined competitively by hosts and renters. If hosts find they can lower prices and win more data to store as a result, they'll do it. If renters are willing to pay more to store on high-quality hosts, those hosts might raise their prices.

The price of storage is listed in Siacoins, the cryptocurrency used to buy and sell storage on the network. You'll need to \[get Siacoins] in order to upload files. The price of a Siacoin can vary just like the price of any cryptocurrency. This is usually stable for periods of time, but can sometimes have more significant shifts depending on the crypto trading markets.

Fortunately, the price of Siacoin doesn't really affect the price of Sia storage. Hosts set their own prices, which creates a marketplace where the best and most reliable hosts are competing for the storage contracts of those who want to upload data. Pricing on the network usually works out to around **$2 per TB per month.** Using Sia becomes more cost-efficient as you upload more data and store it for longer periods of time.

Siacoins are utility tokens and their sole purpose is to fulfill contracts on the Sia network.

## **About contracts**

Storage contracts are one of the most important features of the Sia network. They are what allow the entire Sia ecosystem to work in a trustless way – they form blockchain-enforced contracts between you and the people who store your data that are automatically fulfilled when each party meets their obligation. In other words, they let you form contracts with people you don't know to store your data, and they can't steal your money.

A host's job is to store the data, and they only get paid when they have proved they have done so. A renter's job is to pay the host, and they only pay for the data storage they use.

Storage contracts last for three months by default and are automatically formed when you start uploading your files.

## **Fees**

As a renter, you pay for the cost of renting storage space. There are also some other fees that you're responsible for.

* **Contract Formation Fees** – Creating storage contracts on the blockchain requires a transaction, and there are very small fees associated with this. Contract formation fees are one-time per contract, and usually cost only a handful of Siacoins (a few cents).
* **Bandwidth Fees** – You pay for the bandwidth you use when you upload or download files. This can also include wear and tear fees set by the host to help pay for their physical storage devices.

Because contract formation fees only happen once, and your initial upload will consume a lot of bandwidth, using Sia for longer periods of time results in lower average costs.

## **Your Allowance**

The first thing you'll do when you want to upload files to Sia is set an allowance. The allowance tells Sia how much money you're willing to spend on storage space, and makes sure more than this amount is not deducted from your wallet.

Most people just set their allowance and forget it, but it's a good idea to check in periodically. Setting your allowance too low might mean that Sia can't upload all your data, or might not be able to form the contracts with other hosts to begin with. You can change your allowance at any time in Sia.

If your allowance is too high, you might end up overpaying for storage you could have had at a lower price.

Setting your allowance happens before uploading files, and Sia starts to automatically form the contracts it needs with new hosts so that you can upload when you're ready. You might see multiple transactions hit your wallet right after setting your allowance – this is your Siacoins getting set aside with each host. Don't worry - you'll get whatever Siacoins that you don't spend back at the end of the contract. With Sia, you only ever pay for what you use.

## **Uploading files**

Uploading files is done using the Sia software which can be found on our [official downloads](https://sia.tech/get-started) page.

* Sia UI, the Sia app built for casual users. [How to download and install Sia-UI](/legacy/your-sia-wallet/sia-ui-faqs/how-to-download-and-install-sia-ui).
* `siad`, the Sia daemon built for technical users who prefer to use a CLI (Command Line Interface).


# Managing your files

There's some specific info you should know before you get your first file on Sia.

{% hint style="info" %}
As with any file storage or backup solution, Sia should not be your sole location for critical files.
{% endhint %}

## Uploading

Uploading happens in Sia-UI or your preferred command-line interface. Sia-UI has your standard file browser or drag-and-drop options, just like any other file storage application. There are special commands that you'll want to become familiar with when using the CLI version of Sia, which is called `siac`.

When you begin to upload a file to Sia, it has to get processed on your machine to allow for maximum redundancy and security on the network. It is first split into manageable chunks. Each chunk is then run through a process that creates 30 pieces, each of which gets encrypted before being sent to a different host. Only 10 of the 30 pieces are needed to reconstruct a chunk, but no host ever sees more than one. This means, for each part of your original file, 20 hosts could drop from the network and your data will still be safe and secure.

{% hint style="info" %}
For the more technical readers, here is what happens behind the scenes:

* Files are chunked into 40MB chunks (if a file is smaller, it is padded to 40MB so that data looks identical as it moves across networks)
* Each chunk is then erasure-coded using [Reed-Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) encoding. After processing, each chunk has 30 unique 4MB pieces associated with it.
* Each piece is then encrypted using [Threefish](https://en.wikipedia.org/wiki/Threefish) and uploaded to a distinct host.
* Because Reed-Solomon encoding is done with 10 data shards and 20 parity shards, any 10 pieces are sufficient for rebuilding the file.
  {% endhint %}

That's a lot of details but just know: you don't have to do anything, or even see that this process happens.

## Limits on uploading\*

\*These numbers will change over time.

**Maximum total storage:** Sia can currently handle 35 TB of data in a single node, or installation of Sia.

**File size:** The minimum file size on Sia is currently 40 MB. Uploading smaller files isn't a problem, but Sia will pad each of them out to 40 MB. Your 80 MB short video stays 80 MB. But your 8 MB photo and your 100 KB document each become 40 MB when uploaded.

This means that, if you're uploading many small files, you'll save a lot of money by zipping them up together before uploading. This minimum file size will be *significantly* reduced in a future update.

## Health and Redundancy

In Sia, you'll see the health of your files represented as a percentage. This refers to how many pieces of this file are available. You always want this to be 100%, which means that all 30 pieces of your file are stored on hosts. Sia is smart though – if a host goes offline, it will re-duplicate that piece on a new host the next time it checks.

Sia can only check when it's active though, so be sure to open Sia periodically to refresh the health of your files.

## Downloading

Downloading files happens right through the app as well. There's a small download icon next to each file in your list. Downloading requires Siacoins since you pay for the bandwidth you use.

### Maintaining Data *\*\**

In order to make sure that your data is always available, there's a couple of important tasks you should periodically perform.

* **Refreshing your allowance** - About six weeks after your contracts are created, your allowance attempts to refill itself. Sia will never spend more than your allowance, so it needs to be refilled to facilitate contract renewals and downloads through the rest of the contract period. ***!** The allowance will refill automatically when you open Sia.*
* **Renewing your contracts** - Your storage contracts will renew automatically at the end of the contract period. By default, Sia will attempt to renew your contract within about 1 month of the contract expiration date. If you started renting at the beginning of January, your 3-month contracts would expire around the end of March. Sia would attempt to renew them around the beginning of March. ***!** Your contracts renew automatically when you open Sia.*
* **Boosting file health** - File health and redundancy are also boosted if needed, as described above.

**Sia needs to be running with your wallet unlocked for these things to occur**, so as a renter, it's a good idea to open Sia **at least once a month** and let it run overnight to take care of miscellaneous housekeeping tasks such as these. If you simply upload files and then never open Sia again, your allowance and your contracts will eventually expire and your files will be immediately deleted once your contracts are no longer valid.


# How to rent storage on Sia

When you upload files on the Sia network, you become a **renter**. You upload files to other users who have made their space available, called **hosts**. Learn more [about renting](/legacy/renting/about-renting) and [managing your files](/legacy/renting/managing-your-files) before you start.

But the only thing that you need to set when you start uploading is your **Allowance**, or how much money you're willing to spend on storage. Having an allowance makes sure that your storage costs are predictable, and won't exceed an amount you're comfortable with.

## Things you'll need

* Sia installed on your computer
* A Sia wallet set up
* Siacoins, the cryptocurrency used to buy and sell storage

## The process

{% hint style="info" %}
These instructions walk you through how to upload files in Sia-UI.
{% endhint %}

Go to the Files tab in Sia-UI. Click **Setup Allowance**.

![](/files/wWrX6KnXutUwWskxyuJ1)

Enter in the amount of Siacoin you'd like to spend for storage. You'll only ever pay for what you use, but entering an allowance that's close to what you'll actually use is a good idea. If you're not sure what to enter, use the default values.

In this example, we say that we want to spend 500 SC per TB. As today's prices, that's about $2. We also expect to store about 3 TB of data. Because the default is to store data for three months, the equation becomes:

**500** SC per TB x **3** TB x **3** months, or **500** x **3** x **3**. This gets you an allowance of 4,500 SC.

Click **OK.**

![](/files/LL3kJrOhlzBrSZlA5giA)

Now you might have to wait a minute. Sia is busy - it's forming contracts with hosts to get ready for all your data.

This process usually takes about 10-15 minutes. When it's done, you'll see Sia-UI's file manager ready to go. After you can start uploading, that Contracts Active number will slowly tick up to about 50. That might take a couple hours to finish.

![](/files/sMujVjSTcTNcKpXj53ow)

Once Sia is ready to go, you'll see some icons towards the right.

![](/files/jFPgx5Ptzey0lHPb8VFK)

In this example, we use the file upload option to start moving a .zip to Sia.

![](/files/K5p4PB2XqNKcPvpTRFlz)

Over time, you'll see Contracts Active increase to about 50, and Health increase to 100%. Upload speed will vary based on your internet connection, your hosts' internet connections, and advancements to the Sia protocol as new versions are released. Keep in mind that uploading several TB of data can take several days or weeks.

That's it! Your files are on Sia - the most secure, affordable decentralized cloud network in the world.


# How to back up and restore your files

Back in version 1.4.1 of Sia, we introduced seed-based file recovery. This feature lets you create a metadata snapshot of your current files, which is stored on the Sia network and linked to your seed. As long as your contracts are active, you can then use this backup to restore your files at any future date and from any (preferably empty) Sia node.

When your files are on Sia, they're on the most private, secure network in the world. With seed-based file recovery, they're now also recoverable anywhere, anytime.

File backups are meant to be used to restore files in a brand new instance of Sia, but can also be accessed in your current Sia node.

{% hint style="info" %}
Your contracts need to be active, which means Sia isn't totally fire-and-forget just yet. You still need to boot Sia up every few weeks to renew your allowance and contracts.
{% endhint %}

## Back up your files in Sia-UI

### **Create your backup**

After you've [uploaded files to Sia](/legacy/renting/how-to-rent-storage-on-sia), go to the Rent tab and click **More**. You've got two new options, Backup Files and Restore Files. Click **Backup Files**.

![](/files/DsigurE8qyaLsR1A6wQg)

Name your backup file, and click **Start Backup**.

![](/files/hDqK3YRmSqVIf0sfu3ef)

Sia now takes a snapshot of your current files and stores it in the cloud. You'll see a notification pop up in the upper right corner to let you know.

![](/files/5XX2mATXAHyXgdpR3a5Y)

### View your backups

Just created your first backup? You can verify that Sia's got it.

Click on **More** and go to **Restore Files** to see your available backups. If any backups are currently being taken, you'll see a green progress bar. It can take a while for a backup to complete, so check back later if it's not done. Completed backups show with the date they were taken, and an option to restore them.

![](/files/AAxlY5e1kggXXQwTLRfM)

### Restore your backup

File backups are typically used to restore your files in a new instance of Sia if the one you were previously using had issues. If you haven't set an allowance or uploaded files in Sia yet, you can choose **Restore Files** as soon as you go to the Rent tab.

![](/files/igIm1fznkQqaNxOl0tob)

Otherwise, get to **Restore Files** from More.

Sia needs to scan for your contracts and your backups. Click **Start Recovery Scan**.

![](/files/M6jGhr67Dm0qFVs7uANw)

Sia will scan for your contracts and available backups. You'll see a progress bar indicating how many blocks it has scanned.

![](/files/qyMGI6aioFMuM7KKhBZI)

Wait for the scan to complete. Sia might find your backups right away, but it might need some time. Give Sia up to 10 minutes after the scan completes to locate your backups. They'll appear in the window once they've been found. If after 10 minutes you don't see them, click **Start Recovery Scan** again.

![](/files/tOK8gv6Owo0bV07V4zZB)

Sia has found your backups. Click **Restore** next to the one you want. Feel free to close this window, or reopen it to check back - your files will begin to appear in the file manager in Sia over the next few minutes.

There's one last step - check your allowance to make sure it's set. Sia needs your allowance to be able to spend your Siacoins on contracts and download bandwidth to get your files back. Once that's done, you're good to go!


# Renter troubleshooting

There are some common issues that you might encounter when uploading files to Sia, mostly related to stuck or stalling uploads. There are some easy solutions for these issues, as long as you have the right info. We’ll detail what to look for and possible solutions in this document.

`siac`, the command-line for Sia, is a great way to get information that can help identify your problem. Commands can be run in your preferred CLI, or in Sia-UI by accessing the built-in Terminal from the top menu bar.

## Gather general Sia info

Use the command `siac`. This will print basic info about Sia’s status, focusing on your blockchain sync status, your wallet status, and some info about your renter.

```go
Consensus:
  Synced: Yes
  Height: 216307

Wallet:
  Status:          unlocked
  Siacoin Balance: 415.95 KS

Renter:
  Files:           257
  Total Stored:    2.93 TB
  Min Redundancy:  0
  Contracts:       52
```

You can use this info to make sure that your wallet is unlocked, that you have enough Siacoins, and check important renter info like your number of files, amount of data stored, and minimum redundancy.

If your wallet is locked, you can’t spend Siacoins. This means you can’t form contracts or renew your allowance. This alone can grind your Sia renting to a standstill.

If you don’t have enough contracts, Sia won’t be able to maintain your data on the network. Contracts should usually be right around 50. If you have too few, your allowance settings might be too strict. Try raising the amount you’re willing to spend on storage and confirm the number of hosts in your allowance settings as this controls the number of contracts.

### Get renter-specific info

Use the command `siac renter`. This will print some info that you saw earlier, but also important allowance info.

{% hint style="info" %}
**Quick Tip:** Your allowance is the maximum amount of Siacions you’re willing to spend on storage. By setting this number, you’re making sure that you don’t end up spending way more over your contract period than you intended. If your allowance runs out, you can’t make new contracts and your data will eventually be removed from Sia.
{% endhint %}

```go
Allowance:       12 KS
  Spent Funds:     254.4 SC
  Unspent Funds:   11.75 KS

Data Storage:
  Files:           257
  Total Stored:    2.93 TB
  Min Redundancy:  0
  Contracts:       52
```

You can also run `siac renter allowance` to get even more detailed allowance info.

```go
Allowance:
 Amount:               75 KS
 Period:               12096 blocks
 Renew Window:         4032 blocks
 Hosts:                50

Expectations for period:
 Expected Storage:     23.0000 TB
 Expected Upload:      560.000 GB
 Expected Download:    280.000 GB
 Expected Redundancy:  3

Spending:
  Current Period Spending:
    Spent Funds:      18.07 KS
      Storage:        12.72 KS
      Upload:         732.2 SC
      Download:       3.093 SC
      Fees:           4.617 KS
    Unspent Funds:    56.93 KS
      Allocated:      29.03 KS
      Unallocated:    27.9 KS
  Previous Spending:  34.32 KS
    Withheld Funds:   0 H
    Release Block:    0
```

You can use this to see if your allowance is large enough to accommodate the amount of storage you’re trying to rent. This might clue you in that you need to raise your allowance or add more Siacoins to your wallet if you don’t have enough to set a proper allowance.

Specifically, look at your Unspent Unallocated amount. If this is reporting very low amounts of Siacoins then the allowance needs to be increased because all the other funds have been locked up.

Use the command `siac renter contracts`. This will print a long list of your contracts, but importantly will allow you to see your number of active contracts and the total amount of data stored.

### The log files

There’s also another important file - the renter.log. This can be found in the `/sia/renter/` folder in your Sia data folder. You can use this to search for errors classified as `worker` or `uploadheap`.

Worker logs to search for:

```go
2019/07/29 18:16:05.728694 worker.go:199: Refreshed Worker Pool has 167 total workers and 0 are on cooldown
```

This log will tell you how many of your workers are on cool down. Search for \`Refreshed Worker Pool\`. If too many of your workers are on cooldown then uploads and downloads will be impacted. To find out why and which workers are on cooldown see the log messages directly above this line. There will be a line for each worker.

Uploadheap logs to search for:

```go
2019/07/29 18:16:12.598899 uploadheap.go:1122: [DEBUG] Executing an upload and repair cycle, uploadHeap has 250 chunks in it
```

Search for `Executing`. Check to see if this line appears and if so, how often. This will tell you how fast your renter is working through the uploadHeap for repairs. Also, it should always have 250 chunks in it so if that number is not 250 then let the core team know so they can investigate. One edge case is if you are on the last cycle and have less than 250 chunks remaining, or there are just less than 250 chunks that need repair in general.

```go
2019/07/29 18:16:12.598899 uploadheap.go:348: WARN: no chunk indicies gathered, can’t add chunks to heap
```

If this is coming up a lot, this could be an issue. Reach out to a core team member.

Check your root `.siadir` file:

```go
cat siad/renter/siafiles/.siadir 

{"aggregatehealth":0.75,"aggregatelasthealthchecktime":"2019-08-
05T18:10:19.088309123+02:00","aggregateminredundancy":1.5,"aggregatemodtime":"2019-08-
05T20:13:52.972312906+02:00","aggregatenumfiles":63062,"aggregatenumstuckchunks":0,"aggregatenumsubdirs":0,"aggregatesize"
:23044664385536,"aggregatestuckhealth":0,"health":0,"lasthealthchecktime":"2019-08-
05T20:40:08.755212828+02:00","minredundancy":0,"modtime":"2019-08-
05T20:40:08.755948025+02:00","numfiles":0,"numstuckchunks":0,"numsubdirs":10,"size":0,"stuckhealth":0}
```

If you have python installed on your machine:

```python
cat siad/renter/siafiles/.siadir | python -m json.tool

{
    "aggregatehealth": 0.75,
    "aggregatelasthealthchecktime": "2019-08-05T18:10:19.088309123+02:00",
    "aggregateminredundancy": 1.5,
    "aggregatemodtime": "2019-08-05T20:13:52.972312906+02:00",
    "aggregatenumfiles": 63062,
    "aggregatenumstuckchunks": 0,
    "aggregatenumsubdirs": 0,
    "aggregatesize": 23044664385536,
    "aggregatestuckhealth": 0,
    "health": 0,
    "lasthealthchecktime": "2019-08-05T20:40:08.755212828+02:00",
    "minredundancy": 0,
    "modtime": "2019-08-05T20:40:08.755948025+02:00",
    "numfiles": 0,
    "numstuckchunks": 0,
    "numsubdirs": 10,
    "size": 0,
    "stuckhealth": 0
}
```

Here is the aggregate metadata of your filesystem that the repair loop is going to use. If `aggregatehealth` is <= 0.25 then your system is healthy, if it is > 0.25 then it should be repairing.

If there is a large number of `aggregatenumstuckchunks` then slow uploads could be because all the work is relying on the stuck loop. In this case, you can try `siac renter unstuckall` to try and unmark those stuck chunks and allow for the repair loop to pick them up again.

Big things that you want to check for:

* Is your wallet unlocked?
* Does your allowance have Siacoins in it?
* Is your allowance large enough?
* Do you have enough active contracts?
* Do you have enough total contracts?

Reference the [renter README](https://github.com/SiaFoundation/siad/blob/master/modules/renter/README.md) to get an understanding of how the upload should be happening to then understand if the logs in renter.log make sense or indicate an error.


# Is my data secure?

Your data is incomparably safe when you use Sia. Sia is a fully decentralized cloud storage network. It has been operating since 2015, hundreds of terabytes are currently being stored on it, and thousands of terabytes have been stored over the years.

The data normally on Sia gets split up, encrypted, and the pieces are then distributed all around the world to different hosts.

## It's just the way it's built

Sia is decentralized, which has a lot of inherent benefits. While we develop the software, we're not in charge of the network. No one is - it's all handled by smart contracts and a blockchain, and [**Sia is completely open-source**](https://github.com/SiaFoundation) so you can make sure we're staying honest.

When you upload your media to Sia, **every single file gets divided into 30 segments before uploading**, each targeted for distribution to hosts across the world.

File segments are created using [**Reed-Solomon erasure coding**](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction), commonly used in CDs and DVDs.

**Each file segment is encrypted before being sent out.**

## Security

### **The technical side**

Like we mentioned earlier, Sia divides each file into 30 segments before uploading and puts those pieces all over the world on the Sia network. This distribution assures that no one host represents a single point of failure and reinforces overall network uptime and redundancy.

The [**Reed-Solomon erasure coding**](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) allows Sia to divide files in a redundant manner, where any 10 of 30 segments can fully recover a user's file.

This means that if 20 out of 30 hosts go offline, a user is still able to download a file. And when hosts go offline, Sia automatically starts to re-duplicate them again. It would take a simultaneous global event to knock out enough hosts to damage the integrity of your files.

And because Sia is decentralized, no one person, company, or government can deny you access. It's global and governed by no one.

### The economic side

Just as important as how it keeps your data secure, is why. The Sia network keeps your data safe because data hosts are financially incentivized to provide enterprise-level service. They earn money by hosting data, so naturally, they want to be good hosts.


# renterd

renterd based renter documentation that will eventually replace the existing renting section.

Welcome to `renterd`.


# About renting on Sia

This page talks about the basic and terms you need to know to start renting. Later pages walk you through the specific process.

{% hint style="info" %}
Get started renting on Sia with the official [`renterd` software](https://sia.tech/software/renterd).
{% endhint %}

When you upload files on the Sia Storage Platform, you become a **renter**. You upload files to other users who have made their space available, called **hosts**. We use the term renter because Sia creates contracts with other hosts:

* to store a certain amount of data (whatever you upload)
* for a certain period of time (13 weeks by default, and it auto-renews)
* for a certain amount of money (the market dictates the prices)

You store data on the network by:

* setting an allowance
* uploading your files

## The marketplace

The Sia storage network uses a marketplace to find storage for your data. The cost of this storage, often referred to as **pricing**, is the market rate determined competitively by hosts and renters. If hosts find they can lower prices and win more data to store as a result, they'll do it. If renters are willing to pay more to store on high-quality hosts, those hosts might raise their prices.

The price of storage is listed in Siacoins, the cryptocurrency used to buy and sell storage on the network. You'll need to [get Siacoins](https://sia.tech/community-ecosystem?software=exchanges#software) in order to upload files. The price of a Siacoin can vary just like the price of any cryptocurrency. This is usually stable for periods of time, but can sometimes have more significant shifts depending on the crypto trading markets.

Fortunately, the price of Siacoin doesn't really affect the price of Sia storage. Hosts set their own prices, which creates a marketplace where the best and most reliable hosts are competing for the storage contracts of those who want to upload data. Pricing on the network usually works out to around **$2 per TB per month.** Using Sia becomes more cost-efficient as you upload more data and store it for longer periods of time.

Siacoins are utility tokens and their sole purpose is to fulfill contracts on the Sia network.

## **About contracts**

Storage contracts are one of the most important features of the Sia network. They are what allow the entire Sia ecosystem to work in a trustless way – they form blockchain-enforced contracts between you and the people who store your data that are automatically fulfilled when each party meets their obligation. In other words, they let you form contracts with people you don't know to store your data, and they can't steal your money.

A host's job is to store the data, and they only get paid when they have proved they have done so. A renter's job is to pay the host, and they only pay for the data storage they use.

By default storage contracts last for three months and are automatically formed when you start uploading your files.

## **Fees**

As a renter, you pay for the cost of renting storage space. There are also some other fees that you're responsible for.

* **Contract Formation Fees** – Creating storage contracts on the blockchain requires a transaction, and there are very small fees associated with this. Contract formation fees are one-time per contract, and usually cost only a handful of Siacoins (a few cents).
* **Bandwidth Fees** – You pay for the bandwidth you use when you upload or download files. This can also include wear and tear fees set by the host to help pay for their physical storage devices.

Because contract formation fees only happen once, and your initial upload will consume a lot of bandwidth, using Sia for longer periods of time results in lower average costs.

## **Autopilot and your Allowance**

By default the Sia rentering software `renterd` runs with a module called `autopilot` enabled. `autopilot` is the software agent that automatically forms contracts based on your configured parameters. The most important parameter is your "allowance", setting your allowance is the first thing you'll do when getting started with renting.

The allowance tells Sia how much money you're willing to spend on storage space, and makes sure more than this amount is not deducted from your wallet.

Most people just set their allowance and forget it, but it's a good idea to check in periodically. Setting your allowance too low might mean that Sia can't upload all your data, or might not be able to form the contracts with other hosts to begin with. You can change your allowance at any time in Sia.

If your allowance is too high, you might end up overpaying for storage you could have had at a lower price.

Setting your allowance happens before uploading files, and Sia starts to automatically form the contracts it needs with new hosts so that you can upload when you're ready. You might see multiple transactions hit your wallet right after setting your allowance – this is your Siacoins getting set aside with each host. Don't worry - you'll get whatever Siacoins that you don't spend back at the end of the contract. With Sia, you only ever pay for what you use.

## **Uploading files**

Uploading files is done using the `renterd` Sia software either via API or its user-interface which is accessible via web browser.

## Software

The `renterd` software is how you rent storage on Sia. Software downloads can be found on the [`renterd` page](https://sia.tech/software/renterd) of the official website.


# renterd Workshop

Welcome to the `renterd` workshop, in this workshop you will learn about the Sia Network and how to leverage the `renterd` software to store data on our decentralized cloud storage network called Sia.

{% hint style="warning" %}
This page is WIP and will be updated as the `renterd` software evolves.
{% endhint %}

### Introduction

#### The Sia Network

The Sia Network is a decentralized cloud storage platform that aims to provide a more secure, private, and affordable alternative to traditional cloud storage services like Amazon S3, Google Cloud, and Microsoft Azure. Launched in 2015 by Nebulous Inc., Sia leverages blockchain technology to create a distributed marketplace where users can rent out their unused hard drive space to others in exchange for Siacoin, the platform's native cryptocurrency.

#### The Renter Daemon

The Renter Daemon, or what we call `renterd`, is a piece of software that is meant to continuously run as a background process on your machine. It serves an http API that allows to upload and download files to and from hosts on the Sia network.

In order to perform all of its tasks, it needs to:

* have access to a fully synced consensus set that represents the Sia blockchain
* have access to a (testnet) wallet that is funded with Siacoins
* be properly configured for your particular storage needs

In this workshop we will guide you through the process of setting up a fully working `renterd` node, as well as preconfigure it so you can store files on the Sia network. Note that we will use the Zen Testnet, which is a test network that works exactly the same way as the actual Sia network.

#### Useful Links

* [Sia Website](https://sia.tech/learn)
* [Renterd API docs](https://api.sia.tech/renterd)
* [Zen Testnet](https://zen.sia.tech/)

### Getting Started

In this section we walk you through setting up and running an instance of `renterd`.

#### Step 0: Prerequisites

* Git:

Git is a tool used to manage your project's source code. To install, follow the instruction [available here](https://gist.github.com/derhuerst/1b15ff4652a867391f03) or try [Github Desktop](https://desktop.github.com/).

* Golang:

Golang is the language in which the renter software is developed. If you want to build the binary manually you'll need to have Go installed, following the instructions [available here](https://go.dev/doc/install)

#### Step 1: Install `renterd`

The first thing to do is to install the renter daemon. There are currently two ways to do this:

**Download the binary**

{% hint style="warning" %}
At this time `renterd` binaries are not yet available on the website. But you can download recent binaries from the [build artifacts](https://github.com/SiaFoundation/renterd/suites/12287852932/artifacts/650990876) on GitHub.
{% endhint %}

You can find all build artifacts [here](https://github.com/SiaFoundation/renterd/actions/workflows/publish%20-%20zen.yml). The "Publish" tab contains mainnet binaries and the "Zen Testnet" tab contains testnet binaries. We generally recommend using recent artifacts from runs marked `stable`.

**Build from source**

For the workshop, we will build from source and compile to source code into an executable binary.

```bash
# clone the renterd source code and cd into it
git clone --branch workshop https://github.com/SiaFoundation/renterd.git && cd renterd

# build the binary and specify the test network
go build -tags="testnet" -o ./ ./...
```

#### Step 2: Generate a wallet seed

The wallet module uses a 12-word BIP-39 (Bitcoin Improvement Proposal 39) seed, which is a widely-used standard for generating mnemonic seed phrases for cryptocurrency wallets. It is designed to make it easier for users to manage and back up their private keys, which are essential for securing access to their cryptocurrency holdings.

You can generate a seed using Ian Coleman's [excellent seed generator](https://iancoleman.io/bip39/), or simply ask `renterd` to generate one for you:

```bash
./renterd seed

# output:
# renterd v0.1.0
# Network Testnet-Zen
# Seed phrase: [[ your seed will be displayed here ]]
```

{% hint style="danger" %}
Do not use this seed for any other purpose than this workshop.
{% endhint %}

#### Step 3: Start the renter

Finally we are ready to launch the `renterd` executable. After launching the daemon will ask you for an API password and the wallet seed you just generated. You can choose any API password you want but for the purpose of this workshop we advise you to just use 'test' or something that is easy to remember.

```bash
./renterd --autopilot.scannerInterval=2m --autopilot.heartbeat=1m

# output:
# renterd v0.1.0
# Network Testnet-Zen
# Enter API password: 
# Enter wallet seed: 
# api: Listening on 127.0.0.1:9880
# bus: Listening on localhost:9881
```

{% hint style="success" %}
:tada:Congrats! You now have a running instance of `renterd` that is connected to the [Zen Testnet](https://zen.sia.tech). Browse to <http://localhost:9880> and enter your API password to navigate to the UI.
{% endhint %}

#### Step 4: Wait for consensus to sync

To find out whether consensus is synced, we need to know the current height of the chain, which can be found [here](https://zen.sia.tech). Our own height is displayed in the UI on the [Blockchain Node Tab](http://localhost:9880/node).

You can also follow the process manually by querying the `/bus/consensus/state` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/bus/consensus/state
```

Response:

```json
{
	"BlockHeight": 13652,
	"Synced": true
}
```

This process should take less than a couple of minutes.

#### Step 5: Fund your wallet

**Wallet Address**

For the purpose of this workshop we need some Siacoins to form file contracts. These contracts are necessary to be able to upload data into. Luckily, there is a testnet faucet we can ask for some funds. For that we first need to know our wallet address, which is displayed in the [Wallet Tab](http://localhost:9880/wallet) in the modal shown when you click "Receive" in the top right corner.

You can also obtain the address manually by querying the `/bus/wallet/address` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/bus/wallet/address
```

Response:

```json
"addr:c0d6af1cfc0bc5fb9d53ee58781a9677f572202e3bfa2a53df2ae545115fea843ea9745bd5ea"
```

**Testnet Faucet**

Now that we have our wallet address, head on over to the official [Testnet Faucet](https://zen.sia.tech/faucet) and request 1,000 Siacoins. This process will take your time because the transaction has to be mined, once it is mined and taken up in a block we can query the wallet for its balance. The number returned by the endpoint represents Hastings, the smallest unit of value in the Sia ecosystem. 1 Siacoin equals 10^24 Hastings. The balance will be displayed in the [Wallet Tab](http://localhost:9880/wallet).

You can also obtain the balance manually by querying the `/bus/wallet/balance` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/bus/wallet/balance
```

Response:

```json
"1000000000000000000000000000"
```

{% hint style="warning" %}
Remove the `addr:` prefix and surrounding quotes if you used the CLI to get your address. Otherwise you'll receive an error.
{% endhint %}

{% hint style="warning" %}
Incoming transactions won't be reflected in the wallet's balance before the consensus state is considered "synced".
{% endhint %}

### Configuration

#### Step 1: Configure your autopilot

The renter daemon has a component that we call the autopilot. It is responsible for keeping the renter operational once it is up an running and should theoretically be able to manage the file contracts and uploaded date for you. For this to work it has to be properly configured to suit your data storage needs. The autopilot can be configured through the UI in the [Autopilot Tab](http://localhost:9880/autopilot).

You can view the current configuration manually by querying the `/autopilot/config` endpoint using `curl` like so:

```bash=
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/autopilot/config
```

Response:

```json
{
	"wallet": {
		"defragThreshold": 1000
	},
	"hosts": {
		"ignoreRedundantIPs": false,
		"maxDowntimeHours": 168,
		"scoreOverrides": {}
	},
	"contracts": {
		"set": "autopilot",
		"amount": 10,
		"allowance": "1000000000000000000000000000",
		"period": 6048,
		"renewWindow": 2016,
		"download": 10000000000,
		"upload": 10000000000,
		"storage": 10000000000
	}
}
```

You can also update the configuration manually by querying the `/autopilot/config` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" -X PUT localhost:9880/api/autopilot/config --data '{
    "wallet": {
        "defragThreshold": 1000
    },
    "hosts": {
        "ignoreRedundantIPs": true,
        "maxDowntimeHours": 168,
        "scoreOverrides": {}
    },
    "contracts": {
        "set": "autopilot",
        "amount": 10,
        "allowance": "1000000000000000000000000000", 
        "period": 6048,                              
        "renewWindow": 2016,
        "download": 10000000000,
        "upload": 10000000000,
        "storage": 10000000000 
    }
}'
```

The above configuration holds sane settings for use on the Zen testnet.

| Field              | Value                        | Description                                                                           |
| ------------------ | ---------------------------- | ------------------------------------------------------------------------------------- |
| defragThreshold    | 1000                         | Siacoin outputs before the wallet is defragmented                                     |
| ignoreRedundantIPs | true                         | Allow hosts from the same subnet (only allow on testnet)                              |
| maxDownTimeHours   | 168                          | allow one week of downtime before hosts get removed                                   |
| scoreOverrides     | {}                           | no manual overrides                                                                   |
| set                | autopilot                    | name of the contract set used by the autopilot                                        |
| amount             | 10                           | keep a set of contracts with 10 unique hosts                                          |
| allowance          | 1000000000000000000000000000 | 1000 Siacoins (1KS)                                                                   |
| period             | 6048                         | 6 weeks `(6 * 24 * 7 * 6)` contract periods before they expire                        |
| renewWindow        | 2016                         | 2 weeks `(6 * 24 * 7 * 2)` before the end of a contract period we start renewing them |
| download           | 10000000000                  | 10 GB of expected downloads per period                                                |
| upload             | 10000000000                  | 10 GB of expected uploads per period                                                  |
| storage            | 10000000000                  | 10 GB of expected stored data per period                                              |

#### Step 2: Configure your redundancy

{% hint style="warning" %}
Since we only form contracts with 10 hosts, we need to update the redundancy settings for this workshop as the default requires 30 contracts.
{% endhint %}

The redundancy settings can be updated through the UI in the [Configuration Tab](http://localhost:9880/configuration). For this workshop we recommend to set it to 1-3, where one is the minimum number of shards required to download the file, and three is the total number of shards.

You can also update the redundancy settings manually by querying the `/bus/setting/redundancy` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" -X PUT localhost:9880/api/bus/setting/redundancy --data '{
    "minShards": 1,            
    "totalShards": 3                            
}'
```

#### Step 3: Wait for contracts to form

After updating the autopilot settings, the autopilot will start forming contracts. Eventually it will have formed 10 contracts. You can check the progress in the UI's [Contracts Tab](http://localhost:9880/contracts).

You can also fetch the active contracts list manually by querying the `/bus/contracts/active` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/bus/contracts/active
```

### Storing Data

#### Step 1: Create a dummy file

Create a dummy file or choose a file you want to upload:

```bash
echo "Hello World" > foo.txt
```

#### Step 2: Upload the file to the network

The easiest way to upload a file is via the UI's [Files Tab](http://localhost:9880/files) `files` tab.

You can also upload a file manually by uploading it to the `/worker/objects/[[ FILENAME HERE ]]` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" -H "Content-Type: application/octet-stream" -X PUT localhost:9880/api/worker/objects/foo.txt --data-binary '@foo.txt'
```

#### Step 3: Download the file from the network

The easiest way to download a file is via the UI's [Files Tab](http://localhost:9880/files) `files` tab.

You can also download a file manually by querying the `/worker/objects/[[ FILENAME HERE ]]` endpoint using `curl` like so:

```bash
curl -u ":[[ API PASSWORD HERE ]]" localhost:9880/api/worker/objects/foo.txt
```

Response

```bash
Hello World
```


# About hosting on Sia

Learn about the concepts and terms you'll need to be familiar with to host on the Sia network.

**Hosting** means you are contributing your excess storage space to the Sia network. You're helping to keep data where it belongs – safely in the hands of those who uploaded it, the **renters**.

You also earn Siacoins, the cryptocurrency that powers the Sia network. Siacoins can be used to purchase your own storage space, or converted to other cryptocurrency or fiat on crypto exchanges.

Hosts are a critical part of the ecosystem. You are contributing to the decentralized network that is the heart of Sia. Hosting is also more technical a process than renting, and while anyone can fairly easily set it up, there's a lot you'll want to know to maximize your setup.

## Pricing

As a host, you set your own prices. There's a lot of specific price points you can control:

* **Storage Price:** The base price for your storage, per TB/month.
* **Contract Fees:** A small, one-time fee per contract to cover network transaction costs.
* **Upload/Download Bandwidth Price:** Your price for upload or download bandwidth to and from your host, per TB.
* **Collateral:** How many Siacoins you're willing to lose if you don't fulfill the rental contract, per TB.

## **About Contracts**

Storage contracts are one of the most important features of the Sia network. They are what allow the entire Sia ecosystem to work in a trustless way – they form blockchain-enforced contracts between you and the people who rent your storage space that are automatically fulfilled.

## Earn Siacoins

As a host, you're part of a marketplace where you compete with other hosts for renter contracts. Competition should drive prices down, and demand should drive prices up. The goal is a market where people can upload their data with maximum security, minimum cost, and at fair rates that provide revenue to the hosts.

## Fees

As a host, you earn Siacoin for the storage space that you sell. But in order to create additional incentive for hosts to be good hosts and sustain a reliable network, you also put up collateral.

* **Collateral** – An amount of Siacoins that you're willing to lose if you aren't a good host.

Having collateral incentivizes hosts to be online and to keep their renter data intact. Hosts that go offline or lose data lose their collateral, and hosts that stay online and keep data safe get their collateral back.

## Host Scoring

One of the most important factors that determine how you'll fair as a host is your host score. This is based on a number of metrics – some that you can directly affect, some that improve or diminish over time based on your performance.

Sia is a decentralized network - the code to evaluate these scoring metrics is contained within each renter's Sia instance. For that reason, each Sia renter you encounter builds their own host score for your host, so your host may be scored differently among different renters. Your host does not have one single overall score across the Sia network, but instead many scores with many renters based on the metrics described below. Any website or service showing your Sia host rank is showing that particular source's view of your host, which may be different from what a renter comes up with.

### Specific Metrics

{% tabs %}
{% tab title="Host Uptime" %}
Host uptime is an incredibly important metric. You need to be online when people try to get their data, and since that might be anytime, you should be online all the time. You're allowed a small amount of downtime in order to address minor maintenance issues like restarting for updates, which amounts to approximately 14 hours per month.

In general, you should plan for your hosting computer to be turned on and online 24/7. If you can't commit to this, you shouldn't try to host on the Sia network.

{% hint style="danger" %}
Warning: If you go offline for too long (less than 95% uptime) or lose renter data (by deleting it or experiencing a hardware failure), you can lose money by losing your collateral for active contracts. You can also become responsible for SiaFund fees for each contract.
{% endhint %}

Below are the exact amounts that your score will change based on your uptime percentage. Greater than 98% uptime results in no penalty, which is the 14 hours a month explained above (2% of 720 hours in a month = 14 hours).

| Uptime | Score Multiplier | % Reduction in Score |
| ------ | ---------------- | -------------------- |
| 100%   | 1.0              | None                 |
| 98%    | 1.0              | None                 |
| 95%    | .91              | -10%                 |
| 90%    | .51              | -50%                 |
| 85%    | .16              | -85%                 |
| 80%    | .03              | -97%                 |

There are more values we could include in this table, but there's not much point. If you can't maintain a minimum of 95% uptime, don't host.
{% endtab %}

{% tab title="Storage Pricing" %}
The price you set for your storage as a host is one of the biggest ways you can affect your host score. You want to set a price that's competitive, but that will still result in a reasonable amount of income for the space you offer. In general, the higher you price your storage, the lower your host score will be. Your host score will increase by a factor of 16 every time you cut your storage price in half. Decreasing your storage cost by even a small amount will have an impact on your score.

There are a number of other pricing factors you have to take into consideration as a host:

* A **Contract Fee** is a one-time fee a renter pays in order to initiate a storage contract with you. It's intended to cover transaction fees on the Sia network related to the creation of the contract and receiving payments as a host. This is normally set for you automatically, but it can be changed via the Terminal/command line. If you change it, you generally don't want to set this more than about 5 SC, as these costs are very low.
* **Bandwidth Price** can be set on a basis of SC per Terabyte transferred to/from your host. One price can be set for both upload and download bandwidth via the Sia-UI, or different upload/download prices can be set individually via the Terminal/command line. It's suggested that you price your upload and download bandwidth in relation to your internet connection capabilities. If you have a fast connection such as gigabit fiber, you can price these items very low because a user transferring several Terabytes doesn't impact you very much. If you have a slow connection or data caps, you may want to consider a higher bandwidth price, though this may deter renters.
* Fees related to **Sector Access** and **RPC** are protections against malicious renters which may be trying to abuse hosts by accessing host resources without paying for uploading or downloading. These fees are capped at 1% of the cost to download a file, but some services which use Sia for storage may ignore your host if you set these fees to anything.
  {% endtab %}

{% tab title="Collateral" %}
This is how many Siacoins you're willing to lose if you don't fulfill the rental contract, per TB. It's a guarantee to your renters that you will be online through the storage contract, and that you'll have their data intact at the end of the contract. As a host, this is why you need Siacoins to start hosting. If you go offline for too long or lose renter data, you risk losing your collateral.

You should normally set your collateral to around **2-3x your base storage price** as a starting point in order to maximize your host score in this area. For example, if you've priced your storage at 50 SC/TB, you should set your collateral at 100-150 SC/TB.

* If you set your collateral **too low**, your host score will be reduced, because renters will have no reason to trust you as a host if you have little or nothing to lose by going offline.
* If you set your collateral **too high**, this can also decrease your host score. Renters pay a fee based on a percentage of your collateral that goes towards [Siafunds](/legacy/siafunds/what-are-siafunds) - if your collateral is set very high, the fee a renter pays as a result will be very high, which can decrease your host score.

**Monitoring Your Collateral**

You can get information on your collateral by typing `host -v` into the Terminal. This will show you a few things:

* All of your current host settings, as well as details on contracts and expected revenue
* **Locked Collateral** - this is the total collateral that's been reserved for contracts that have been created with your host. This amount has been removed from your wallet and is inaccessible to you.
* **Risked Collateral** - this is collateral for data that has actually been uploaded to your host, so you stand to lose it if your host goes offline or loses the data. This amount is a subset of Locked Collateral.
* **Lost Collateral** - this is collateral you've lost because you weren't online when a storage proof was due to be submitted, or because you lost a renter's data.

With this information, you can determine how much collateral has been tied up in the process of hosting, and make adjustments to your collateral settings accordingly if necessary.
{% endtab %}

{% tab title="Storage Remaining" %}
The more free space you have, the more attractive you are to people who want to store things. It makes your host less likely to run out of space later. The host scoring system takes this into account.

Again, each renter determines their score for your host. The more available space you have when a host forms contracts with you, the more reliable you look, and the higher this piece of the scoring will be.
{% endtab %}

{% tab title="Host Age" %}
History matters. The longer you've been around, the more reliable you look to host scoring. There's a penalty applied to new hosts. How to beat that penalty you ask? Keep your host online.

Once you've been online for about twelve weeks, about half of the default contract length, your penalty disappears!

| Host Age (Blocks) | Host Age (Days) | Score Multiplier | % Reduction in Score |
| ----------------- | --------------- | ---------------- | -------------------- |
| 12,001            | 83.5            | 1.0              | 0%                   |
| 12,000            | 83              | .66667           | -33.33%              |
| 6,000             | 41              | .33333           | -66.67%              |
| 4,000             | 28              | .16667           | -83.33%              |
| 2,000             | 14              | .08333           | -91.667%             |
| 1,000             | 7               | .02778           | -97.222%             |
| 576               | 4               | .009259          | -99.0741%            |
| 288               | 2               | .0030864         | -99.69136%           |
| 144               | 1               | .0010288         | -99.89712%           |
| {% endtab %}      |                 |                  |                      |

{% tab title="Interaction Weight" %}
Interaction weight is a metric measured between your host and each renter on the Sia network. For example, if a renter tries to contact your host and you're frequently offline or don't have your wallet unlocked (a pre-requisite to your host being online), your interaction score will decrease with that renter. Again, this score is unique for each renter you encounter - it will be different for each individual renter on the Sia network.

Keeping your host online and your wallet unlocked while hosting will keep this score as high as possible.
{% endtab %}

{% tab title="Version Adjustment" %}
Stay updated. Your host score drops if you're not running the latest version of the Sia client. Sia is constantly under development, and bug fixes and new features are pushed out on a somewhat regular basis. If you're running an older version of the client, your renters may not be able to take advantage of all the latest features of Sia until you upgrade.
{% endtab %}
{% endtabs %}

## Third-Party Host Scoring

We have an incredible community building on Sia. Third-party sites can develop their own methods for scoring hosts based on various metrics. For example, SiaStats has developed a [Host Monitor](https://siastats.info/hosts) which evaluates hosts on pricing relative to other hosts, and even evaluates host performance regularly by forming contracts with every host it can in order to test bandwidth and latency. SiaStats even has great visualization for each host to make judging their metrics easier.

These benchmarks are different from the core Sia protocol, but are still useful, and may be used to help monitor and improve your own host over time.

Once you've started hosting, you'll probably want to keep an eye on your host score and see how you might be able to improve your host ranking.




---

[Next Page](/llms-full.txt/1)

