Setup a new host on macOS
This guide will walk you through setting up a new
hostdnode on macOS. For this guide, we are using a Macbook Pro M1, but the steps should work with any other macOS device. At the end of this guide, you should have a working
hostdnode on the Sia network and be ready to accept contracts from renters.
Below are the minimum requirements for hosting on Sia. If you do not meet these requirements you may not receive contracts from renters or risk losing Siacoins as a penalty. Hosting is a commitment that requires some technical knowledge and a stable setup.
- A Mac that supports macOS 12 (Monterey) or 13 (Ventura)
- A quad-core CPU
- 8GB of RAM
- An SSD with at least 100GB of free space.
- Additional storage space to rent out
- A stable internet connection
hostdsupports Intel-based Macs and Apple-Silicon Macs, using the M1 and M2 processors.
This guide primarily uses the command line and assumes the user has sudo permissions.
For this guide, we will download the
darwin/arm64version and unzip the
Now that we have downloaded
hostdwe need to unzip it and move it to a more accessible location:
- 1.Double-click on the downloaded
hostdzip file to unzip it
- 2.Click on the newly unzipped directory
- 3.Right-click on the path at the bottom of the Finder window and click "Open in Terminal"
macOS open in terminal
In the opened terminal window we will move the
/usr/local/bin. Run the following command and press enter.
sudo mv hostd /usr/local/bin
Finally, we'll create a folder in our home drive to store
hostd's data. It is important to store
hostd's metadata on an SSD. You will need at least 80GB of space available. 50GB for the current blockchain and additional space for volume metadata.
hostduses BIP-39 12-word recovery phrases. It does not support legacy 28/29-word
siadseeds. If you already have a 12-word seed, skip this step. Run the following command to generate a new wallet recovery phrase:
After pressing enter, a new 12-word recovery phrase will be generated. Please write down this phrase and keep it in a safe place. You will need this phrase to recover your wallet. If you lose this phrase, you will lose access to your wallet and funds. You will also see the wallet's funding address. You can send Siacoin to this address to fund your host.
generate recovery phrase
In the same terminal you used to generate your recovery phrase, run the following command to start
hostd --dir ~/hostd
You will be asked to input a password and a wallet recovery phrase. The password is used to unlock the
hostdUI, it should be something secure and easy to remember. 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. These values are not stored anywhere; you will need to reenter them every time you start
You can also set the
HOSTD_API_PASSWORDenvironment variables so you do not have to reenter the values every time.
After entering your password and recovery phrase,
hostdwill start. You can now access the
hostdUI by opening a browser and going to
http://localhost:9980. Enter your password to unlock
Before you can start hosting, you must send Siacoin to your wallet. Hosts must lock Siacoin as collateral to ensure they are financially incentivized to store data. Hosts also need Siacoin to submit storage proofs to the blockchain. Therefore, it is essential to always keep your wallet funded with Siacoin. If your wallet runs out of Siacoin, your host cannot submit storage proofs and you will lose collateral.
To send Siacoin to your
hostdwallet, you must get the wallet's address which can be found on the "Wallet" page of the
It is okay if your wallet is not synced at this point. You can still send funds to your wallet. However, they will not be available until the wallet is fully synced.
We recommend around $50 USD worth of Siacoin to start hosting. Hosts are constantly locking collateral; you may need more or less depending on how much data you store.
- 1.Navigate to the "Wallet" page by clicking the "Wallet" icon in the sidebar
- 2.Click the "Receive" button in the top right corner of the page
- 3.Copy your wallet address by clicking the "Copy" button or scan the QR code with your phone
hostd wallet address
A "volume" is a location on disk where
hostdwill store uploaded data. A volume can be anywhere, including network drives and external drives. You can create multiple volumes to combine storage from multiple drives. To add a volume:
- 1.Click the "Volume" icon in the sidebar
- 2.Click the "Create Volume" button to add your first storage volume.
hostd create volume
- 1.Enter a name for the volume. We recommend something simple, like "hostdata.dat"
- 2.Use the built-in browser to select a folder to store the volume file.
- 3.Enter a maximum size for the volume. This is the maximum amount of data that can be stored in the volume.
- 4.Click "Create" to add the volume to `hostd`
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 fully provision the new volume. The progress will be displayed in the UI.
hostd volume list
Now that you have a volume, you can configure your host. First, navigate to the "Configuration" page in the sidebar. This page contains all of the pricing and settings available to hosts.
hostd configuration page
The first setting to configure is the "Accepting Contracts" setting. This setting determines whether your host will accept new contracts. Most hosts 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 will still be required to fulfill any existing contracts before fully shutting down your host.
The next setting to configure is your host's net address. This is the address that is published to the blockchain and used by renters to connect to your host. Some users use their public IP address, but we recommend setting up a domain. You can use a free service like DuckDNS or No-IP or purchase a custom domain from a registrar.
Whichever method you choose, enter your address in the "Net Address" field followed by your host's RHP2 port, which defaults to
:9982. For example, if your IP address is
184.108.40.206you would enter
220.127.116.11:9982. If your domain is
example.com, you would enter
On the Sia network, hosts set their prices for storage and bandwidth. The prices you select will determine how much you earn from hosting.
When setting prices, remember you are competing with other hosts. If your prices are too high, renters will choose other hosts. If your prices are too low, you will not earn enough to cover your costs.
We've put together some recommendations for pricing below. These are just recommendations, you can set your prices to whatever you want and change your prices at any time. Hosts will need to experiment with different prices to find the right balance between earnings and utilization.
- Storage price: the amount of Siacoins you charge per TB per month of storage. We recommend around $1 USD per TB per month to start.
- Collateral: the amount of Siacoins you lock per TB per month of storage. This should always be set to 2x your storage price. For example, if your storage price is 100 SC/TB/mo, you should set your collateral to 200 SC/TB/mo.
- Ingress price: the amount of Siacoins you charge per TB of data uploaded to your host. We recommend setting this low to encourage renters to upload data. Between $0.00 and $0.05 USD per TB.
- Egress price: the amount of Siacoins you charge per TB of data downloaded from your host. We recommend setting this higher to increase your earnings, above $5 USD per TB is a good starting point.
- Maximum collateral: the maximum amount of Siacoins you will lock into a single contract for collateral. This setting is important to limit your risk per contract. A good starting point is However, if you refuse to lock enough collateral for the data a renter wants to store, they will choose another host. Therefore, we recommend setting this around 10x your collateral price. For example, if your collateral price is 200 SC/TB/mo, you should set your maximum collateral to 2000 SC/TB/mo.
We recommend leaving other settings, such as "Contract price", "Base RPC price", "Sector access price," and "Price table validity" at their default values. They are primarily for advanced users.
Once you are happy with your prices, click the "Save Changes" button in the top right corner of the page.
If you have a firewall or router you will need to forward/open TCP ports 9981-9983. How to do so is outside of the scope of this guide, there are tutorials available for most routers/firewalls available on Google.
Now that you have configured your host, you must wait for your host to finish syncing the blockchain. This can take several hours or even days depending on your hardware and internet connection. You can check the progress of the sync by mousing over the "Sia" logo at the top of the sidebar.
check sync status
Now that your host has finished syncing, you can announce your host to the network. This will publish your host's net address and public key to the blockchain so renters can connect to your host and form contracts. The announcement transaction costs a small amount of Siacoins, which will be deducted from your wallet.
To announce your host:
- 1.Click the "Configuration" icon in the sidebar
- 2.Click the "Announce" button in the top right corner of the page
- 3.Click "Announce" in the dialog to confirm
announce your host
After announcing, an "Unconfirmed" transaction will appear on the "Wallet" page. Once it is confirmed, your host will be visible on the network and renters will be able to form contracts with your host.
unconfirmed announcement transaction
Once the announcement is confirmed you can check if your host is visible on the network by going to https://troubleshoot.siacentral.com. Enter your host's net address and click "Check Host". This tool will connect to your host and notify you of any issues.
It is very important to keep your host up to date. New versions of hostd are released regularly and contain bug fixes and performance improvements.
- 2.Stop the
hostdservice with the command
sudo systemctl stop hostd
- 3.Unzip and replace
/usr/local/binwith the new version
sudo systemctl start hostd