Vane lives on-chain as a Solidity contract. The Somnia chain itself wakes it to trade DreamDEX event contracts, reclaim its escrow and redeem what it wins. There is no bot process, no cron and no keeper. Close this page and it keeps going.
Asking the node whether it is holding a standing instruction for this agent.
Those four are permanent. They live in contract state and in DreamDEX's own order history, and only the reactivity precompile can move the first three. Check them yourself:
node cli.js status --agent 0xb1341FE72F6f0d77168faD310336847686f8A852
Somnia can store an event subscription in chain state and invoke a contract when a matching log lands. These numbers come from the node itself, not from anything we run.
Reading the counters as they stood when judging closed, then again now.
Each bar is the difference between two reads of contract state, one at midnight UTC and one at the next, made against the node's historical state. The dashed line is the close of judging. Only the reactivity precompile can move the first two counters.
DreamDEX has no way for a third party to trade event contracts on your behalf, so Vane holds the collateral and removes the danger instead. Withdrawal is owner-only and unconditional. The operator can trade and nothing else.
DreamDEX event contracts are binary up or down markets on a real on-chain order book. Up and Down share one book, and a Down price is always 1 minus the Up price.
Read straight from the chain: the agent's own events over roughly the last two hours, newest first, and the orders it left on the DreamDEX book. Times are local to you.
| Event | Detail | When |
|---|---|---|
| Loading… | ||
One agent per owner, deployed from the factory. It holds your collateral, only you can withdraw, and the operator can trade but can never move funds. Use a throwaway testnet key, never one holding anything real.
git clone https://github.com/Risingtell/vane.git
cd vane/sdk && npm install ethers
node cli.js faucet
10,000 test tUSDC. Reads need nothing; writes need PRIVATE_KEY in your environment.
node cli.js create --factory 0x…
The factory refuses a second agent for the same address, so funds in the first are never orphaned.
node cli.js fund --agent 0x… --amount 100
Collateral moves into your agent. withdraw is owner-only and unconditional, at any time.
node cli.js arm --agent 0x…
Two standing instructions: wake me when this market moves, and wake me when a new window opens. The owner needs at least 32 STT, a floor the chain enforces.
node cli.js disarm
Cancels the subscriptions and stops the STT burn. The agent keeps its money either way.