Docs · updated 2 Nov 2026

Quickstart: your bot's first shadow ruling

Your bot keeps its strategy and sends Nevarn intents: the terms it would like traded, never an order and never a key. In shadow mode Nevarn asks Decionis whether each intent would be allowed and records the answer. Nothing is sent to a venue, nothing is signed and no money moves. Five steps, no SDK needed.

Shadow mode for API keys is switched on per deployment. If reading your bounds shows "available": false, it is not on for yours yet; write to support@nevarn.com.

1. Create an account

Developers create an account at dev.nevarn.com/signup with an email and a password and confirm it with a code we email them; that signs them in to the dashboard. No wallet is needed. (A customer account, created at nevarn.com/start, signs in to the console at app.nevarn.com with a wallet instead.) Every account starts free, in Sandbox. You need to be the account's owner or an admin to mint a key.

2. Mint a key for your bot

  1. On your developer dashboard, find the API keys card. (In the console, open Commerce - on a customer account: Settings, then Wallets and business tools. The API keys card is at the top.)
  2. Press For a bot. It ticks intents (propose intents for a shadow ruling), read (read your bounds) and halt (pause all signing; it cannot resume).
  3. Give the key a label and press Create key. Copy it now: it is shown once and kept only as a hash.
export NEVARN_API_KEY=nvk_…

3. Read your bounds

curl -s https://api.nevarn.com/machine/mandate -H "Authorization: Bearer $NEVARN_API_KEY"

The answer carries your limits (including whether trading is enabled), your signing grants and, under intents, whether shadow mode is available and, for each strategy, the Decionis policy that rules its intents and how old an intent may be.

4. Send an intent

An intent for a prediction market: buy an outcome token, giving 5 pUSD for 10 shares (amounts are integers in 6-decimal units). Use an outcome token id from the market you trade. observed_at is when your bot saw the price; it must be recent.

curl -s https://api.nevarn.com/machine/intents \
  -H "Authorization: Bearer $NEVARN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "strategy": "polymarket",
    "intent_key": "first-'"$(date +%s)"'",
    "intent": {
      "token_id": "<outcome token id>",
      "side": "BUY",
      "maker_amount": 5000000,
      "taker_amount": 10000000,
      "observed_at": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }
  }'

5. Read the ruling

{
  "mode": "shadow",
  "verdict": "block",
  "would_execute": false,
  "executed": false,
  "reasons": ["…the policy's reason codes…"],
  "decision_id": "…",
  "receipt_id": null
}
  • would_execute is the answer: true only when every policy bound to the strategy would allow the intent.
  • executed is always false in shadow mode, and there is no receipt.
  • A verdict of unavailable means no ruling could be had (for example no policy is bound to the strategy yet); read it as not allowed.
  • The console's Shadow mode card lists your bot's latest rulings, and a weekly summary counts what would have been stopped.

Next

  • The strategy contract: every field, verdict and error.
  • Executing: when your bot's shadow rulings look right, an owner mints a key with execute and its limits, and your bot sends the same intents to POST /machine/executions - on paper while your account is in Sandbox, live once it is in Production (see Sandbox and Production).
  • Install and downloads, then SDK usage for Python and TypeScript, and the MCP server setup for AI agents.
  • API keys and scopes: which key each call needs, and an execute key's limits.
  • Halting: POST /machine/halt with a halt key turns all of your signing off at once. Only an owner can turn it back on, from the console.
  • Usage and licensing: what a governed action is, and the plans.
This page as Markdown