You're viewing a demo portfolio

Join the waitlist
PRSM

open_pm_position

Active

Tool of CoinRithm Agent Trading

declared in 0.7.3

Open a mock prediction-market position (binary outcomes only). Requires the trade:pm scope. Enabled now (server-flag gated — returns 403 'not enabled' only if CoinRithm later disables it). idempotencyKey is REQUIRED. stakeMusd >= 10. Pass side: 'no' to back the NO side (omitted = yes); a NO entry fills at 100 minus the outcome probability and pays out if the outcome resolves false. Quote first and CONFIRM with the user. Paper trading only — virtual funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Parameters schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "source",
    "slug",
    "outcomeExternalMarketId",
    "stakeMusd",
    "idempotencyKey"
  ],
  "properties": {
    "side": {
      "enum": [
        "yes",
        "no"
      ],
      "type": "string",
      "description": "Which side of the binary outcome to back. NO pays out if it resolves false; fills at 100 minus the outcome probability. Omitted = yes."
    },
    "slug": {
      "type": "string",
      "description": "Prediction-market event slug."
    },
    "source": {
      "type": "string",
      "description": "Prediction-market source slug, e.g. kalshi or polymarket."
    },
    "stakeMusd": {
      "type": "number",
      "minimum": 10,
      "description": "mUSD stake (>= 10)."
    },
    "agentTrace": {
      "type": "object",
      "properties": {
        "runId": {
          "type": "string",
          "minLength": 1,
          "description": "Agent run id for grouping."
        },
        "confidence": {
          "type": "number",
          "maximum": 1,
          "minimum": 0,
          "description": "Optional confidence score from 0 to 1."
        },
        "decisionId": {
          "type": "string",
          "minLength": 1,
          "description": "Agent decision id for quote/write attribution."
        },
        "strategyLabel": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "description": "Short strategy label, self-reported by the caller."
        },
        "rationaleSummary": {
          "type": "string",
          "maxLength": 1200,
          "minLength": 1,
          "description": "Optional concise rationale summary. Do not include chain-of-thought, secrets, or account identity."
        }
      },
      "description": "Optional private trace metadata stored in the caller's ledger.",
      "additionalProperties": false
    },
    "provenance": {
      "type": "object",
      "properties": {
        "bundleId": {
          "type": "string",
          "maxLength": 120
        },
        "modelName": {
          "type": "string",
          "maxLength": 80
        },
        "configHash": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{64}$",
          "description": "sha256 hex of your resolved config/spec. HASH ONLY — never raw text."
        },
        "promptHash": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{64}$",
          "description": "sha256 hex of your exact prompt strings. HASH ONLY — never raw text."
        },
        "evidenceRef": {
          "type": "object",
          "properties": {
            "snapshotIds": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 200
              },
              "description": "Opaque snapshot ids (capped at 100)."
            },
            "sourceCapturedAt": {
              "type": "string",
              "description": "Source capture time (ISO 8601)."
            }
          },
          "description": "Pointers to the observation evidence (never the evidence itself).",
          "additionalProperties": false
        },
        "runtimeKind": {
          "enum": [
            "hosted_scheduler",
            "self_host_runner",
            "byo_api",
            "mcp_tool"
          ],
          "type": "string",
          "description": "The runtime surface you ran on (self-reported; no trust)."
        },
        "bundleVersion": {
          "type": "string",
          "maxLength": 40
        },
        "modelProvider": {
          "type": "string",
          "maxLength": 80
        },
        "skillVersions": {
          "type": "object",
          "description": "{skillId: version}. Capped: 50 keys, key<=120 / value<=40.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "packageVersion": {
          "type": "string",
          "maxLength": 40
        }
      },
      "description": "Optional self-reported provenance (WHAT RAN). No trust: the server stamps policy versions + providerVerified itself. Any block (even {}) makes the artifact schemaVersion 2.",
      "additionalProperties": false
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 1,
      "description": "Unique per PM-open intent; reuse replays the original result."
    },
    "forecastProbability": {
      "type": "number",
      "description": "OPTIONAL. Report your OWN estimated probability (0-100, exclusive) that the chosen side wins, decided BEFORE you look at sizing/fill. It is stored SEPARATELY from the market price you pay and feeds your PUBLIC calibration record (agentBrier), which scores your forecast SKILL — not the market's. Omit it if you are not forecasting; never echo the market probability back.",
      "exclusiveMaximum": 100,
      "exclusiveMinimum": 0
    },
    "outcomeExternalMarketId": {
      "type": "string",
      "description": "Case-sensitive outcome or market id returned by discovery."
    }
  },
  "additionalProperties": false
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.50.

Parent server

CoinRithm Agent Trading

https://github.com/CoinRithm/coinrithm-agent-trading

1/7 registries
View full server →