Skip to main content
This walks through connecting ObsidianLog to Sia, using the hosted Sia Storage indexer at sia.storage. You don’t need to run Sia infrastructure yourself, but you will approve ObsidianLog through a Sia Storage account during setup. Takes about ten minutes, most of it waiting on a one-time Sia write.

1. Get the binary

Download and extract the release binary for your system, following Installing a release binary in the Quickstart (or the FAQ if you’re not sure which file to grab). The sia backend is already built into the official release binary, so there’s nothing extra to install or compile.

2. Run init and choose Sia

Already completed Your First Test Run? This will detect that existing setup and ask “Existing setup found… Reuse it?” instead of the fresh wizard described below. Answering no there and adding Sia to that setup is covered specifically in Returning User (Scenario 3), go there instead. Starting fresh, or want this kept completely separate from an existing setup instead of added to it? Keep reading, or add a separate --config path to every command below (e.g. --config sia-test/config.toml) to avoid touching anything else on your machine. Answer the prompts, and when asked for a storage backend, choose sia. You’ll then be asked for an indexd URL (press Enter to accept the default, sia.storage) and a recovery phrase. Type seed to generate a brand new one:
Save the newly generated phrase somewhere safe. It’s the master key for your Sia account, and ObsidianLog never stores it for you. Never use a recovery phrase shown in documentation or shared by someone else.

3. Approve the connection in your browser

Open that URL and approve. init won’t continue until you do. Once approved, init finishes the remaining prompts (bind address, chunk window) and writes your config. On macOS, this whole flow should cost at most one keychain prompt, separate from the browser approval step.

4. Start the server and send a log

Leave that terminal running. Open a second terminal in the same extracted release folder, then send the test log:
The first write to a brand new Sia account can take several minutes, not seconds. It’s forming a real storage contract behind the scenes, and the ingest command gives you no progress indicator while that happens. If it seems to hang, that’s expected. Just let it run. The 200 printed once it finishes (from -w or .StatusCode above) is the actual confirmation, a successful ingest has an empty body, so that status line is the only visible sign it worked. Subsequent writes are much faster.

5. Query and verify

query decrypts and prints the log line back, and verify walks the hash chain and confirms nothing archived has been tampered with, exactly like a local backend install. The difference here is that this data actually lives on the Sia network now, encrypted under a key only you hold.

Tell us how it went

Please open a feedback report either way, any bugs, friction, or feature requests are worth mentioning.

What’s next

Try Returning User to see how ObsidianLog behaves when you re-run init later, or Trying Out Vector to see a real log shipper feed it instead of a single curl request. Building from source and want to test the Sia integration at the code level instead of through the CLI? See Testing Against a Live Sia Indexer. When you finish the tutorial, return to the terminal running serve and press Ctrl-C to stop it.