# Welcome to Sia

Sia is decentralized, peer-to-peer cloud storage with no central provider and no gatekeepers. Files are encrypted on your own device before upload, so no storage provider can read your data, and you hold the keys. The network is developed by a non-profit and runs on open-source software.

Whether you're a developer building on Sia or a user storing your own data, these docs cover how to use the network.

## Where to start

* **Store your data** — the simplest way to start is the [Sia Storage app with a free Sia Storage account](/store-your-data/using-sia-storage) (50 GB). For how it works, see [About Storing Your Data](/store-your-data/about-renting).
* **Provide storage and earn Siacoin** — set up [`hostd`](/provide-storage/about-hosting-on-sia).
* **Hold and manage Siacoin** — use [`walletd`](/wallet/wallet-overview).
* **Build an application on Sia** — see the [Sia Developer Portal](https://devs.sia.storage).
* **Not sure which software you need?** — [Which Sia software do I need?](/get-started-with-sia/sia-software-overview)

## Get Involved

### Contribute to Docs

We welcome community contributions to the docs—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" %}
You’ve 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 works according to three principles: **Systems Creativity**, **Technical Integrity**, and **Personal Agency**. As a fully open-source project, we've had many individuals contribute to the core code and to apps built on top of the network.

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

### Join our Community

Join our [Discord](https://discord.com/invite/sia) for developers, users, and anyone curious about decentralized cloud storage, privacy, and security. It's where you can find support 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 can 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 lets you experiment with `renterd`, `hostd`, and `walletd` using Siacoins that have no real-world value, so there is no risk of losing real Siacoins.

## 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, 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

The [Zen Testnet faucet](https://zen.siascan.com/faucet) lets you acquire zSC by 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 built for the Sia network. It provides information about the Siacoin network.

Visit [SiaScan Zen](https://zen.siascan.com), our block explorer, to view the testnet's activity, transaction history, and 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 that develops the Sia decentralized storage network. Sia lets you store data directly with operators around the world instead of with a single company, so no one provider can read your files, lock you in, or take your data offline.

Sia is decentralized cloud storage secured by a blockchain. It uses spare hard-drive capacity from operators worldwide to create a storage marketplace that is typically cheaper than traditional cloud providers. The network has its own blockchain and a utility token, Siacoin (SC), used to pay for storage.

Your files are encrypted on your own device before they're uploaded, so storage providers only ever hold encrypted pieces and can't read your data. Because you hold the keys, you control who can access your files.

## Genesis of Sia

Sia was created at HackMIT in 2013 by David Vorick and Luke Champine. The founders formed Nebulous Labs, later Skynet Labs, to develop Sia. The Sia Foundation is a non-profit dedicated to the network's core development.

## How Sia works

When you upload a file to Sia, it's encrypted on your machine, split into redundant pieces using [erasure coding](https://devs.sia.storage/docs/core-concepts/erasure-coding), and distributed across many independent storage providers. Providers only receive encrypted pieces, never your whole file, so they can't read your data. Only a subset of the pieces is needed to reconstruct a file, so your data stays available even if some providers go offline.

Because the pieces are spread across unrelated providers and you hold the encryption keys, there is no single provider that can read your files, hand over readable copies, or take your data offline.

### Storing data on Sia

When you store data on Sia you act as a *renter*: you form contracts with storage providers that set how much data to store, for how long, and at what price. This contract management is handled for you by [Sia Storage](https://sia.storage) (a hosted service) or by running your own [indexer](/store-your-data/setting-up-indexd). See [About Storing Your Data](/store-your-data/about-renting) for how the pieces fit together.

### Providing storage on Sia

Providing storage means contributing spare storage capacity to the network. In return for storing data and periodically proving you still hold it, you earn Siacoin (SC), which you can use to pay for your own storage or exchange for other currencies. See [About Providing Storage](/provide-storage/about-hosting-on-sia).

## Sia software

The Sia Foundation maintains an open-source software suite for using and operating the network. Which one you need depends on what you want to do — see [Which Sia software do I need?](/get-started-with-sia/sia-software-overview) for a side-by-side breakdown.

To store data on Sia you run a *client* (an app) that connects to an *indexer* (the backend). The client encrypts your files and moves them to and from storage providers; the indexer manages contracts and keeps your data healthy.

### Sia Storage

[Sia Storage](https://sia.storage) is a hosted indexer — it manages contracts and keeps your data healthy for you, with 50 GB free and nothing to run. On its own it's just the backend; you use it through a client such as the Sia Storage app or `s3d`. For most people, the Sia Storage app with a Sia Storage account is the easiest way to start.

### Sia Storage app and s3d

These are the clients you use to actually store and retrieve files. The **Sia Storage app** runs on desktop and mobile. **`s3d`** is an S3-compatible gateway that lets existing S3 tools and applications use Sia. Both connect to an indexer — Sia Storage by default — and you can also build your own client with the [Sia Storage SDKs](https://devs.sia.storage).

### indexd

`indexd` is the indexer software, for running the backend yourself instead of using Sia Storage. It forms and renews storage contracts with providers, tracks where your data lives, and repairs it in the background. Clients and applications connect to it to store and retrieve data without managing providers themselves.

### hostd

`hostd` is the software for storage providers. It has an embedded web UI and an API for managing storage and revenue, and earns Siacoin in exchange for storing encrypted data for the network.

### walletd

`walletd` is the standalone wallet server for Siacoin (and Siafund) wallets. It supports multiple wallets and hardware wallets such as Ledger, and can index either just your own addresses or the entire chain. It can hold your seeds to send and receive, or run watch-only — tracking addresses without access to private keys.

### renterd

`renterd` is the original all-in-one renter daemon, bundling a wallet, contract management, and an upload/download UI into one program. It still works, but for new projects the indexer-based stack above (or Sia Storage) is preferred.

## Longevity

Sia has been running since 2015. Because the software is open-source and the network is decentralized, it can keep operating even without the core development team. Sia has an active community of renters, storage providers, miners, and developers, along with an ecosystem of open-source and commercial software — see the [community ecosystem](https://sia.tech/community-ecosystem).


# Which Sia software do I need?

A side-by-side guide to the Sia software and the terms used across these docs.

There are several pieces of Sia software, each for a different job. Use this page to find the one that matches what you want to do.

| I want to…                                          | Use                                                                                                      |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Store and manage files the easy way                 | The **Sia Storage app** (desktop, mobile) with a [Sia Storage](https://sia.storage) account — 50 GB free |
| Use Sia through an S3-compatible API                | [`s3d`](https://github.com/SiaFoundation/s3d), connected to an indexer such as Sia Storage               |
| Build my own app                                    | The [Sia Storage SDKs](https://devs.sia.storage)                                                         |
| Run the indexer myself instead of using Sia Storage | [`indexd`](/store-your-data/setting-up-indexd) — requires PostgreSQL                                     |
| Provide storage and earn Siacoin                    | [`hostd`](/provide-storage/about-hosting-on-sia)                                                         |
| Hold and manage Siacoin                             | [`walletd`](/wallet/wallet-overview)                                                                     |
| Run the older all-in-one renter                     | [`renterd`](/store-your-data/setting-up-renterd) — no longer the preferred way to store data             |

## How the pieces fit together

To store data on Sia you run a **client** that connects to an **indexer**. The client encrypts your files and moves them to and from storage providers; the indexer manages contracts and keeps your data healthy. By itself, an indexer like Sia Storage doesn't store your files — you need a client to use it. See [About Storing Your Data](/store-your-data/about-renting) for more.

### Clients — how you use Sia storage

* **Sia Storage app** — desktop and mobile apps for storing and retrieving files. Point it at an indexer; a Sia Storage account is the easiest option.
* **`s3d`** — a lightweight, S3-compatible gateway. It translates the AWS S3 API to Sia and connects to an indexer such as Sia Storage, so existing S3 tools and applications can use Sia storage.
* **Sia Storage SDKs** — client libraries (Rust, Go, Python, JavaScript) for building your own app. The Sia Storage app and `s3d` are currently the only ready-made clients.

### Indexer — the backend

* **Sia Storage** — a hosted indexer. It manages contracts and keeps your data healthy for you, with 50 GB free and nothing to run. Recommended for most people.
* **`indexd`** — the indexer software, for running the backend yourself instead of using Sia Storage. Requires PostgreSQL.

### Other software

* **`hostd`** — storage-provider software. Stores encrypted data for the network and earns Siacoin.
* **`walletd`** — a standalone wallet for Siacoin and Siafunds, with Ledger support.
* **`renterd`** — the original all-in-one renter (wallet, contracts, and an upload/download UI in one program). Still works, but no longer the preferred way to store data.

## Glossary

* **Renter** — anyone storing data on Sia. The renter forms and pays for storage contracts; today an indexer fills this role on your behalf.
* **Storage provider (host)** — an operator running `hostd` that stores encrypted data and earns Siacoin.
* **Client** — software you run to store and retrieve files, such as the Sia Storage app or `s3d`. A client connects to an indexer.
* **Indexer** — the backend that manages contracts, tracks where data lives, and keeps it healthy. Sia Storage is a hosted indexer; `indexd` is the software for running your own.
* **Contract** — a blockchain-enforced agreement between a renter and a storage provider covering how much data to store, for how long, and at what price.
* **Object** — the application-level view of a stored file: its data, metadata, and storage layout under a single content-derived ID.
* **Slab** — a unit of an object's data that is erasure-coded into shards.
* **Shard** — one erasure-coded, encrypted piece of a slab, stored by a single provider.
* **Erasure coding** — a method of splitting data into redundant pieces so the original can be rebuilt from a subset of them.
* **Siacoin (SC)** — the network's utility token, used to pay for storage.
* **Siafund** — a separate token that receives a fee from storage contracts.
* **Recovery phrase (seed)** — the secret words that control a wallet and let you recover it.


# Learn about Siacoins

## Siacoins on the Sia Network

Siacoins (SC) are the utility tokens used on the Sia network and are required for any activity on the network. Siacoins serve a single purpose – facilitating network operations – and are used 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 stored using our [official software](https://sia.tech/software/walletd) on a hardware or paper wallet. You can obtain Siacoins by having someone send them to you, purchasing them on an exchange, or mining.

## 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 exchanges, and you can find the 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 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/setting-up-indexd/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 verify 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 does not stop decreasing to zero. Once the block reward reaches 30,000 coins, it stays at that level, so miners continue to receive a reward for each block.

{% 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 to maintain the integrity of transactions and contracts. Whether used to power cryptocurrencies like Bitcoin or utility and storage contracts like Sia, trust comes from a blockchain's immutability. With no central authority to oversee transactions or contract validity, the assurance comes from the blockchain itself. Proof-of-Work deters attempts to alter the history of the blockchain by making it require significant effort and expense.


# Your Sia Seed

## About the Seed

Your Sia Seed holds the key to your Siacoin (SC) balance and access to your files. It is the most important information to keep safe when using Sia.

* 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

Keeping your Sia seed safe is important. 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 store seeds offline, which makes them less susceptible to attacks that require network access.
* **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 strong 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.**

If someone steals your Seed, they can take your Siacoin balance. Be careful when sharing your Seed with any third party you do not fully trust.
{% endhint %}


# About Storing Data on Sia

Storing data on Sia means uploading your files to independent operators around the world who have made their disk space available, called **storage providers** (or **hosts**). Your data is encrypted and split into redundant pieces on your own machine before it ever leaves it, then spread across many unrelated storage providers so that no single operator — or outage — can read it or take it offline.

Coordinating all of that (finding providers, forming contracts, placing data, and repairing it over time) is handled for you by the rest of the Sia storage stack, described below.

## How storage works on Sia

Modern Sia storage is built from a few distinct pieces, each with a single job. This is the preferred approach for new projects; the older all-in-one `renterd` renter still works, but it is no longer the recommended starting point.

* **Storage providers (`hostd`)** — the nodes that actually store data. They run Sia's hosting software, contribute disk space and bandwidth, and earn Siacoin (SC) by storing encrypted **shards** and proving over time that the data is still available. They never see filenames, object IDs, or anything about the data they hold.
* **Indexers (`indexd`) — contract management.** An indexer sits between applications and storage providers. It forms and maintains the **storage contracts** with providers, tracks where each object's shards live, monitors their health, and repairs data in the background when redundancy drops. It also enforces a simple access model so multiple apps can share one indexer safely. An indexer only ever sees encrypted metadata and the storage layout — never your plaintext data. This is the "renter" role in the new architecture.
* **SDKs — data storage and retrieval.** The [Sia Storage SDKs](https://devs.sia.storage) (available for Rust, Go, Python, and JavaScript) run inside your application. They encrypt your data and metadata, [erasure-code](https://devs.sia.storage/docs/core-concepts/erasure-coding) it into redundant shards, and upload or download those shards **directly** to and from storage providers. Encryption keys stay with you; neither the indexer nor the providers can read your data.
* **Apps — built on the SDKs.** Applications use an SDK to talk to an indexer and storage providers. The indexer deliberately stays narrow (objects, metadata, health, access), so anything higher-level — filenames, folders, search, sharing, version history — is built at the app layer on top of the SDK.

In short: your **app** uses an **SDK** to encrypt and move data to and from **storage providers**, while an **indexer** manages the contracts and keeps that data healthy.

{% hint style="success" %}
**You don't have to run any of this yourself.** [Sia Storage](https://sia.storage) is a hosted indexer and app that gives you **50 GB free** with nothing to install or maintain. Run your own [`indexd`](/store-your-data/setting-up-indexd) only if you want to control the indexer infrastructure yourself.
{% endhint %}

## Storing and retrieving data with the SDKs

Applications never deal with storage providers by hand. Instead they use a **Sia Storage SDK** — a client library that handles encryption, redundancy, and transfer, and coordinates with an indexer on your behalf. SDKs are available for Rust, Go, Python, and JavaScript:

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

```sh
cargo add sia_storage
```

{% endtab %}

{% tab title="Go" %}

```sh
go get go.sia.tech/siastorage@latest
```

{% endtab %}

{% tab title="Python" %}

```sh
pip install sia-storage
```

{% endtab %}

{% tab title="JavaScript" %}

```sh
npm install @siafoundation/sia-storage
```

{% endtab %}
{% endtabs %}

Everything that touches your data happens locally, inside the SDK:

* **On upload**, the SDK encrypts your file and its metadata, [erasure-codes](https://devs.sia.storage/docs/core-concepts/erasure-coding) the data into many redundant shards, and uploads those encrypted shards directly to storage providers using provider information already loaded into the SDK. The upload returns an object containing the keys and slab layout; the application then *pins* that object to the indexer so it becomes listable and can be repaired over time.
* **On download**, the application passes an object to the SDK. The SDK uses that object's encryption key and slab layout to fetch enough shards from storage providers, verify their integrity, and decrypt the data locally. If the object is stored locally and the SDK has provider connection information, the application can download it while `indexd` is offline.

Data is addressed by a content-derived **object ID** rather than a file path, and objects are immutable — changing the data produces a new object. Object metadata is opaque, application-defined, and encrypted, so the indexer stores it but can't read it. Because every encryption key stays inside your app, neither the indexer nor the storage providers can ever see your data, your metadata, or even your filenames.

For complete upload, download, and object-management examples in each language, see the [Quickstart](https://devs.sia.storage/docs/quickstart) in the Sia Developer Portal.

## Building apps

In the Sia ecosystem, an **app** is the cryptographic identity of software acting on a user's behalf — not a user account, a wallet, or a storage provider. That identity is what lets a user grant a piece of software access to their data, keep each app's data isolated, and revoke that access later.

An app's identity is built from two parts:

* **App ID** — a 32-byte identifier you (the developer) choose once and ship with your software. It's the same across every install of your app, and because it's an input to key derivation, it must never change after release.
* **App Key** — a per-user signing key derived from the user's **recovery phrase**, your App ID, and a secret issued by the indexer during approval. It's unique to each (user, app, indexer approval), stored securely by your app, and used to sign and authorize every request to the indexer. The recovery phrase itself is never stored or transmitted by the app — only the derived key is kept.

Because the App Key is derived from the recovery phrase, App ID, and indexer-issued secret, two apps from the same user produce different keys and **cannot see or modify each other's data**. This sandboxing is structural — enforced by cryptography, not by server-side rules. Before an app can act for a user it must be explicitly approved once, and approval can be revoked at any time, immediately cutting off that app's access.

Indexers deliberately stay narrow: they track objects, metadata, health, and access, and nothing more. The higher-level features your users expect — filenames, folders, search, sharing links, version history — are all built at the app layer on top of the SDK's simple, object-centric interface.

{% hint style="info" %}
**Design apps for portability and recovery.** Keep a current, usable cache of complete object records locally, and store the metadata needed to rebuild local app state on the indexer. After normal reauthorization, a surviving indexer plus the app's recovery phrase can rebuild the app; if the indexer is lost, a surviving local cache provides a last-resort way to seed a replacement without re-uploading object data. This fallback does not replace indexer backups, and losing both copies makes the object metadata unrecoverable.
{% endhint %}

{% hint style="info" %}

#### Building on Sia

Guides, SDK references, and the full app identity and onboarding model live in the [Sia Developer Portal](https://devs.sia.storage). Start with the [Quickstart](https://devs.sia.storage/docs/quickstart), then read the [Apps](https://devs.sia.storage/docs/core-concepts/apps) and [Indexers](https://devs.sia.storage/docs/core-concepts/indexers) concept pages.
{% endhint %}

## Why this matters: ownership without middlemen

Many services marketed as "decentralized" still place a company-operated gateway or proxy between you and the network. Your files pass through that server, which makes it a bottleneck, a logging point, and a single party that can inspect, throttle, censor, or simply disappear — recreating the dependence on a central operator that decentralization is supposed to remove. Sia's architecture removes that middleman, by design.

* **Your data never flows through a central server.** The SDK uploads and downloads encrypted shards **directly** to and from independent storage providers. The indexer coordinates *where* data lives and keeps it healthy, but it is never in the data path — it only ever handles encrypted metadata and the storage layout. There is no gateway that can see, meter, or gate your traffic.
* **You hold the keys, so you own the data.** Encryption and erasure coding happen on your own device before anything leaves it. Neither the indexer nor the storage providers can read your files, your metadata, or even your filenames. Even the apps you use are walled off from one another — each app has a distinct key derived during its approval, so one app cannot read another app's data even though both act on your behalf. Ownership is cryptographic — not a permission a provider grants you and can revoke.
* **No single operator can hold your data hostage.** Each object is erasure-coded into redundant shards spread across many unrelated storage providers worldwide, and only a subset is needed to reconstruct it. No one provider — and no outage, business failure, or demand against a single party — can read your data or take it offline.
* **You choose your indexer.** A well-designed app can move its cached metadata to another indexer while the encrypted sectors remain on their storage providers. Self-hosted operators should still maintain tested [`indexd` backups](/store-your-data/setting-up-indexd/operations) for quick recovery of the indexer's operational state.

The result is storage that is genuinely distributed, private, and yours: no proxy in the middle, no operator that can read your data, and no provider that owns your access to it.

## 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 storage providers and renters within the market. If providers 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 providers, those providers 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. Storage providers have the autonomy to establish their prices, fostering a competitive marketplace where top-quality and dependable providers 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.

* **Storage providers** are responsible for data storage and receive compensation only after demonstrating successful storage for the agreed-upon period.
* **Indexers** form and renew those contracts on your behalf, paying providers for the storage you use.

Contract management is automatic. When you use [Sia Storage](https://sia.storage) or run your own [`indexd`](/store-your-data/setting-up-indexd), the indexer forms contracts as needed when you upload and renews them before they expire, so your data stays available without manual intervention.

## 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 storage provider to help pay for their physical storage devices.

{% hint style="info" %}

#### Getting Started

For most people, the simplest way to start is the Sia Storage app with a free [Sia Storage](https://sia.storage) account (50 GB). To run the indexer yourself, see [Setting up indexd](/store-your-data/setting-up-indexd). Developers building applications can find the SDKs and guides in the [Sia Developer Portal](https://devs.sia.storage).
{% endhint %}


# Using Sia Storage

Get started with Sia Storage — hosted, end-to-end encrypted, decentralized storage with 50 GB free and nothing to run.

[Sia Storage](https://sia.storage) is a hosted **indexer** — the managed backend for storing data on Sia. It forms and manages storage contracts and keeps your data healthy for you, so there's no server, database, or contracts for you to run. To actually store and retrieve files, you point a **client** — the Sia Storage app or `s3d` — at your Sia Storage account.

Your files are still encrypted on your own device and erasure-coded across independent storage providers, as described in [About Storing Your Data](/store-your-data/about-renting); Sia Storage only ever handles encrypted metadata, never your keys or file contents.

{% hint style="success" %}
**For almost everyone, this is the right place to start.** A Sia Storage account gives you **50 GB free**, with no infrastructure to run. You only need to self-host an [indexer](/store-your-data/setting-up-indexd) if you specifically want to control the backend yourself.
{% endhint %}

## Why Sia Storage

* **Private.** Files are encrypted on your device before they leave it, with keys derived from your recovery phrase. Neither Sia Storage nor the storage providers can read your data.
* **Decentralized.** Your data is stored across many independent storage providers, not in one company's data center, so no single operator or outage can read it or take it offline.
* **No infrastructure to run.** Sia Storage operates the indexer and manages contracts for you, so you can use the Sia network without running a server or database.

## Store your first file

Getting started takes three steps: sign up, install the app, and upload.

### 1. Create your Sia Storage account

Go to [sia.storage](https://sia.storage) and select **Get Started** to create a free account. The free plan includes **50 GB of storage**, up to **3 connected apps**, and transfer speeds up to 524 Mbps — with no Siacoin to buy and no server to run.

![](/files/x2t4iYcr2xRJF0W7Ps7M)

### 2. Install the Sia Storage app

The app is how you upload and browse your files. Install it for your device:

* **iOS** — [App Store](https://apps.apple.com/us/app/sia-storage/id6753593109)
* **Android** — [Google Play](https://play.google.com/store/apps/details?id=sia.storage)

### 3. Connect the app and set your recovery phrase

The first time you open the app, connect it to your Sia Storage account:

1. Tap **Sign In** and approve the connection request on sia.storage. This authorizes the app to use your account. If you don't have an account yet, one is created for you.
2. Back in the app, enter your **recovery phrase** — the 12-word secret that derives the keys used to encrypt your files. If you don't already have one, the app generates a new one for you.

Once connected, the app is ready to store files. Your encryption keys stay on your device, so neither Sia Storage nor the storage providers can read your data.

![](/files/odwMLxsOo7ntCnbNkdiM)

![](/files/XkQzWzPxrVSZxT2MShrt)

{% hint style="danger" %}
**Write down your recovery phrase and store it somewhere safe.** It derives the keys that encrypt your files and identify you to your account. If you lose it, your files cannot be decrypted or recovered; if someone else gets it, they can access your data. Never share it, and don't rely on the app alone to keep it. See [Your Sia Seed](/get-started-with-sia/the-importance-of-your-seed) for more.
{% endhint %}

### 4. Upload a file

Choose **Upload** in the app (or drag and drop on desktop) and pick a file. The app encrypts it on your device, splits it into redundant pieces, and distributes those across storage providers. When it finishes, the file appears in your list.

### 5. Access your files

Your files are available from any device where you sign in to your account. Select a file to download it — it's retrieved from the storage providers and decrypted on your device.

![](/files/Fe8s4EaRfVAR4zXuVbpz)

{% hint style="success" %}
Your file is now stored on the decentralized Sia network — encrypted, redundant, and under your control.
{% endhint %}

## Other ways to use it

* **S3-compatible access.** [`s3d`](https://github.com/SiaFoundation/s3d) is a gateway that exposes an S3-compatible API backed by your Sia Storage account, so existing S3 tools such as Rclone and Cyberduck can use Sia — see our [S3 integration guides](/integrations/s3-integrations).
* **Build your own app.** Use the [Sia Storage SDKs](https://devs.sia.storage) to store and retrieve data from your own software — see [For developers](#for-developers) below.

Paid plans are available at [sia.storage](https://sia.storage) if you need more storage or connected apps.

## For developers

Sia Storage is also a hosted indexer your applications can build on. If you're building software on Sia, the [Sia Developer Portal](https://devs.sia.storage) covers the SDKs, the app identity model, and a [quickstart](https://devs.sia.storage/docs/quickstart) for uploading and downloading objects.

{% hint style="info" %}
Your application should let users choose where their data is stored rather than locking them to a single indexer. See [About Storing Your Data](/store-your-data/about-renting#building-apps) for how applications, the SDK, and the indexer fit together.
{% endhint %}


# Setting up indexd

Run your own Sia indexer with indexd

`indexd` is the Sia Foundation's indexer daemon. It is the component that **manages contracts** with storage providers, tracks where your objects live on the network, monitors their health, and repairs data in the background. Applications connect to an indexer (through a [Sia Storage SDK](/store-your-data/about-renting)) to store and retrieve data without managing hosts or contracts themselves.

{% hint style="success" %}
**Most people don't need to run `indexd`.** [Sia Storage](https://sia.storage) is a hosted service that gives you **50 GB free** with nothing to install, run, or maintain — no server, no database, and no contracts to manage. Use Sia Storage unless you specifically want to operate your own indexer.
{% endhint %}

## Who should self-host?

Most people, including developers building applications, should not run their own indexer. Point your application at [Sia Storage](https://sia.storage) during development instead. An application connects to a hosted indexer exactly the same way it connects to one you run yourself, so there is no need to operate one in order to build or test against it.

The only reason to run your own `indexd` is to retain full control over the infrastructure your data and contracts depend on, rather than relying on a hosted service. This is a decision an individual user makes for their own data, not one an application should make on their behalf.

## Before you start

`indexd` is a server daemon, not a desktop application:

* **There is no desktop app.** `indexd` is run from the command line or in a container.
* **PostgreSQL 18 is required.** `indexd` stores its index in a PostgreSQL database. The [Docker](/store-your-data/setting-up-indexd/docker) guide runs PostgreSQL for you in a second container, so you don't have to install or manage a database separately.

## Install

* [**Docker**](/store-your-data/setting-up-indexd/docker) — runs `indexd` and PostgreSQL together with Docker Compose. This is the recommended way to self-host.

{% hint style="info" %}
You can also run the `indexd` binary directly against your own PostgreSQL server. The binaries are available on the [official website](https://sia.tech/software/indexd), and configuration options are documented in the [indexd repository](https://github.com/SiaFoundation/indexd).
{% endhint %}

## Next steps

* Configure [**backups and recovery**](/store-your-data/setting-up-indexd/operations) before storing production data.
* [**Connect an application**](/store-your-data/setting-up-indexd/connect-application) using a connect key.


# Docker

Run indexd, PostgreSQL, and Caddy using Docker Compose

This guide will walk you through setting up `indexd` using Docker Compose. This is the **recommended** way to self-host: Compose runs `indexd`, PostgreSQL, and a Caddy HTTPS reverse proxy together.

{% hint style="success" %}
If you just want to store files, you don't need to run `indexd` at all — [Sia Storage](https://sia.storage) gives you 50 GB free with nothing to run.
{% endhint %}

***

## Pre-requisites

* **Software Requirements:** Before installing `indexd`, 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 `indexd` and its PostgreSQL database
* **Network Access:** `indexd` interacts with the Sia network, so you need a stable internet connection and open network access to connect to the Sia blockchain.
* A domain to use for the public App API

{% hint style="info" %}
PostgreSQL and Caddy are provided by the Compose file below, so you do **not** need to install them separately.
{% endhint %}

## Create the compose file

Create a new file named `docker-compose.yml`. You can use the following as a template. PostgreSQL stores the `indexd` index, and Caddy exposes the application API over HTTPS.

```yml
services:
  caddy:
    depends_on:
      - indexd
    image: caddy:2
    restart: unless-stopped
    environment:
      INDEXD_DOMAIN: ${INDEXD_DOMAIN}
    ports:
      - 80:80/tcp
      - 443:443/tcp
      - 443:443/udp
    volumes:
      - ./caddy:/etc/caddy:ro
      - caddy-data:/data
      - caddy-config:/config

  postgres:
    image: postgres:18
    restart: unless-stopped
    shm_size: 128mb
    environment:
      POSTGRES_USER: indexd
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: indexd
    volumes:
      - postgres:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 10s

  indexd:
    depends_on:
      postgres:
        condition: service_healthy
    image: ghcr.io/siafoundation/indexd:latest
    restart: unless-stopped
    ports:
      - 127.0.0.1:9980:9980/tcp # admin UI and API (kept local)
      - 9981:9981/tcp # public syncer
    expose:
      - 9982/tcp # application API (available only to Caddy)
    volumes:
      - indexd-data:/data

volumes:
  caddy-data:
  caddy-config:
  indexd-data:
  postgres:
```

{% hint style="warning" %}
Port `9980` is bound to `127.0.0.1` for the private admin UI and API. Port `9982` is not published on the host; only Caddy can reach it through the Compose network. Applications connect to Caddy on port `443`. Port `9981` should be publicly reachable by the Sia network.
{% endhint %}

### Create the Caddyfile

Create a directory named `caddy` beside `docker-compose.yml`, then create `caddy/Caddyfile` with the following contents:

```caddyfile
{$INDEXD_DOMAIN} {
  reverse_proxy indexd:9982
}
```

Caddy uses the domain from `.env`, obtains and renews its HTTPS certificate, and forwards application API requests to `indexd` over the private Compose network. Before starting the stack, point the domain's DNS records to this server and allow inbound TCP ports `80` and `443`. UDP port `443` enables HTTP/3.

## Set the environment variables

Create a file named `.env` in the same directory as your `docker-compose.yml`. Set the PostgreSQL password and the public domain Caddy will use for the application API:

```sh
POSTGRES_PASSWORD=your-secure-database-password
INDEXD_DOMAIN=indexd.example.com
```

You will enter the same database password during the `indexd` configuration step. For the application API advertise URL, enter the domain as a complete HTTPS URL, such as `https://indexd.example.com`.

## Get the container images

Download the container images:

```console
docker compose pull
```

![](/files/q1hgwIZJtRHx83vT2W77)

## Generate a recovery phrase

`indexd` uses a wallet to pay for storage contracts. If you don't already have a recovery phrase, generate one:

```console
docker compose run --rm indexd seed
```

{% hint style="warning" %}
Write your recovery phrase down and store it somewhere safe. It controls the wallet that funds your contracts and cannot be recovered if lost.
{% endhint %}

## Configuring `indexd`

Now launch the interactive configuration wizard:

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

The wizard will ask you for:

* Your **wallet recovery phrase** (use the one you generated above).
* An **admin password** used to unlock the `indexd` admin UI.
* A **database password** — enter the same value you set in `.env`.
* An **application API advertise URL** — the exact base URL applications will use to reach this indexer, described below.

When asked whether to configure **advanced settings**, answer `yes` and set the database connection so `indexd` can reach the PostgreSQL container:

| Setting          | Value           |
| ---------------- | --------------- |
| Database address | `postgres:5432` |
| Database user    | `indexd`        |
| Database name    | `indexd`        |
| SSL mode         | `disable`       |

![](/files/0iFbyWYLFdSRKxnRGS2b)

### Choose the application API advertise URL

The advertise URL is not the address `indexd` listens on. It is the external base URL that an application uses to reach the application API. `indexd` puts this URL into the application-approval flow and uses its hostname when verifying signed requests, so an incorrect value can break application authentication even when `indexd` itself is running.

For an indexer reached through an HTTPS reverse proxy, a typical configuration is:

```yml
applicationAPI:
  address: :9982
  advertiseURL: https://indexd.example.com
```

In this example, `indexd` listens on port `9982`, while applications connect to `https://indexd.example.com`. The reverse proxy terminates HTTPS and forwards requests to port `9982`.

The advertise URL must:

* Include the scheme, such as `https://`.
* Use the public hostname and port, if a non-standard port is required, that applications can actually reach.
* Use `https://` when a reverse proxy provides HTTPS, even if the proxy connects to `indexd` over HTTP.
* Be the same base URL entered in the application.
* Omit a trailing slash and API endpoint paths such as `/api` or `/auth/connect`.

Do not use `0.0.0.0`, a Docker service name, or another internal address. Use `localhost` or `127.0.0.1` only when the application runs on the same machine as `indexd`; on a phone or another computer, `localhost` refers to that device instead of the indexer.

{% hint style="warning" %}
The admin UI URL is not the advertise URL. Port `9980` serves the private admin API; applications connect to the application API on port `9982` or its HTTPS reverse-proxy URL.
{% endhint %}

## Running `indexd`

Now that you have `indexd` configured, start the services:

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

![](/files/XqyAHdzzrGvSSSL31OhC)

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

![](/files/twAkfdncSz4izlHG23zm)

{% hint style="success" %}
`indexd` is now set up.
{% endhint %}

### Verify the advertise URL

From the device or network where the application will run, test the advertise URL you configured:

```console
curl -i https://indexd.example.com/auth/check
```

An unsigned request should reach `indexd` and return `401 Unauthorized` with a message about missing query parameters. A timeout, certificate error, or proxy error means the public URL is not ready.

To correct the URL, run the configuration wizard again, choose to change the existing value, and restart `indexd`:

```console
docker compose run --rm -it indexd config
docker compose restart indexd
```

## Fund your wallet

`indexd` uses a built-in wallet to pay storage providers for the contracts it forms on your behalf, so it needs Siacoin (SC) before it can store any data. After signing in, the **Welcome to Sia** checklist in the admin UI walks you through the remaining setup, including funding your wallet.

Open the **Wallet** section of the UI, copy your receiving address, and send Siacoin to it from an exchange or another wallet. See [Transferring Siacoins](/store-your-data/setting-up-indexd/transferring-siacoins) for the full send and receive flow.

Once your wallet shows a confirmed balance, `indexd` can begin forming contracts and storing data.

## Checking the container status

To check the status of the containers run:

```console
docker compose ps
```

## Checking the logs

To check the `indexd` logs run:

```console
docker compose logs indexd
```

## Upgrading `indexd`

New versions of `indexd` are released regularly and contain bug fixes and performance improvements. To upgrade to the newest version, run the following:

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

{% hint style="success" %}
`indexd` is now updated to the latest version.
{% endhint %}

## Next steps

Configure [backups and recovery](/store-your-data/setting-up-indexd/operations), then connect an [application](/store-your-data/setting-up-indexd/connect-application).


# Backups and recovery

Back up, move, and recover indexd

PostgreSQL contains the operational state of an `indexd` installation. A tested database backup is the primary way to recover or move the service without losing accounts, contracts, settings, and maintenance state.

{% hint style="danger" %}
**The `indexd` recovery phrase is not a backup of the indexer.** It can recover the on-chain wallet balance after a blockchain rescan, but it cannot recreate the object index, contracts, or application accounts.
{% endhint %}

## Back up PostgreSQL

Use normal production PostgreSQL practices:

* Run scheduled automated backups; use WAL archiving and point-in-time recovery for larger or critical deployments.
* Keep backups outside the `indexd` machine and storage volume.
* Test restores regularly and monitor backup failures, database health, disk space, and WAL retention.
* Use a dedicated database and role. Use verified TLS when connecting over an untrusted network.
* Back up `indexd.yml` and the data directory, and store the wallet recovery phrase separately.

For Docker Compose, use PostgreSQL-aware tooling such as `pg_dump`, a managed-service snapshot, or a physical base backup. Copying a live `postgres` volume is not an application-consistent backup.

## Do not share a database

Only one full `indexd` daemon may use a PostgreSQL database at a time. Multiple daemons are not supported or safe: `indexd` has no database-wide leader election, and each instance runs its own consensus, wallet, contract, and maintenance services.

Use active/passive failover and ensure the old process is stopped before starting its replacement. The `indexd remote` migration worker is different: it has no database connection and only performs work assigned by the primary node.

## What can be recovered

| Surviving state                                     | What it can recover                                                                                                                                                            |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| PostgreSQL                                          | Server-side state, including application accounts and connect keys, contracts, object and slab records, sector locations, settings, and wallet scan state.                     |
| `indexd` wallet recovery phrase                     | The wallet identity and on-chain balance after a rescan. It does not recover the index.                                                                                        |
| Application recovery phrase and a surviving indexer | After normal reauthorization, the app can rebuild its local state from the object metadata it stored on that indexer.                                                          |
| A complete application metadata cache               | The app can pin its objects to a replacement indexer without moving the object payload. The cache must contain the object keys and complete slab layouts, not only object IDs. |

If both the application cache and the indexer's PostgreSQL state are lost, neither recovery phrase can reconstruct the missing object metadata.

## Move or restore indexd

### Restore from a database backup

1. Stop `indexd` before the final backup.
2. Back up PostgreSQL and copy the `indexd` data directory, including `indexd.yml` and `consensus.db`.
3. Restore both on the replacement server, configure the same wallet recovery phrase, and initially use the same `indexd` version.
4. Start exactly one `indexd` instance and wait for consensus and wallet synchronization.
5. Verify the wallet balance, contracts, application accounts, connect keys, and object health before switching applications or upgrading.

If the public application API URL stays the same, existing applications can continue using their saved credentials after traffic moves to the replacement.

### Recover from an application's local cache

This is a last-resort fallback when PostgreSQL is permanently lost, not a substitute for database backups:

1. Preserve the application's local metadata cache. Do not sign out, clear its storage, or reinstall it.
2. Set up, synchronize, and fund a replacement `indexd` so it can form contracts.
3. Create a connect key on the replacement and connect the application normally. The lost indexer is not required.
4. Have the application pin its cached object and slab metadata to the replacement. The replacement can pin the sectors already held by storage providers under its contracts; the object payload does not need to be uploaded again.
5. Wait for pinning and contract maintenance to finish, then verify the object list, health, and test downloads before deleting any recovery state.

Moving even a large metadata catalog is far cheaper than downloading and re-uploading. Start promptly after a loss, because the old indexer is no longer renewing contracts or repairing redundancy. Only objects present in the local cache can be recovered this way.


# Connect an application

Connect an application to a self-hosted indexd

Applications connect to the **application API** using the advertise URL configured during setup. Before creating a connect key, confirm that this URL is reachable from the application and matches the public scheme, hostname, and port exactly.

For access from another device, put the application API behind an HTTPS reverse proxy and use that public HTTPS URL. Do not use the admin UI URL or expose the admin API on port `9980`. See [Choose the application API advertise URL](/store-your-data/setting-up-indexd/docker#choose-the-application-api-advertise-url) for configuration examples, common mistakes, and a connectivity check.

1. Sign in to the `indexd` admin UI and open **Connect keys**.
2. Select **Create key**, choose a quota, and create the key.
3. Copy the new key and keep it secret.
4. In the application, choose its custom or self-hosted indexer option and enter the advertise URL exactly as configured in `indexd`.
5. On the approval page opened by the application, paste the connect key into the **App password** field and select **Accept**.
6. Return to the application and enter the application's recovery phrase when prompted.

The connect key, `indexd` admin password, PostgreSQL password, application recovery phrase, and `indexd` wallet recovery phrase are separate credentials. Initial registration consumes one use from the connect key's quota; later requests are signed with the application's derived App Key.


# Transferring Siacoins

Whether you're funding your node's wallet or sending Siacoins to an exchange, you can transfer Siacoins (SC) through the UI. Funding the wallet is a required step when self-hosting [`indexd`](/store-your-data/setting-up-indexd), whose wallet pays storage providers for the contracts it forms on your behalf.

{% hint style="info" %}
The screenshots below show the `renterd` UI, but the wallet send and receive flow is the same in the `indexd` and `walletd` UIs.
{% endhint %}

## 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**.


# Setting up renterd

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

`renterd` is the original all-in-one renter daemon, bundling a wallet, contract management, and an upload/download UI into one program. These guides walk you through installing and configuring it.

Choose an install method:

* [macOS](/store-your-data/setting-up-renterd/macos) — installed with Homebrew.
* [Linux](/store-your-data/setting-up-renterd/linux) — apt package (Debian or Ubuntu) or a manual binary.
* [Docker](/store-your-data/setting-up-renterd/docker)
* [Windows](/store-your-data/setting-up-renterd/windows) — desktop app.


# macOS

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

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/W5DUY2ECywtleaEBocBh)

{% 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)

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" %}
You have 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" %}
Your version of `renterd` has been updated.
{% endhint %}


# Linux

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

`renterd` runs 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

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

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.

![](/files/HY4wQA4YW6HcKV0xMZDn)

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


# Ubuntu

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

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
```

![](/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.

![](/files/HY4wQA4YW6HcKV0xMZDn)

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


# Other

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

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 %}
{% 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 %}

![](/files/UJY4aD0vmBkn73tlm7mf)

***

## Creating a wallet

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

```console
renterd seed
```

{% 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 %}

![](/files/pzKMvkWKPgVIMcBMkRJp)

***

## 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.

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

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:

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

***

## Configure your `renterd.yml` file

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

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

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.

```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`.

{% hint style="info" %}
To use the Zen testnet instead of mainnet, add `network: zen` to your `renterd.yml`. The same `renterd` binary serves both networks, and the web UI stays on port 9980.
{% endhint %}

***

## Setting up a systemd service

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

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

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

```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
```

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

***

## Running `renterd`

Now it is time to start the service

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

{% 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:

```console
sudo systemctl status renterd
```

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 %}

![](/files/0A5UT8hd9Ceko6YSGw6j)

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/CBqZPhcBQDNZyezuIXYb)

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

{% hint style="success" %}
You have 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.

```console
sudo systemctl stop renterd
```

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 %}
{% 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.

```console
sudo systemctl start renterd
```

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

```console
sudo systemctl status renterd
```

{% 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 %}

![Starting renterd](/files/kKdVRyrTRSA0SSJVfCeV)

{% hint style="success" %}
Your version of `renterd` has been updated.
{% endhint %}


# Docker

Setup a new renter using Docker compose

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

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` installed and configured, use the following command to start it:

```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" %}
You have 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`

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

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

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

![](/files/DR5oJNGDtSVvANAt9b2m)

{% hint style="success" %}
Your version of `renterd` has been updated.
{% endhint %}


# Windows

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

The `renterd` desktop app provides a 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 downloads for all Sia daemons.

![](/files/OYJcrKjzVorbzwPluZqQ)

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 prompts you to generate a recovery phrase (which you can copy and lock) and set a password to access the 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" %}
`renterd` is now running on your Windows system, and you can start storing your data on the Sia network.
{% endhint %}

## Configure

You can configure `renterd` through the desktop app, which exposes its 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 opens the configuration window.

![](/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 by checking the logs. These provide information about the system, network connections, API endpoints, S3 interface, and autopilot operations.

![](/files/RbworAuQoQFkcW7mz8Rv)

## Update

`renterd` updates regularly with bug fixes, performance improvements, and new features. Updating your node keeps it compatible with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. 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 %}


# Storing Your Data

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

This guide walks you through uploading files with `renterd`. Your files are stored on Sia's decentralized storage network, where data is spread across a network of hosts for redundancy.

## 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 with `renterd` assumes 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 `renterd` 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.

<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" %}
You have uploaded your file(s) using `renterd`. Your data is now stored on the Sia network.
{% endhint %}

## File processing

When you upload a file to Sia, it is processed on your local machine before being sent to the network. The file is divided into chunks. Each chunk is then split into 30 distinct pieces, each encrypted before being sent to a separate host. Only 10 of the 30 pieces are required to reconstruct a chunk, and no single host holds more than one piece.

This means up to 20 hosts can become disconnected from the network for each section of your original file, and your data remains recoverable.

{% 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

{% hint style="info" %}
**`renterd` is no longer the preferred way to store data on Sia.** For most users, [Sia Storage](https://sia.storage) (50 GB free, nothing to run) or a self-hosted [`indexd`](/store-your-data/setting-up-indexd) is a better starting point. `renterd` still works, and these guides remain for existing users.
{% endhint %}

## Maintaining your Data

To keep your data available, you should perform a few 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 shown as a percentage, representing the number of available shards that make up each file. A health of 100% indicates that all 30 file shards are distributed among hosts.

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

`renterd` automatically replicates any missing shards onto a new host if one becomes unavailable during its next health check.

Health checks only run while `renterd` is running. To maintain your data, periodically launch and run `renterd` so it can refresh the health status of your files and restore their redundancy.

## 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 an important part of the ecosystem. You are contributing to the decentralized Sia network. Providing storage is also a more technical process than renting, and while anyone can set it up, there's a lot you'll want to know to get the most out of 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 allow the 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 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 a key factor 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 - 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

Third-party sites can develop their own methods for scoring storage providers based on various metrics. For example, [SiaGraph Host Explorer](https://siagraph.info/host_explorer) and [HostScore](https://hostscore.info/) allow 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`**

You can contribute your storage space using Sia's `hostd` software.

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


# Setting up hostd

`hostd` is the Sia Foundation's software for storage providers. It stores encrypted data for the network and earns Siacoin (SC) in return. These guides walk you through installing and configuring it.

Choose an install method:

* [Linux](/provide-storage/setting-up-hostd/linux) — apt package (Debian or Ubuntu) or a manual binary. Recommended for a dedicated host.
* [Docker](/provide-storage/setting-up-hostd/docker)
* [macOS](/provide-storage/setting-up-hostd/macos) — installed with Homebrew.
* [Windows](/provide-storage/setting-up-hostd/windows) — desktop app.


# Linux

`hostd` can 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

The following requirements are recommended for running `hostd`:

* **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

The following requirements are recommended for running `hostd`:

* **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
```

![](/files/Irkc4637oYeuYbTPwLgR)

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

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

```sh
hostd version
```

![](/files/9JmTBKTDMs0tW3KpURHV)

## 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

The following requirements are recommended for running `hostd`:

* **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. Run the `hostd` configuration wizard from your `hostd` folder. Setting `HOSTD_CONFIG_FILE` tells the wizard to write `hostd.yml` into this folder; otherwise, on Linux it would be saved to `/etc/hostd/hostd.yml`, which requires root. This `hostd.yml` is used by `hostd` on start-up.

   ```console
   cd /path/to/hostd/folder
   HOSTD_CONFIG_FILE=hostd.yml 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

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" %}
`hostd` is now updated to the latest version.
{% 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

The following requirements are recommended for running `hostd`:

* **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` installed and configured, you can 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" %}
`hostd` is now set up.
{% 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`

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" %}
`hostd` is now updated to the latest version.
{% 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

The following requirements are recommended for running `hostd`:

* **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 is used to install and upgrade `hostd`.

## 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` installed and configured, you can 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" %}
`hostd` is now set up.
{% endhint %}

## Upgrading `hostd`

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" %}
`hostd` is now updated to the latest version.
{% endhint %}


# Windows

Setup a new host on Windows

The `hostd` desktop app provides a 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" %}
`hostd` is now running on your Windows system, and you can start providing storage on the Sia network.
{% endhint %}

## Configure

You can configure `hostd` through the desktop app, which exposes 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 so they are applied.
{% endhint %}

You can monitor your node’s activity and track changes by checking the logs. These provide information about the system, network connections, API endpoints, S3 interface, and autopilot operations.

![](/files/SAGe2ok37HtD6dowQhYm)

## Update

`hostd` updates regularly with bug fixes, performance improvements, and new features. Updating your node keeps it compatible with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. 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` can transfer Siacoins (SC). You can also check the transaction status 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 get a confirmation that your transaction has been broadcast.

### 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 involves configuring parameters such as storage, bandwidth, and other variables. These configurations affect your storage node's health, its ability to provide storage to renters, and 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 free services like [DuckDNS](/provide-storage/configuring-your-host/dynamic-dns/duckdns) or [Cloudflare](/provide-storage/configuring-your-host/dynamic-dns/cloudflare-advanced). You can also 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 try various pricing options and adjust as needed to balance earnings and utilization. The pricing recommendations table below is provided 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 help hosts with dynamic IP addresses. `hostd` has built-in DDNS and integrates with multiple services, including Cloudflare, AWS Route53, DuckDNS, and No-IP. With `hostd`'s built-in DDNS, hosts can use DDNS without downloading and setting up external software.

## Benefits of DDNS

**Connectivity:** Dynamic DNS lets hosts with dynamic IP addresses stay connectable, even when their IP changes. DDNS services monitor and update the IP address associated with a domain name. When the IP changes, incoming traffic is redirected to the new IP.

**Cost:** With dynamic DNS, hosts can avoid frequent IP announcements, which cost time, effort, and Siacoin. DDNS services update IP address information automatically, so hosts don't have to manage it manually.


# DuckDNS

Learn how to set up dynamic DNS in hostd with DuckDNS

DuckDNS is a free DDNS provider for associating a dynamic IP address with a domain name. Note that DuckDNS only supports domains in the format of \`\*.duckdns.org\`. This guide walks you through configuring DDNS in `hostd` using DuckDNS, so your storage provider stays reachable 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 free Domain Name System (DNS) service. This guide walks 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

Now 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 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" %}
Your storage node has been announced to the network and can now 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

\
`walletd` is the Sia Foundation's standalone wallet for Siacoin (SC) and Siafunds. It can manage multiple wallets and supports Ledger hardware wallets, through either a command-line interface or a web interface.

`renterd`, `hostd`, and `indexd` each include a built-in wallet for the coins they spend. `walletd` is the separate, general-purpose wallet for holding and moving your own Siacoin, independent of those services.

`walletd` can index either just your own addresses or the entire chain, and it can hold your seed to send and receive or run watch-only — tracking addresses without access to private keys. Some of its features:

* Send, receive, and store Siacoins and Siafunds.
* Manage multiple wallets, including watch-only and Ledger hardware wallets.
* Track wallet balances and transaction history.
* Monitor the blockchain for activity on specific addresses.

{% 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

`walletd` is the Sia Foundation's standalone wallet for Siacoin (and Siafunds). It supports multiple wallets and Ledger hardware wallets. These guides walk you through installing and configuring it.

Choose an install method:

* [Linux](/wallet/setting-up-walletd/linux) — apt package (Debian or Ubuntu) or a manual binary.
* [Docker](/wallet/setting-up-walletd/docker)
* [macOS](/wallet/setting-up-walletd/macos) — desktop app.
* [Windows](/wallet/setting-up-walletd/windows) — desktop app.


# Linux

`walletd` can be run as a background service to manage one or more Sia wallets and track their balances on the Sia network. This guide will walk you through the process of installing and configuring `walletd` on a Linux machine. We recommend using a Debian-based distribution, such as Ubuntu or Debian, but `walletd` should work on any modern Linux distribution. The setup guides in these docs are primarily focused on installing using `apt`, but `walletd` can also be installed as a binary manually or run in a Docker container.

* [Debian](/wallet/setting-up-walletd/linux/debian)
* [Ubuntu](/wallet/setting-up-walletd/linux/ubuntu)
* [Other Distros](/wallet/setting-up-walletd/linux/other)


# Debian

Setup a new wallet on Debian

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

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

***

## Pre-requisites

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

* **Operating System Compatibility:** `walletd` 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.
  * 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.

## Install `walletd` Using the `apt` repository

Before you install `walletd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `walletd` 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 %}

**2. Install `walletd`**

```sh
sudo apt install walletd
```

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

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

```sh
walletd version
```

## Configure `walletd`

After installing `walletd`, you will need to set a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo walletd config
```

This will start an interactive configuration process. You will be asked to verify the data directory, set a password to unlock the web interface, and optionally configure advanced settings such as the index mode.

{% hint style="info" %}
`walletd` can manage multiple wallets, so the configuration wizard does not prompt for a seed. You create or import wallets from the web interface after `walletd` is running.
{% endhint %}

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

## Start `walletd`

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

```sh
sudo systemctl enable --now walletd
```

## Verify `walletd` has started successfully

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

```sh
sudo systemctl status walletd
```

## Updating `walletd`

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

**To update:**

1. Stop the `walletd` service.

```sh
sudo systemctl stop walletd
```

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

```sh
sudo apt update
sudo apt upgrade walletd
```

3. Start `walletd` service.

```sh
sudo systemctl start walletd
```

## Next Steps

Now that you have `walletd` installed and running, you can start using it to manage your wallets 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 `walletd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

![](/files/YTECKkThitPFajgTYlXF)

* [Your Sia Wallet](/wallet/wallet-overview)
* [Transferring Siacoins](/wallet/transferring-siacoins)


# Ubuntu

Setup a new wallet on Ubuntu

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

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

***

## Pre-requisites

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

* **Operating System Compatibility:** `walletd` 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.
  * 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.

## Install `walletd` Using the `apt` repository

Before you install `walletd` for the first time on a new machine, you need to set up the Sia `apt` repository. Afterward, you can install and update `walletd` 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
```

**2. Install `walletd`**

```sh
sudo apt install walletd
```

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

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

```sh
walletd version
```

## Configure `walletd`

After installing `walletd`, you will need to set a password to unlock the web interface. There is an interactive configuration process that you can start by running the following command.

```sh
sudo walletd config
```

This will start an interactive configuration process. You will be asked to verify the data directory, set a password to unlock the web interface, and optionally configure advanced settings such as the index mode.

{% hint style="info" %}
`walletd` can manage multiple wallets, so the configuration wizard does not prompt for a seed. You create or import wallets from the web interface after `walletd` is running.
{% endhint %}

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

## Start `walletd`

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

```sh
sudo systemctl enable --now walletd
```

## Verify `walletd` has started successfully

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

```sh
sudo systemctl status walletd
```

## Updating `walletd`

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

**To update:**

1. Stop the `walletd` service.

```sh
sudo systemctl stop walletd
```

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

```sh
sudo apt update
sudo apt upgrade walletd
```

3. Start `walletd` service.

```sh
sudo systemctl start walletd
```

## Next Steps

Now that you have `walletd` installed and running, you can start using it to manage your wallets 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 `walletd` on a remote machine or a server, you will need to create an SSH tunnel to access the web interface.

![](/files/YTECKkThitPFajgTYlXF)

* [Your Sia Wallet](/wallet/wallet-overview)
* [Transferring Siacoins](/wallet/transferring-siacoins)


# Other

Setup a new wallet on Linux

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

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

## Pre-requisites

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

* **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)
* **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.
  * 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.

## Install `walletd`

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`.

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

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

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

{% endtab %}

{% tab title="ARM64" %}

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

{% endtab %}
{% endtabs %}

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

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

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

{% endtab %}

{% tab title="ARM64" %}

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

{% endtab %}
{% endtabs %}

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

   ```console
   mkdir /path/to/walletd/folder
   ```

## Configuring `walletd`

{% hint style="info" %}
`walletd` can manage multiple wallets, so the configuration wizard does not prompt for a seed. You create or import wallets from the web interface after `walletd` is running.
{% endhint %}

1. Run the `walletd` configuration wizard from your `walletd` folder. Setting `WALLETD_CONFIG_FILE` tells the wizard to write `walletd.yml` into this folder; otherwise, on Linux it would be saved to `/etc/walletd/walletd.yml`, which requires root. This `walletd.yml` is used by `walletd` on start-up. You will be asked to set a password to unlock the web interface and optionally configure advanced settings such as the index mode.

   ```console
   cd /path/to/walletd/folder
   WALLETD_CONFIG_FILE=walletd.yml walletd config
   ```

## Start `walletd`

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

   ```console
   cd /path/to/walletd/folder
   walletd
   ```

## Accessing the UI

For users with a desktop environment, you can open a browser to `http://localhost:9980` to access the `walletd` 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`)

![](/files/YTECKkThitPFajgTYlXF)

## Updating

Keep your node up to date. New versions of `walletd` are released regularly and contain bug fixes and performance improvements.

**To update:**

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

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

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

{% endtab %}

{% tab title="ARM64" %}

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

{% endtab %}
{% endtabs %}

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

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

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

{% endtab %}

{% tab title="ARM64" %}

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

{% endtab %}
{% endtabs %}

4. Start `walletd`.

   ```console
   cd /path/to/walletd/folder
   walletd
   ```

{% hint style="success" %}
You have updated your version of `walletd`.
{% endhint %}


# 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 set an admin password to unlock the web UI. 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` installed and configured, use the following command to start it:

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

![](/files/GGqa9dVHp9lU0nOPsFfw)

Once `walletd` has 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" %}
You have 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`

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" %}
You have updated your version of `walletd`.
{% endhint %}


# macOS

Setup a new wallet on macOS

The `walletd` desktop app provides a web UI to manage your Sia wallets. By the end of this guide, you will have:

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

## Pre-requisites

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

* **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.
  * 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.

## Download

{% hint style="warning" %}
Remember to check which version to download to ensure it works correctly with your hardware. 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/chip says:

* **Intel** - `macOS AMD64`
* **Apple silicon (M1, M2, M3, …)** - `macOS ARM64`
  {% endhint %}

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

![](/files/ss9CRQNYW32QgB2Xd0SG)

2. From the dropdown menu, select **macOS ARM64** or **macOS AMD64** depending on your hardware.

{% 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 `walletd` version for your hardware.

## Run

After downloading the `walletd` desktop application:

1. **Install the app:** Open the downloaded `.dmg` and drag the `walletd` app into your **Applications** folder.

![](/files/NN3cVe1W212zSASqw7Lo)

2. **Launch the app:** Open `walletd` from your Applications folder or Launchpad 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.

![](/files/BGK7xY2cGWYxwFHjsd5z)

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.

{% hint style="warning" %}
When you first run `walletd`, macOS may ask to allow incoming network connections. Select **Allow** so `walletd` can communicate.
{% endhint %}

![](/files/Pwsz2se5vbjaiOnV50Pw)

{% hint style="success" %}
`walletd` is now running on your Mac, and you can start managing your wallets on the Sia network.
{% endhint %}

## Configure

You can configure `walletd` through the desktop app, which exposes all available settings, from wallet indexing to batch sizing.

On **macOS**, you can access the `walletd` configurations by clicking the `walletd` icon in the menu bar at the top of your screen. This will open the configuration window.

![](/files/xmNh7SQPzV8UQJ0O0Zb4)

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 by checking the logs. These provide information about the system, network connections, and API endpoints.

## Update

`walletd` updates regularly with bug fixes, performance improvements, and new features. Updating your node keeps it compatible with the Sia network.

On macOS, the app downloads updates automatically and notifies you when they’re ready. 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 %}


# Windows

The `walletd` desktop app provides a web UI to manage your Sia wallets. 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. Select **Allow** so `walletd` can communicate through the firewall.
{% endhint %}

![](/files/RvD5oEDPLB591OohkBN9)

{% hint style="success" %}
`walletd` is now running on your Windows system, and you can start managing your wallets on the Sia network.
{% endhint %}

## Configure

You can configure `walletd` through the desktop app, which exposes all available settings, from wallet indexing to batch sizing.

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.

![](/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 by checking the logs. These provide information about the system, network connections, and API endpoints.

![](/files/uc8Hk3uonOkgQCt4ofGY)

## Update

`walletd` updates regularly with bug fixes, performance improvements, and new features. Updating your node keeps it compatible with the Sia network.

On Windows, the app downloads updates automatically and notifies you when they’re ready. 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

You can send Siacoins (SC) to an exchange or a friend and 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 get a confirmation that your transaction has been broadcast.

### 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

You might receive Siacoins from an exchange wallet, another Sia wallet you own, or from a friend. To receive Siacoins, generate or retrieve your address in `walletd`.

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 harder for malicious parties to steal them. The private keys never leave the hardware wallet, so they 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 very difficult for an attacker to steal your funds.

Hardware wallets are a common way to personally secure your coins. We're 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.


# S3 Integrations


# Jellyfin

A step-by-step guide for setting up Jellyfin with renterd.

## What is `Jellyfin`?

Jellyfin is a free, open-source media server and an alternative to proprietary platforms like Emby and Plex. It lets you organize, manage, and stream your media collection, including movies, TV shows, music, and photos. Its client/server model works across platforms, including desktops, smartphones, and smart TVs. You keep control over your media, with no fees or data tracking.

## 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 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. Following the Jellyfin naming and sorting conventions is recommended. Doing so will help Jellyfin automatically obtain metadata from online databases, including 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 set up using [Caddy](https://caddyserver.com/).
{% endhint %}

![](/files/6Rtjhu4081uXqkluRIXH)

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.

You have 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. Its open plugin store adds further functionality.

## 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.

You have 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. It 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 will be performing a network upgrade at block 552,100, estimated to occur December 1st, 2025. This release removes deprecated fields, fixes a difficulty adjustment bug, and prepares the network for parallel and instant syncing.

#### 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%               | Committed        |
| HTX        | 26%               | Committed        |
| BitMart    | 11%               | Upgrade complete |
| Binance    | 6%                | Upgrade complete |
| Upbit      | 4%                | Committed        |
| MEXC       | 2%                | Upgrade complete |
| CoinW      | 2%                | Notified         |
| SuperEx    | 1.7%              | Notified         |
| Digifinex  | 1.5%              | Notified         |
| Bybit      | 1.5%              | Committed        |
| BYDFi      | 1.5%              | Notified         |
| BigONE     | 1.3%              | Notified         |
| Kraken     | 1%                | Upgrade complete |
| BitKan     | 0.5%              | Notified         |
| 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 update Sia's consensus code, improving performance, scalability, and functionality. Given the scope of this hardfork, we 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. Notable changes:

* 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

Renters and hosts who have not yet upgraded should do so to use v2 and the new renter-host protocol.

#### ...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?

Sia v2 preserves the layout of block headers, so all mining hardware remains compatible. You should, however, check in with your mining pool to make sure they've updated.

#### ...for exchanges?

Sia v2 gives you more control over your Siacoin treasury and the ways you interact with it.

Exchanges should upgrade to `walletd` v2 as soon as possible. Due to the volume of users you serve, 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 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)


# Siacoin Total Supply

The total supply of Siacoins (SC) is unlimited; there will never be a cap on the number of Siacoins generated. The amount of data that can be stored grows over time, and as Sia is used to store more data, the network requires more Siacoins to fund 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, and that number will continue to increase. Storing more data on the network requires more Siacoins to fund storage contracts.

{% 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 that established the Sia Foundation, a non-profit organization that supports, develops, and promotes the Sia network. This changed the supply structure: the Foundation receives funding through a block subsidy of 30,000 Siacoins per block, disbursed every 4,380 blocks. The hard fork also included an initial offering of approximately 1.57 billion Siacoins to fund the Foundation's initial operations.

This caused a temporary increase in the inflation schedule for a single year, of a few percentage points, before returning to near pre-fork levels.

## Siacoin inflation

Inflation accommodates factors that reduce the number of coins in circulation. These include coins locked in contracts as collateral, lost coins, and coins burnt due to failed storage contracts. Over time, inflation diminishes, but it continues to secure the network by providing 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                        |


# Brand Guidelines

Third-party projects are an important part of the Sia ecosystem. They broaden the range of applications on Sia and add solutions that are not 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.
* We want your project to get credit for your work and to stand on its own.

These guidelines help developers keep their projects clear and distinct from core Sia projects.

## 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" %}
If you have any questions about these branding guidelines, 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.




---

[Next Page](/llms-full.txt/1)

