Runner · Get runningStep 2 of 6
Scaffold
One command produces a standalone, runnable runner project with the whole ladder pre-wired.
There is one front door. Run it:
npx create-automark-runner my-vaultIt produces a standalone, immediately-runnable runner project: a working runtime plus a starter plugin, my-strategy, already registered. The starter noops with a reason; your strategy is an edit to its decide(), not a blank file. (Every rung of the Build ladder is also a complete plugin you can copy in.)
What the command produces
my-vault/
src/
engine/ # scheduler · signer · executor · RPC · CLI — DO NOT EDIT
plugins/
index.ts # the registry: my-strategy ships registered
my-strategy/ # the starter plugin — edit decide() to make it yours
.env # created for you, RUNNER_PLUGINS=my-strategy pre-filled
package.json # deps: @automark/sdk, @mysten/sui, dotenv — the runtime is vendored in engine/Two zones, and the boundary between them is the whole point:
engine/is the runtime: the part you trust and never touch. It owns the key, the RPC, the scheduler, and the CLI.plugins/is yours. A plugin is a function;index.tsdecides which ones run.
Configure the environment
cd my-vault
# .env was already created, with RUNNER_PLUGINS=my-strategy pre-filled. Set:
# OPERATOR_PRIVATE_KEY=... the key that signs as the vault operator
# PLUGIN_MY_STRATEGY_VAULT_ID=0x… the vault the starter operatesYou'll need two things: the operator key — an Ed25519 keypair (suiprivkey1…) whose address is the vault's operator_address, which you generate and hold yourself — and the vault id, which you get by creating a vault in Studio.