Quickstart

Create a project and print each confirmed BTC/USDT one-minute bar.

Create the project

aurum create signal-watch
cd signal-watch

The scaffold contains CMakeLists.txt, main.cpp, and config.hpp. Replace main.cpp with:

#include <aurum/sdk.hpp>
#include <aurum/venue/okx.hpp>

using namespace aurum;

class SignalWatch final : public sdk::Application {
public:
  SignalWatch() : sdk::Application({.mode = sdk::RuntimeMode::LIVE}) {
    bind<Datafeed>(venue::okx::Bar("BTCUSDT", "1m"));

    on(TOPIC<"bar://okx/BTCUSDT@1m">,
       [](const Tick<schema::BarRow>& tick) {
      if (tick.payload.close_timestamp == 0) return;
      log::info("BTCUSDT close={}", tick.payload.close.to_string());
    });
  }
};

AURUM_EXPORT(SignalWatch)

Run it

aurum run .

aurum run resolves the installed SDK, compiles the project when necessary, and starts it in the foreground. Press Ctrl-C to stop.

Check the project contract

The generated CMakeLists.txt declares a literal name and version through aurum_project. Forge uses both values as deployment identity:

aurum_project(
  NAME signal-watch
  VERSION 0.0.1
)

Increment VERSION before pushing a replacement release. Forge rejects an existing name@version instead of overwriting it.

Next steps