A Beginner's Guide to Mining Siacoin

This guide is out of date.

This post describes mining Sia with a desktop graphics card (GPU), but custom mining hardware is now available for Sia. The custom hardware has made Sia GPU mining non-viable. This guide will still work, but you may never reach payout, even with a high-end GPU.

Overview ๐Ÿ”—︎

Sia is a decentralized, peer-to-peer network for buying and selling computer storage space.

Users pay for transactions within Sia using a cryptocurrency called Siacoin. Like Bitcoin, Sia relies on “miners” to supply computing power to the network. These miners are paid for their contributions in Siacoin.

In this guide, I’ll show you how to generate money when you’re not using your Windows PC by setting it up to mine Siacoin.

Time Required ๐Ÿ”—︎

This guide looks long, but it’s just because there are lots of screenshots. I estimate that it only takes about 20 minutes to get started with mining.

TaskTime
Installing software5-10 minutes
Creating a Siacoin wallet5 minutes (fast method) / 3 days (slow method)
Setting up automatic mining5 minutes
Total~20 minutes

Software versions ๐Ÿ”—︎

This guide uses the latest version of each software component at the time of writing:

  • Sia-UI v.1.3.1
  • CUDA v.8.0.61
  • OpenCL 2.0
  • Marlin v.1.0.0
  • Windows 10 (will also work on Windows 7, Windows 8, Windows 8.1)

Find your graphics card type ๐Ÿ”—︎

Siacoin mining uses your computer’s graphics card (which I’ll refer to as “GPU” for graphics processing unit).

Different GPUs require different software, so follow the steps below to determine your GPU type:

  1. Hit Win+R to open the run dialog.
  2. Type devmgmt.msc and hit Enter.
    Run devicemgr
  3. Expand the “Display adapters” entry

You should see something like the following:

Device Manager: Display adapters

Note whether your GPU begins with “NVIDIA” or “AMD.”

  • If you have an NVIDIA GPU, you will install CUDA.
  • If you have an AMD GPU, you will install OpenCL.

If you see something else, you likely don’t have a compatible GPU. This means you won’t be able to mine Siacoin, but check the mining hardware section (below) to see what mining-ready GPUs are available for your next build.

Install GPU library ๐Ÿ”—︎

In order to run a Siacoin miner, you must install the correct library for the mining software to communicate with your computer’s GPU.

Install CUDA (for NVIDIA GPUs) ๐Ÿ”—︎

If you have an NVIDIA GPU, you’ll need to install CUDA. For AMD GPUs, skip to the next section.

  1. Go to https://developer.nvidia.com/cuda-downloads
  2. Next to “Operating System,” click “Windows.”
  3. Click the version that corresponds to your version of Windows.
  4. For “Installer Type” click “exe (network).”
  5. Click “Download.”
  6. Open the downloaded file and proceed through the installation using the default options.

Install OpenCL (for AMD GPUs) ๐Ÿ”—︎

If you have an AMD GPU, you’ll need OpenCL. It may be installed already, as it is included with many AMD drivers, but to ensure you have the latest version, follow the steps below.

  1. Go to https://www.amd.com/en/support
  2. Under “Automatically Detect and Install Your Driver” click “Download Now”
  3. Open the downloaded file and proceed through the installation using the default options.

Install a Siacoin miner ๐Ÿ”—︎

There are a few different Siacoin miners to choose from, but they all offer similar features and performance. This guide uses the Marlin miner because it is compatible with both CUDA and OpenCL, but you might want to check out other mining options.

To install Marlin, follow the steps below:

  1. Go to the Marlin miner download page.

  2. Click the link for “Windows (64-bit)” to download the Marlin package.

  3. When the download completes, open it and unzip to C:\marlin

    Extract Marlin

  4. Hit Win+R to open the Windows run dialog.

  5. Type cmd and hit Enter.

    Run cmd

  6. In the Command Prompt, type the following:

    C:\marlin\marlin.exe --selftest
    

You should see output that says PASS on each line:

2017/05/18 20:24:30 Starting marlin 1.0.0
2017/05/18 20:24:31 OpenCL error: cannot load OpenCL.dll
2017/05/18 20:24:31 CUDA (driver version 8.0)
2017/05/18 20:24:31  [0] GeForce GTX 970 (CC 5.2)
2017/05/18 20:24:31 [0] default   : PASS
2017/05/18 20:24:31 [0] m1p0      : PASS
2017/05/18 20:24:31 [0] m1p1      : PASS
2017/05/18 20:24:31 [0] m1p1x32   : PASS
2017/05/18 20:24:31 [0] m1p4x32   : PASS
2017/05/18 20:24:31 [0] m2p0      : PASS
2017/05/18 20:24:31 [0] m2p1      : PASS
2017/05/18 20:24:31 [0] m2p1x32   : PASS
2017/05/18 20:24:31 [0] m2p2      : PASS
2017/05/18 20:24:31 [0] m2p2x32   : PASS
2017/05/18 20:24:31 [0] m2p4      : PASS
2017/05/18 20:24:31 [0] m2p4x32   : PASS
2017/05/18 20:24:31 [0] x1p1      : PASS
2017/05/18 20:24:31 [0] x1p1x32   : PASS
2017/05/18 20:24:31 [0] x1p2x32   : PASS
2017/05/18 20:24:31 [0] x1p3x32   : PASS
2017/05/18 20:24:31 [0] x1p4x32   : PASS
2017/05/18 20:24:31 [0] x1p5x32   : PASS

This verifies that your GPU library is installed correctly and your miner is able to access it. All you need now is a Siacoin wallet and you’ll be ready to begin mining.

Generate a Siacoin wallet ๐Ÿ”—︎

In order to mine, you’ll need a Siacoin wallet to store the coins you earn. There are currently two main options for Siacoin wallets, which I describe below.

Bittrex - The quick ’n dirty way ๐Ÿ”—︎

The fastest way to create a Siacoin wallet is to use Bittrex, a cryptocurrency exchange. Bittrex provides a web wallet, so you can create an account and generate a Siacoin wallet instantly.

The downside is that you have to trust Bittrex to keep your Siacoin secure. There have not been any major security breaches at Bittrex that cost their customers money, but many other exchanges have had issues with this, and Bittrex is by no means immune.

I recommend starting with Bittrex as you build familiarity with Siacoin and mining. Once you become comfortable, create a wallet with Sia-UI, move your Siacoin from Bittrex to your Sia-UI wallet, and set your Sia-UI address as your new mining address.

To create a wallet with Bittrex, follow the steps below:

  1. Go to Bittrex.
  2. Create a new account and log in.
  3. From the upper right menu, click Wallets.
    Bittrex wallet button
  4. Type siacoin in the search bar.
    Bittrex search bar
  5. In the “Siacoin” row that appears, click the + sign.
    Bittrex deposit button
  6. You will see a pop-up window showing a long series of letters and numbers. This is your Siacoin wallet address.
    Bittrex deposit address
  7. Save this address and proceed to the Start mining step.

Sia-UI - The better, but slower way ๐Ÿ”—︎

If you created a wallet with Bittrex, you can skip this section.

Sia-UI is Sia’s official Windows app. Developed and maintained by the Sia developers, it is the most secure and powerful Sia wallet available (though this is somewhat by virtue of it being the only Windows wallet available).

Download and Launch Sia-UI ๐Ÿ”—︎

  1. Go to the Sia-UI download page
  2. Click the link ending in -win32-x64.zip (e.g. Sia-UI-vXX.YY.ZZ-win32-x64.zip)
  3. Extract the downloaded file to C:\Sia-UI
    Extract Sia-UI
  4. Click “Sia-UI” in the extracted files.
    image
  5. A Windows Firewall dialog will appear asking if you want to give Sia access. Click “Allow”.
    image

Set up Sia-UI wallet ๐Ÿ”—︎

You’ll see a progress bar in the upper right corner that represents Sia-UI’s progress synchronizing your app with the rest of the Sia network. While you wait for synchronization to reach 100%, create your Siacoin wallet with the steps below:

  1. In the lefthand sidebar, click the “Wallet” button.
    image
  2. Click “Create a new wallet.”
    Sia-UI create wallet
  3. Sia-UI then displays your wallet seed. This is a series of words that gives you access to your Siacoin wallet.
    • Save your wallet seed. Either write it down on paper or save it to a text file.
    • Sia offers to let you choose a wallet password that is distinct from your wallet seed. For simplicity, leave the password as is so that it will match your seed.
    • Important: You’ll need your wallet seed to access your wallet every time you start Sia-UI. If you lose your wallet seed, you can never recover the money inside your wallet.
    • Important: Anyone who has your wallet seed controls your Siacoin balance. Never post your wallet seed online (unless you’re writing a Siacoin mining tutorial).
      Sia-UI seed
  4. Click the button that says “I have written these down in a safe place.”
  5. Because Sia-UI maintains a healthy skepticism of its users, the next screen challenges you to enter the wallet seed you just saved. Type in the seed you saved in step 3 and click “Confirm.”
    Sia-UI enter seed and password
  6. Bizzarely, Sia-UI then asks you to confirm the seed again, so paste it one final time and click “Unlock.”
    Sia-UI enter seed

At this point, Sia-UI will likely still be synchronizing with the rest of the network. Unfortunately, you can’t use your wallet until this process completes.

First-time synchronization is sloooooow. It can take hours to days to get synchronized depending on your disk speed and network connection. I posted a workaround on reddit that reduces the wait time to ~20 minutes, so check that out if you don’t feel like waiting.

When you’re finally synchronized, click the “Receive Siacoin” button in the wallet screen:

Sia-UI save address

You will see a “Receiving Address” field and a “Description” field. In the Description, type Mining revenues (or whatever label you prefer):

Sia-UI receive siacoin

Sia will now show your Siacoin receiving address labeled Mining revenues. You can access it at any time by hitting the “Receive Siacoin” button.

Sia-UI address

Start mining ๐Ÿ”—︎

You’re ready to start mining! To begin, follow the steps below:

  1. Open Notepad
  2. Go to File > Open and enter C:\marlin\marlin.bat
  3. Replace the file contents with the following:
SET payout_address=YOUR SIACOIN WALLET ADDRESS
SET intensity=18
SET pool_server=us-east.luxor.tech:3333

marlin.exe --user %payout_address% --intensity %intensity% --host %pool_server%
  1. Change YOUR SIACOIN WALLET ADDRESS to your own wallet address. The file should look like the following:
    Marlin batch file
  2. Go to File > Save and close Notepad.
  3. Go to C:\marlin in Windows Explorer.
  4. Double-click on marlin.bat.
    Marlin in Explorer
  5. If you get a security warning, click “Run.”
    Marlin warning

You’re mining! You should see output like the following:

2017/11/08 11:59:15 Starting marlin 1.0.0
2017/11/08 11:59:15 CUDA (driver version 9.1)
2017/11/08 11:59:15  [0] GeForce GTX 970 (CC 5.2)
2017/11/08 11:59:15 OpenCL: NVIDIA CUDA
2017/11/08 11:59:15  [1] GPU: GeForce GTX 970
2017/11/08 11:59:15 Connecting to us-east.luxor.tech:3333...
2017/11/08 11:59:15 [0] Initializing GeForce GTX 970
2017/11/08 11:59:15 Difficulty set to 107G
2017/11/08 11:59:15 New block ...72226449 detected, difficulty 147P
2017/11/08 11:59:15 Authentication successful
2017/11/08 11:59:16 [0] Initialized, work size 262144
2017/11/08 11:59:16 [0] Accepted 2b5b471d D: 42G/17G  965.8 MH/s
2017/11/08 11:59:18 [0] Accepted 0c1e4a1f D: 23G/17G  965.8 MH/s
2017/11/08 11:59:18 [0] Accepted 727c0e70 D: 50G/17G  967.5 MH/s
2017/11/08 11:59:21 [0] Accepted f1eede1e D: 46G/17G  966.2 MH/s

Close the window to stop mining.

If you configured your Siacoin wallet address correctly in Marlin’s settings, you will see your mining activity in the Luxor dashboard:

  • https://sia.luxor.tech/miners/your siacoin address

I’ll go into more details about the Luxor mining pool below.

You’ll notice that your system responds sluggishly while you’re running the miner. This is because mining consumes all available graphics resources, which makes it difficult for you to use your computer normally. Don’t worry. We’ll address this in the next section.

Configure miner to run automatically ๐Ÿ”—︎

You’re all set up and generating Siacoin, but there’s a problem: mining monopolizes your graphics processor and makes it difficult for you to do anything else on your computer.

You could start the miner when you leave your computer and turn it off when you return, but that’s a pain.

Instead, you can use a handy feature built in to Windows called Task Scheduler. It allows you to configure Siacoin mining like a screensaver - it runs when you’re away and automatically shuts off when you return.

Configuring a scheduled task is a bit tedious. To save you the trouble, I’ve created a task configuration file you can import into Task Scheduler through the steps below:

  1. Download my Sia Mining Task configuration file: SiaMiningTask.xml (right-click and hit “Save link as…”).
  2. Hit Win+R to open the Windows run dialog.
  3. Type control schedtasks and hit Enter.
    Run Task Scheduler
  4. Task Scheduler will appear. From the right hand menu, click “Import Task…”
  5. Specify the SiaMiningTask.xml file you downloaded in step 1.

This will create a pre-populated task for you with the correct settings for your Siacoin miner. Click “OK” to finish creating the task.

With this task created, your PC will mine Siacoin automatically any time you leave the mouse and keyboard untouched for ten minutes. As soon as you touch the mouse or keyboard, mining stops so as not to interfere with your normal usage.

Using the mining pool ๐Ÿ”—︎

Mining is a game of chance. Your machine is doing repeated calculations with random numbers hoping to discover a solution to an equation that the Siacoin network needs at the given moment. The computer that finds a solution receives a miner’s reward. The reward is currently ~200,000 Siacoin (~$1,300 USD). A solution is found roughly once every ten minutes, but due to the number of miners active, it is possible for your miner to go months without getting lucky and stumbling on a solution.

This guide configures your miner to participate in the Luxor mining pool to give you a more regular and predictable mining income stream. With a mining pool, all participants implicitly agree to share effort and share rewards proportionally. The Luxor mining pool takes a 0.3% fee for administering this system. This fee is unusually low for a mining pool and will likely increase to 2-3% by next 2018.

The Luxor mining pool provides a dashboard that allows you to monitor your miner’s activity:

  • https://sia.luxor.tech/miners/your siacoin address
Luxor screenshot

When the unpaid balance for your wallet address reaches 500 Siacoin, the pool pays out your rewards. Within six hours, you will see a deposit in your wallet for a little over 500 Siacoin.

My particular GPU reaches the payout threshold about once every two weeks (as of November 2017). Your experience will vary depending on the performance of your GPU, the percentage of time your miner is running, and the number of other active Siacoin miners.

Cashing out your Siacoin ๐Ÿ”—︎

Now that you’ve accumulated some Siacoin, you probably want a way of spending them.

There are cryptocurrency exchanges that allow you to sell Siacoin, but they don’t support converting Siacoin directly to fiat (e.g. dollars, Euros). You need to convert your Siacoin in two stages:

  1. Convert Siacoin to Bitcoin.
  2. Convert Bitcoin to fiat currency.

Converting Siacoin to Bitcoin ๐Ÿ”—︎

There are a few options for converting your Siacoin to Bitcoin:

  • Bittrex: (recommended) Bittrex has historically provided the most solid support for Siacoin.
  • ShapeShift: ShapeShift is simple and fast because there’s no signup required. Just give them your Bitcoin address, and they’ll give you a Siacoin deposit address. Unfortunately, their support for Siacoin is rather erratic and they only offer Siacoin exchanges intermittently.
  • Bisq: (for advanced users) Bisq (formerly BitSquare) is a decentralized, peer-to-peer exchange. Trading is slower and involves more steps, but can give you better rates than traditional exchanges. Bisq also supports converting Siacoin directly to fiat, but you’re relying on another person not to rip you off. If you choose this option, take steps protect yourself from fraud.
  • Poloniex: Poloniex was once the leading exchange for Siacoin, but their support and platform has been awful for most of 2017, frequently freezing users’ funds for weeks without any communication. I recommend avoiding Poloniex if you have any other exchange option.

Converting Bitcoin to fiat currency (regular money) ๐Ÿ”—︎

Bitcoin has been around longer and the ecosystem is much more mature, so you have several options for cashing out your Bitcoins. Bitcoin exchanges are beyond the scope of this post, but here are a few places to start.

A more comprehensive list is available at bitcoin.org.

Siacoin mining hardware ๐Ÿ”—︎

The tables below show estimated mining performance of different GPUs. These numbers are based on anonymous, self-reported data from a mix of systems, aggregated from Sia mining wikis. Don’t expect 100% accuracy, but they should give you a rough idea of how different systems perform.

The performance metric is a function of how many million mining calculations the chip can do per second (measured in megahashes per second or MH/s). The rate that a GPU generates mining income is directly proportional to its MH/s. In other words, all things being equal, a 2,000 MH/s GPU will generate twice as much income as a 1,000 MH/s GPU.

For each GPU chip, I’ve provided an example GPU product that contains that chip, but the same GPU chip is generally available from a variety of manufacturers.

NVIDIA GPUs ๐Ÿ”—︎

GPUPerformance (MH/s)Example
GTX 660300EVGA GeForce GTX 660
GTX 670400ASUS GeForce GTX 670
GTX 970895EVGA GeForce GTX 970
GTX 9801,290GIGABYTE GeForce GTX 980
GTX Titan X1,300EVGA GeForce GTX TITAN X
GTX 980 Ti1,540GIGABYTE GeForce GTX 980Ti
GTX 980 Ti Hybrid1,725EVGA GeForce GTX 980 Ti
GTX 1080 FE2,190EVGA GeForce GTX 1080 Founders Edition

AMD GPUs ๐Ÿ”—︎

GPUPerformance (MH/s)Example
R9 270X635Gigabyte R9 270X
R9 380750ASUS STRIX Radeon R9 380
HD 7970790Sapphire Radeon HD 7970
R9 2901,050Sapphire Radeon R9 290
R9 290X1,200Sapphire Radeon R9 290X
R9 390x1,200Sapphire Radeon NITRO R9 390X
R9 Nano1,600XFX Radeon R9 Nano
R9 Fury X1,800XFX RADEON R9 FURY X
R9 295x22,250Sapphire Radeon R9 295X2

I do not recommend buying a GPU for the express purpose of mining Siacoin. Your profits are determined by Siacoin’s market price and the number of other active miners on the network. These variables can change drastically at any time.

If you’re buying a new GPU anyway, and you’re interested in Siacoin mining performance as a factor in your decision, the tables above can help you decide.

Caveats ๐Ÿ”—︎

Here are a few things to keep in mind as you begin Siacoin mining:

  • Heat: Siacoin mining adds considerable stress to your GPU and may reduce its lifetime. Monitor your GPU’s heat to make sure mining is not heating it to the point of damaging to your system.
  • Taxes: Many jurisdictions consider cryptocurrency mining profits to be taxable income. If you convert to fiat through an exchange such as Coinbase or Gemini, they are legally required to share your financial information with tax authorities if requested.
  • Electricity costs: Your GPU consumes more electricity when it is mining Siacoin than when it is doing less intensive tasks such as browsing Facebook. Be sure to take the cost of electricity into account when considering your mining profit.

Earning Siacoin by hosting ๐Ÿ”—︎

Another way of earning Siacoin is by renting out your unused hard disk space. The Siacoin hosting economy hasn’t reached critical mass yet, and hosting is suited for more advanced users, but if you’re interested, I wrote a Guide to Hosting Sia on a Synology NAS.

Troubleshooting ๐Ÿ”—︎

Having trouble getting up and running? Here are some common issues readers have run into and how to fix them.

Miner crashes immediately ๐Ÿ”—︎

Symptoms: When you run marlin.bat a command window pops up and immediately closes.

This usually happens because the mining settings are too intense for your GPU. To fix this, follow the steps below

  1. Open Notepad
  2. Go to File > Open and enter C:\marlin\marlin.bat
  3. Change the intensity value to 1.
    Marlin batch file
  4. Go to File > Save and close Notepad.
  5. Try running marlin.bat again.

If it succeeds, repeat these steps with increasing intensity until you find the highest intensity that is still stable.

If it fails after you’ve lowered the intensity, try the following:

  1. Hit Win+R to open the Windows run dialog.
  2. Type cmd and hit Enter.
    Run cmd
  3. In the Command Prompt, type the following:
    cd C:\marlin
    marlin.bat
    

This won’t fix the issue, but the window will stay open so that you can see the error message Marlin is producing before it crashes.

Miner shows 0 MH/s ๐Ÿ”—︎

Symptoms: The Marlin miner runs, but shows a hash rate of 0 MH/s.

This can happen if the mining settings are too intense for your GPU. To fix this, follow the same steps for Miner crashes immediately.