RIP.BET Docs

Outcome markets

Outcome markets are HIP-4 markets with named outcomes and a fixed expiry.

They are optional. Check /v1/runtime-config and only show outcome UI when outcomes_enabled is true. When outcomes are disabled, outcome routes are unavailable.

Outcome reads expose metadata and price history. When outcome writes are enabled, order and cancel prepare flows require JWT authentication, RIPBET allowlist access, and an active approved agent wallet. If the API returns agent_not_approved, call POST /v1/agent/approve first, then retry the prepare step.

List markets

curl -s "{API_BASE_URL}/v1/outcomes/meta"

The response includes:

FieldMeaning
outcomeIdMarket outcome id
nameDisplay name
sidesTradable sides and coins
expiredTerminal state
settlingIn settlement or grace window
questionsRelated question metadata

Use sides[].coin for WebSocket outcome subscriptions and order preparation.

Price history

curl -s "{API_BASE_URL}/v1/outcomes/price-history?coins=%2336010"

URL-encode # as %23.

Transfer collateral

Outcome trading may require moving USDH into the right balance class. Use prepare/submit:

curl -s -X POST "{API_BASE_URL}/v1/outcomes/transfer/prepare" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{"amount":"25"}'

The user signs the returned transfer action. Submit the signature:

{
  "actionHash": "0x...",
  "signature": "0x..."
}

Place an outcome order

Prepare a limit order:

curl -s -X POST "{API_BASE_URL}/v1/outcomes/orders/prepare" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "outcomeId": 3601,
    "side": 0,
    "isBuy": true,
    "sz": "95",
    "mode": {
      "kind": "limit",
      "limitPx": "0.556"
    }
  }'

Prepare a market-style order:

{
  "outcomeId": 3601,
  "side": 0,
  "isBuy": true,
  "sz": "95",
  "mode": {
    "kind": "market",
    "slippageBps": 300
  }
}

The prepare response contains orderId, actionHash, connectionId, eip712Domain, and agentMessage. Sign the returned agent message, then submit:

{
  "orderId": "9c07d350-0000-4000-8000-000000000000",
  "actionHash": "0x...",
  "hlSignature": "0x..."
}

Cancel

Outcome cancels use the same prepare/submit pattern:

{
  "outcomeId": 3601,
  "side": 0,
  "cloid": "0x0123456789abcdef0123456789abcdef"
}

Read open orders and status

curl -s "{API_BASE_URL}/v1/outcomes/orders/open/0xabc..." \
  -H "Authorization: Bearer $JWT"
curl -s -X POST "{API_BASE_URL}/v1/outcomes/order-status" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{"address":"0xabc...","cloid":"0x0123456789abcdef0123456789abcdef"}'

Provide exactly one of oid or cloid.

On this page