Skip to main content

priv/ccxt_structures/binance_pro_structures.json

{
  "version": 1,
  "exchange": "binance",
  "target": "elixir_pro",
  "source": {
    "manual": "wiki/Manual.md",
    "typescript": "ts/src/pro/binance.ts",
    "runtime": "elixir/lib/ccxt/pro/binance.ex"
  },
  "policy": {
    "numericStorage": "decimal",
    "rawRetention": "store raw exchange payloads separately and keep per-structure info when parser output exposes it",
    "stateAndEventSplit": true
  },
  "structures": {
    "ticker": {
      "kind": "state",
      "canonicalTable": "ccxt_tickers",
      "historyTable": "ccxt_ticker_events",
      "sourceMethods": [
        "watch_ticker",
        "watch_tickers",
        "watch_mark_price",
        "watch_mark_prices",
        "watch_bids_asks",
        "watch_multi_ticker_helper",
        "fetch_ticker_ws",
        "stream_ticker"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol"],
      "fields": {
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "high": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "low": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "bid": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "bidVolume": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "ask": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "askVolume": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "vwap": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "open": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "close": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "last": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "previousClose": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "change": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "percentage": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "average": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "baseVolume": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "quoteVolume": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "markPrice": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "indexPrice": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    },
    "trade": {
      "kind": "event",
      "canonicalTable": "ccxt_trades",
      "sourceMethods": [
        "watch_trades",
        "watch_trades_for_symbols",
        "watch_my_trades",
        "fetch_trades_ws",
        "fetch_my_trades_ws",
        "stream_trades",
        "stream_my_trades"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol", "id"],
      "fields": {
        "id": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "order": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "type": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "side": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "takerOrMaker": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "price": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "amount": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "cost": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "fee": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    },
    "order_book": {
      "kind": "state",
      "canonicalTable": "ccxt_order_books",
      "historyTable": "ccxt_order_book_events",
      "sourceMethods": [
        "watch_order_book",
        "watch_order_book_for_symbols",
        "fetch_order_book_ws",
        "stream_order_book"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol"],
      "fields": {
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "bids": {"runtimeTypes": ["list"], "dbType": "jsonb", "nullable": false},
        "asks": {"runtimeTypes": ["list"], "dbType": "jsonb", "nullable": false},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "nonce": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    },
    "ohlcv": {
      "kind": "event",
      "encoding": "array",
      "canonicalTable": "ccxt_ohlcvs",
      "sourceMethods": [
        "watch_ohlcv",
        "watch_ohlcv_for_symbols",
        "fetch_ohlcv_ws",
        "stream_ohlcv"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol", "timeframe", "timestamp"],
      "fields": {
        "0": {"name": "timestamp", "runtimeTypes": ["integer"], "dbType": "bigint", "nullable": false},
        "1": {"name": "open", "runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "2": {"name": "high", "runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "3": {"name": "low", "runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "4": {"name": "close", "runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "5": {"name": "volume", "runtimeTypes": ["number"], "dbType": "decimal", "nullable": true}
      }
    },
    "balance": {
      "kind": "state",
      "canonicalTable": "ccxt_balances",
      "historyTable": "ccxt_balance_events",
      "sourceMethods": [
        "fetch_balance_ws",
        "watch_balance",
        "stream_balance"
      ],
      "primaryKey": ["exchange_id", "account_type", "currency"],
      "fields": {
        "free": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false},
        "used": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false},
        "total": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      },
      "accountEntryFields": {
        "free": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true},
        "used": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true},
        "total": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true}
      }
    },
    "order": {
      "kind": "state_and_event",
      "canonicalTable": "ccxt_orders",
      "historyTable": "ccxt_order_events",
      "sourceMethods": [
        "create_order_ws",
        "edit_order_ws",
        "cancel_order_ws",
        "cancel_all_orders_ws",
        "fetch_order_ws",
        "fetch_orders_ws",
        "fetch_open_orders_ws",
        "fetch_closed_orders_ws",
        "watch_orders",
        "stream_orders"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol", "id"],
      "fields": {
        "id": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "clientOrderId": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "lastTradeTimestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "type": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "timeInForce": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "side": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "price": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "amount": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "filled": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "remaining": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "cost": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "average": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "status": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "fee": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": true},
        "trades": {"runtimeTypes": ["list"], "dbType": "jsonb", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    },
    "position": {
      "kind": "state",
      "canonicalTable": "ccxt_positions",
      "historyTable": "ccxt_position_events",
      "sourceMethods": [
        "fetch_position_ws",
        "fetch_positions_ws",
        "watch_positions",
        "stream_positions"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol", "side"],
      "fields": {
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "contracts": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true},
        "contractSize": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "entryPrice": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true},
        "unrealizedPnl": {"runtimeTypes": ["number", "string"], "dbType": "decimal", "nullable": true},
        "side": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    },
    "liquidation": {
      "kind": "event",
      "canonicalTable": "ccxt_liquidations",
      "sourceMethods": [
        "watch_liquidations",
        "watch_liquidations_for_symbols",
        "watch_my_liquidations",
        "watch_my_liquidations_for_symbols"
      ],
      "primaryKey": ["exchange_id", "market_type", "symbol", "timestamp"],
      "fields": {
        "symbol": {"runtimeTypes": ["string"], "dbType": "text", "nullable": false},
        "contracts": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "price": {"runtimeTypes": ["number"], "dbType": "decimal", "nullable": true},
        "side": {"runtimeTypes": ["string"], "dbType": "text", "nullable": true},
        "timestamp": {"runtimeTypes": ["integer"], "dbType": "bigint", "nullable": true},
        "datetime": {"runtimeTypes": ["string"], "dbType": "utc_datetime_usec", "nullable": true},
        "info": {"runtimeTypes": ["map"], "dbType": "jsonb", "nullable": false}
      }
    }
  }
}