MCPサーバー

Otto Data — Robinhood Chain

app.ottodata/otto

このMCPでできること

Provides market, basis, liquidity, whale-flow, research, and trading data for tokenized stocks and crypto on Robinhood Chain, including paper and on-chain trading.

agent_performance
Realized trading performance for an agent, derived from position_closed events: trade count, win rate, total/average P&L (bps), total P&L (USD), average holding hours, per-ticker breakdown and the last 20 closed trades. agent: gap-trader | narrative-trader. mode: '' (all) | paper | live | onchain — filter trades by execution mode.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'agent_performanceArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 30}, 'mode': {'type': 'string', 'title': 'Mode', 'default': ''}, 'agent': {'type': 'string', 'title': 'Agent', 'default': 'gap-trader'}}}
agent_position_book
Server-side derived open position book for a trading agent: every order_filled event without a later matching position_closed on the same ticker counts as open, joined with the live Chainlink price for unrealized P&L (bps and USD). Replaces rebuilding the book from raw agent events. agent: gap-trader | narrative-trader. mode: '' (all) | paper | live | onchain — filter positions by execution mode.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'agent_position_bookArguments', 'properties': {'mode': {'type': 'string', 'title': 'Mode', 'default': ''}, 'agent': {'type': 'string', 'title': 'Agent', 'default': 'gap-trader'}}}
chain_deployments
New contract deployments on Robinhood Chain (Ottoscan; full history since genesis). tokens_only=True returns only new token contracts.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'chain_deploymentsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'tokens_only': {'type': 'boolean', 'title': 'Tokens Only', 'default': False}, 'verified_only': {'type': 'boolean', 'title': 'Verified Only', 'default': False}}}
chain_stats
Robinhood Chain deployment statistics: daily deploy/token counts, top deployers, total contract/verified counts (Ottoscan analytics).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'chain_statsArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 30}}}
competition_leaderboard
Public leaderboard of Otto's paper trading competition: every participant ranked by return % on the shared $10,000 starting budget, with equity, P&L, open position count, trade count and last activity. No key required. Fills are server-priced from Chainlink, so rankings cannot be gamed with self-reported prices.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'competition_leaderboardArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}}}
competition_my_portfolio
The competition paper portfolio behind an otto_pk_ key: cash, equity, return %, realized/unrealized P&L, open positions with live prices, recent trades (each tagged with its source: your MCP agent or Otto's hosted gap/narrative engine) and the entry's strategy prefs. Check this before sizing a new competition_paper_trade.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'competition_my_portfolioArguments', 'required': ['api_key'], 'properties': {'api_key': {'type': 'string', 'title': 'Api Key'}}}
competition_paper_trade
Place a PAPER fill in Otto's trading competition on behalf of the key's owner. No real funds move — the fill is priced server-side at the latest Chainlink price (callers can never supply a price). api_key: the personal otto_pk_ key issued when the wallet joined at ottodata.app/competition. side: buy | sell. qty: token quantity (shares). Include a short `reason` — it shows up in the owner's trade history. Rules enforced server-side: $10,000 starting budget, long-only, max $2,000 notional per trade, max 10 open positions, max 40 trades/day. On a rule violation the response is {"error": "..."} — read it and adjust instead of retrying blindly.
入力スキーマ
{'type': 'object', 'title': 'competition_paper_tradeArguments', 'required': ['api_key', 'ticker', 'side', 'qty'], 'properties': {'qty': {'type': 'number', 'title': 'Qty'}, 'side': {'type': 'string', 'title': 'Side'}, 'reason': {'type': 'string', 'title': 'Reason', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'api_key': {'type': 'string', 'title': 'Api Key'}}}
execute_onchain_swap
Execute a REAL on-chain swap on Robinhood Chain via the Rialto router, signed by Otto's server-side trading wallet. side=buy spends `usd_amount` USDG to buy the ticker's Hood token; side=sell sells `qty` tokens back to USDG. The server enforces hard guardrails independently of the caller: USDG<->allowlisted-token pairs only, per-trade and daily USD caps, and a slippage cap. On success the matching order_filled/position_closed event (payload mode=onchain, with tx_hash) is written automatically — the position book, performance stats and trade chart update without a separate report_agent_status call. key: the operator's OTTO_AGENT_KEY. agent: gap-trader | narrative-trader. Returns tx_hash, fill qty/price/usd and pnl_bps (sells with a known entry).
破壊的操作あり 外部アクセスあり
入力スキーマ
{'type': 'object', 'title': 'execute_onchain_swapArguments', 'required': ['key', 'ticker', 'side'], 'properties': {'key': {'type': 'string', 'title': 'Key'}, 'qty': {'type': 'number', 'title': 'Qty', 'default': 0.0}, 'side': {'type': 'string', 'title': 'Side'}, 'agent': {'type': 'string', 'title': 'Agent', 'default': 'gap-trader'}, 'reason': {'type': 'string', 'title': 'Reason', 'default': ''}, 'run_id': {'type': 'string', 'title': 'Run Id', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'usd_amount': {'type': 'number', 'title': 'Usd Amount', 'default': 0.0}, 'slippage_bps': {'type': 'integer', 'title': 'Slippage Bps', 'default': 50}}}
flow_summary
Whale-flow summary per ticker: transfer count, total USD volume, mint/burn USD (supply change) and the largest transfer.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'flow_summaryArguments', 'properties': {'hours': {'type': 'integer', 'title': 'Hours', 'default': 24}}}
funding_carry_signals
Deterministic funding-carry candidates joining perp funding (Arcus/Lighter) with perp-vs-spot basis. Per ticker: funding rate + annualized funding_apr_pct, perp-vs-Chainlink gap (bps) and a label — carry_long_spot_short_perp (hold Hood spot, short the perp, collect positive funding), carry_short_spot_long_perp (inverse) or no_carry — plus the standard risk flags. min_abs_bps filters on |perp_vs_chainlink_bps|. Signals are NOT orders.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'funding_carry_signalsArguments', 'properties': {'min_abs_bps': {'type': 'number', 'title': 'Min Abs Bps', 'default': 0}}}
gap_trade_signals
Deterministic signals for the gap-trader strategy: per Hood ticker the overnight gap it currently carries (bps), a signal (long_at_open | avoid_or_reduce | none), 14-day gap statistics, the hit rate of pre-open gap direction vs open direction (hit_rate_14d) and risk flags (oracle_paused, stale, low_liquidity, earnings_within_48h). Signals are NOT orders — sizing and approval belong to the user. The most informative window is pre-open 09:15-09:29 ET; signals are suppressed while the market is open (session=regular).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'gap_trade_signalsArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 14}, 'min_abs_bps': {'type': 'number', 'title': 'Min Abs Bps', 'default': 50}}}
hood_attention
Reddit attention/alpha score joined with live basis for Hood tokenized stocks: which tokens have social interest AND an on-chain premium/discount at the same time. Fan-out (same post, many tickers) is deduplicated.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_attentionArguments', 'properties': {'min_alpha': {'type': 'number', 'title': 'Min Alpha', 'default': 0.0}}}
hood_basis_history
Minute-level basis history for one ticker (newest first). Example tickers: NVDA, TSLA, SPY. limit max 5000.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_basis_historyArguments', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 200}, 'ticker': {'type': 'string', 'title': 'Ticker'}}}
hood_basis_snapshot
Current basis (premium/discount) snapshot for all Robinhood Chain tokenized stocks. Per ticker: chainlink_px (on-chain price), ref_last (NASDAQ), basis_bps (+ = token trades at a premium), overnight_bps (move vs last close) and the oracle_paused flag.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_basis_snapshotArguments', 'properties': {}}
hood_earnings_risk
Earnings risk for Hood tokenized stocks (weekly earnings radar): per ticker report_date/time, days_to_earnings, implied_move_pct (option-implied expected move), beat_probability (0-100), PEAD status + live basis join. Earnings released while NASDAQ is closed make the token gap — watch small days_to_earnings for off-hours risk management. tickers: CSV filter (empty = full Hood universe).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_earnings_riskArguments', 'properties': {'tickers': {'type': 'string', 'title': 'Tickers', 'default': ''}, 'days_ahead': {'type': 'integer', 'title': 'Days Ahead', 'default': 30}}}
hood_feeds
Registry of all tokenized stock and crypto feeds tracked on Robinhood Chain (Chainlink proxy + token contract addresses).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_feedsArguments', 'properties': {}}
hood_gap_sessions
Session-by-session gap history for one ticker (each overnight/weekend session is a separate row).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_gap_sessionsArguments', 'required': ['ticker'], 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 14}, 'ticker': {'type': 'string', 'title': 'Ticker'}}}
hood_gaps_live
Live view of the current off-hours session: which tickers trade at the largest premium/discount vs their last close. Returns 'regular' when the stock market is open.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_gaps_liveArguments', 'properties': {}}
hood_gaps_summary
Overnight and weekend premium/discount statistics for all tickers: average, min/max and latest value (bps). Tokens trade 24/5, so this measures the drift that builds up while NASDAQ is closed.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_gaps_summaryArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 14}}}
hood_off_hours_catalysts
Dated catalysts that can move token prices while NASDAQ is closed (nights/weekends) — flattened from all research cards, sorted by date. For agents watching overnight gap and weekend risk.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_off_hours_catalystsArguments', 'properties': {}}
hood_pools
Tracked Uniswap (Hood) pools: pool price per token, liquidity (USD) and deviation vs the Chainlink oracle price (dev_bps). Refreshed every 5 min.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_poolsArguments', 'properties': {}}
hood_quote
Minimal fast quote for one Hood ticker: Chainlink price (token + per-share), NASDAQ references (ref_last, ref_prev_close), basis/overnight bps, the most liquid pool's price/liquidity/deviation and oracle_paused/stale flags. Use for sizing and fill pricing instead of pulling the full 32-ticker snapshot.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_quoteArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}}}
hood_sector_rotation
Sector rotation context for Hood tokenized stocks (API-only tracker refreshed every 3h): market regime (risk_on|risk_off|mixed), an 11-SPDR sector score/label/flow board and a per-ticker join — sector score (0-100), label (inflow|interest|neutral|outflow_leaning|outflow), flow trend, theme matches + live basis. Answers where money is rotating and whether your token's sector is in inflow or outflow. tickers: CSV filter (empty = full Hood universe).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_sector_rotationArguments', 'properties': {'tickers': {'type': 'string', 'title': 'Tickers', 'default': ''}}}
hood_stock_research
Daily deep-research report: score (0-100), rating (strong_buy|buy|hold| avoid) and 4 analysis columns per Hood tokenized stock: thesis, dated catalysts (off_hours-flagged, verified earnings dates), financials (PE ttm/fwd, growth, margins, valuation_label: expensive|fair|discount|n_a), competitors (peers + positioning) and news_summary ([+]/[=]/[-] tagged). The api_data field carries exact API numbers (price, market cap, 1d/7d/30d, 52w, target mean/hi/lo, analyst rec counts) — use it when precision matters. With ticker: one card + live basis join; empty: full report.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_stock_researchArguments', 'properties': {'ticker': {'type': 'string', 'title': 'Ticker', 'default': ''}}}
hood_ticker_brief
One-call brief for a single Hood ticker: live quote (price, basis, pool, risk flags), research card (rating/score/thesis/catalysts), earnings risk, sector rotation context, best Reddit attention signal, 24h whale-flow summary and recent tagged news. Replaces 6-7 separate tool calls when an agent researches one ticker. Missing upstream sources fail-soft: the field is null.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'hood_ticker_briefArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}}}
market_events
Machine-readable news events (crypto + stocks). symbols is comma-separated (NVDA,BTC), event_type: listing|hack|regulation|earnings| etf|partnership|macro|liquidation|stablecoin|general. importance 0-100.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'market_eventsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'symbols': {'type': 'string', 'title': 'Symbols', 'default': ''}, 'event_type': {'type': 'string', 'title': 'Event Type', 'default': ''}, 'min_importance': {'type': 'integer', 'title': 'Min Importance', 'default': 0}}}
narrative_trade_signals
Deterministic candidates for the narrative-trader strategy: per Hood ticker the highest-alpha Reddit signal (alpha_score, evidence, themes), a signal bias (long_candidate = rising attention | avoid_or_fade = crowded trade | context = regime info), live Chainlink price, basis and risk flags. The `reason` field is the Reddit summary — carry it into status reports and the chart as the buy/sell rationale. Signals are NOT orders.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'narrative_trade_signalsArguments', 'properties': {'hours': {'type': 'integer', 'title': 'Hours', 'default': 48}, 'min_alpha': {'type': 'number', 'title': 'Min Alpha', 'default': 0.5}}}
oracle_deviation
Chainlink-vs-Uniswap pool price deviation (bps, sorted by absolute value). status: ok (<100), warning (100-500), alert (>500). Large deviations are normal in low-liquidity pools — check liquidity_usd.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'oracle_deviationArguments', 'properties': {'min_abs_bps': {'type': 'number', 'title': 'Min Abs Bps', 'default': 0}}}
partner_my_trades
Recent fills you've reported with partner_report_fill, most recent first.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'partner_my_tradesArguments', 'required': ['api_key'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'api_key': {'type': 'string', 'title': 'Api Key'}}}
partner_report_fill
Report a fill you already signed and broadcast yourself (via partner_swap_quote) so it appears in Otto's records. Otto does NOT verify the transaction on-chain in this version — it trusts the partner it already approved. side: buy | sell. tx_hash: the transaction hash from your own broadcast.
入力スキーマ
{'type': 'object', 'title': 'partner_report_fillArguments', 'required': ['api_key', 'ticker', 'side', 'tx_hash'], 'properties': {'qty': {'type': 'number', 'title': 'Qty', 'default': 0.0}, 'usd': {'type': 'number', 'title': 'Usd', 'default': 0.0}, 'side': {'type': 'string', 'title': 'Side'}, 'price': {'type': 'number', 'title': 'Price', 'default': 0.0}, 'reason': {'type': 'string', 'title': 'Reason', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'tx_hash': {'type': 'string', 'title': 'Tx Hash'}}}
partner_swap_quote
Get an UNSIGNED Rialto swap quote for an approved partner. YOU sign and broadcast the returned transaction yourself, with your own wallet's private key, on your own infrastructure — Otto never sees or holds your key and never submits anything on your behalf. api_key: the otto_pn_ key Otto's admin issued you directly. sell_token/buy_token: Hood token contract addresses (0x...). sell_amount: human units of sell_token (e.g. "25" USDG, not wei). taker: the wallet address that will actually sign and hold the position. Returns the raw Rialto quote including tx.to, tx.data, tx.value and min_buy_amount — everything needed to build and sign the transaction. After broadcasting, call partner_report_fill so the trade shows up in Otto's records.
読み取り専用 外部アクセスあり
入力スキーマ
{'type': 'object', 'title': 'partner_swap_quoteArguments', 'required': ['api_key', 'sell_token', 'buy_token', 'sell_amount', 'taker'], 'properties': {'taker': {'type': 'string', 'title': 'Taker'}, 'api_key': {'type': 'string', 'title': 'Api Key'}, 'buy_token': {'type': 'string', 'title': 'Buy Token'}, 'sell_token': {'type': 'string', 'title': 'Sell Token'}, 'sell_amount': {'type': 'string', 'title': 'Sell Amount'}, 'slippage_bps': {'type': 'integer', 'title': 'Slippage Bps', 'default': 50}}}
perp_funding
Hourly funding rates on tokenized-stock perps (Arcus + Lighter). Without params: latest value per venue+ticker pair (funding_apr_pct = annualized %). With ticker: history. Tokens trade 24/7 while the stock market does not — weekend/overnight funding is the price of that mismatch.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'perp_fundingArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 200}, 'venue': {'type': 'string', 'title': 'Venue', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker', 'default': ''}}}
perp_spot_basis
Perp mark price vs Hood on-chain spot (Chainlink per-share + pool), deviation in bps per ticker. A large |perp_vs_chainlink_bps| means the perp and spot price the same stock differently — a cross-venue opportunity or a stale-oracle signal. Fields are null for markets without a Hood spot.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'perp_spot_basisArguments', 'properties': {'min_abs_bps': {'type': 'number', 'title': 'Min Abs Bps', 'default': 0}}}
reddit_alpha_signals
Ticker alpha signals extracted from Reddit (novelty, mention velocity and cross-sub spread components). signal_type: ticker_alpha|crowded_trade| event_mispricing|squeeze_watch. tickers is comma-separated (NVDA,TSLA).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'reddit_alpha_signalsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'tickers': {'type': 'string', 'title': 'Tickers', 'default': ''}, 'min_alpha': {'type': 'number', 'title': 'Min Alpha', 'default': 0.3}, 'signal_type': {'type': 'string', 'title': 'Signal Type', 'default': ''}}}
reddit_market_regime
Current market regime inferred from Reddit chatter (e.g. mag7_only_rally, risk_on_call_chase) + confidence + flags to watch.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'reddit_market_regimeArguments', 'properties': {}}
report_agent_status
Status report from a trading agent — the live panel on ottodata.app/agents renders this stream. kind: run_started | signals | order_proposed | order_approved | order_filled | order_skipped | position_closed | run_summary | error. agent: gap-trader | narrative-trader. key: the operator's OTTO_AGENT_KEY value (wrong keys are rejected). Call at every runbook step; keep message short and human-readable (e.g. 'BUY 3 NVDA @ 184.20 limit — gap +82bps').
入力スキーマ
{'type': 'object', 'title': 'report_agent_statusArguments', 'required': ['key', 'kind', 'message'], 'properties': {'key': {'type': 'string', 'title': 'Key'}, 'kind': {'type': 'string', 'title': 'Kind'}, 'agent': {'type': 'string', 'title': 'Agent', 'default': 'gap-trader'}, 'run_id': {'type': 'string', 'title': 'Run Id', 'default': ''}, 'ticker': {'type': 'string', 'title': 'Ticker', 'default': ''}, 'message': {'type': 'string', 'title': 'Message'}, 'payload': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Payload', 'default': None}}}
service_status
Trust status of the Otto data layer: per-feed freshness (age_sec/stale), 24h tick coverage, NASDAQ reference availability and oracle-pause count. Call before making trading decisions — status: ok|degraded|down.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'service_statusArguments', 'properties': {}}
stable_risk
Deviation of USDG and other stablecoins from $1 parity (depeg risk, bps).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'stable_riskArguments', 'properties': {}}
token_flows
Large on-chain token transfers (whale flows): 32 stock tokens + USDG above the USD threshold. direction: mint|burn|transfer. Mints/burns show the tokenized stock supply changing (issuance/redemption).
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'title': 'token_flowsArguments', 'properties': {'hours': {'type': 'integer', 'title': 'Hours', 'default': 24}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'ticker': {'type': 'string', 'title': 'Ticker', 'default': ''}, 'min_usd': {'type': 'number', 'title': 'Min Usd', 'default': 0}, 'direction': {'type': 'string', 'title': 'Direction', 'default': ''}}}
追加
partner_my_trades
2026年9月17日7:57
追加
partner_report_fill
2026年9月17日7:57
追加
partner_swap_quote
2026年9月17日7:57
追加
competition_leaderboard
2026年9月17日7:57
追加
competition_my_portfolio
2026年9月17日7:57
追加
competition_paper_trade
2026年9月17日7:57
追加
execute_onchain_swap
2026年9月17日7:57
追加
report_agent_status
2026年9月17日7:57
追加
agent_performance
2026年9月17日7:57
追加
agent_position_book
2026年9月17日7:57
追加
hood_ticker_brief
2026年9月17日7:57
追加
hood_quote
2026年9月17日7:57
追加
narrative_trade_signals
2026年9月17日7:57
追加
funding_carry_signals
2026年9月17日7:57
追加
perp_spot_basis
2026年9月17日7:57
追加
perp_funding
2026年9月17日7:57
追加
gap_trade_signals
2026年9月17日7:57
追加
chain_deployments
2026年9月17日7:57
追加
chain_stats
2026年9月17日7:57
追加
service_status
2026年9月17日7:57
追加
hood_sector_rotation
2026年9月17日7:57
追加
hood_earnings_risk
2026年9月17日7:57
追加
hood_off_hours_catalysts
2026年9月17日7:57
追加
hood_stock_research
2026年9月17日7:57
追加
flow_summary
2026年9月17日7:57
追加
token_flows
2026年9月17日7:57
追加
market_events
2026年9月17日7:57
追加
stable_risk
2026年9月17日7:57
追加
oracle_deviation
2026年9月17日7:57
追加
hood_pools
2026年9月17日7:57