accueil / serveurs / Géo & Temps / com.algotrada.cubicle/cubicle
com.algotrada.cubicle/cubicle
serveur MCP (Model Context Protocol) · cubicle 1.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.algotrada.cubicle/cubicle est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.algotrada.cubicle/cubicle » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 42 outils
- account≈ 122 tokens
The caller's Cubicle account: their tier (free, Cubicle Operators holder, pro-50, max premium-99), their plan and until when, and every capability with whether it is open and which tier opens it. Call it before telling a trader what they can or cannot do.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "account", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - catalogue≈ 116 tokens
The whole Cubicle API as data: the studio's eight-state machine and what each gate asks, every tool with the tier that opens it (and whether it is open to the caller), and the flows. Call it first when asked what Cubicle can do.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "catalogue", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - chart_image≈ 294 tokens
The deck's own chart plate for one market, timeframe and window, rendered server-side from the same geometry the screen uses (bars, indicators, the envelope cone when its calibration permits) as a PNG you can look at, together with the chart_state JSON for the same window. The picture is for shape; the numbers are in the JSON — quote those, never read them off the image. Past windows only; at most 600 bars.
Paramètres, retour & exemple (5)
Paramètrestf· string · requis · 15s | 1m | 5m | 1h
timeframeto· string · requis
window end, ISO-8601 UTC, in the pastfrom· string · requis
window start, ISO-8601 UTCmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the marketindicators· array · optionnel
indicator ids to draw; defaults to ema20 and envelope
Exemple d'appel{"name": "chart_image", "arguments": {"tf": "15s", "to": "texte", "from": "texte", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - chart_state≈ 341 tokens
What the deck's chart would show for one market, timeframe and window, as ONE JSON object computed in code: the bars (count, first and last, the last candle), the indicators drawn, the trader's own marked levels and zones (theirs — they may be used as levels the trader gave), the envelope under its draw gate and its facts, and the fact sheet of the window (open, close, high, low, range, change, volume, session). Use it instead of reading pixels: every number is measured, not read. Past windows only; at most 600 bars.
Paramètres, retour & exemple (5)
Paramètrestf· string · requis · 15s | 1m | 5m | 1h
timeframeto· string · requis
window end, ISO-8601 UTC, in the past (the logical clock for a replay)from· string · requis
window start, ISO-8601 UTCmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the marketindicators· array · optionnel
indicator ids to include, e.g. ["ema20","vwap","envelope"]; defaults to ema20 and envelope
Exemple d'appel{"name": "chart_state", "arguments": {"tf": "15s", "to": "texte", "from": "texte", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - desk_read≈ 186 tokens
The house Nemotron desk (llm-nemotron-fest) as it is: its last turn (every 30 minutes), each market's decision and which reader decided it (the vote rule the Nemotron answers, or Jev), the facts it read, and the venue's own positions with realised and unrealised PnL. Composed from the desk's log and the venue, no model asked; a turn older than 45 minutes is marked stale. Not a forecast.
Paramètres, retour & exemple (1)
Paramètresmarket· string · optionnel · BTC | ETH | SOL
one market, or every market when absent
Exemple d'appel{"name": "desk_read", "arguments": {"market": "BTC"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - digest≈ 176 tokens
FREE, no key: the sha256 (or keccak256) digest of a text, as 64 hex characters, computed here. Agents, registries and the coordination layer use it to check that this server answers with content they can verify by code; it is also a plain utility. Nothing is stored.
Paramètres, retour & exemple (2)
Paramètrestext· string · requis
the text to hash (UTF-8)algorithm· string · optionnel · sha256 | keccak256
sha256 (default) or keccak256
Exemple d'appel{"name": "digest", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - draw≈ 372 tokens
Draw on the trader's chart, as they ask: a line (two points), a box (two corners), a path (2 to 24 points moving forward in time: a zigzag of legs) or a note (one point and a short word). Every point is a bar's time (ISO-8601 UTC, in the past) and a price the trader gave or the tape tool returned; never invent a level. Inks: parchment, gold, teal, brick (lime is the fire's and is refused). The drawing appears on their chart and in any film of that window.
Paramètres, retour & exemple (5)
Paramètresink· string · optionnel · parchment | gold | teal | brick
the inkkind· string · requis · line | box | path | note
what to drawtext· string · optionnel
a short word beside it (required for a note), at most 48 charactersmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the marketpoints· array · requis
the anchors, earliest first
Exemple d'appel{"name": "draw", "arguments": {"kind": "line", "market": "NQ", "points": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - drawings≈ 157 tokens
The trader's own drawings on one market's chart: lines, boxes, paths and notes, each anchored at bars (UTC times) and prices. They are things the trader drew (or asked you to draw), not signals; a film of the window lets each one appear as the clock reaches it.
Paramètres, retour & exemple (1)
Paramètresmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market
Exemple d'appel{"name": "drawings", "arguments": {"market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - erase≈ 115 tokens
Remove one of the trader's drawings by its id (from the drawings tool). Only when they ask.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
the drawing's id as the drawings tool lists it (sk_ and 16 hex characters)
Exemple d'appel{"name": "erase", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - film≈ 538 tokens
Seal a past window of the tape into a FILM: the bars replayed one by one with the trader's drawings and marked levels, optionally the structure computed over the bars (pivots, legs, swings and the range they share, none drawn before the bar that confirmed it) and a rehearsed machine's trades. Returns the film's public link, where it plays and can be downloaded as a video. 24 to 360 bars; the window must be in the past. A film is a replay of what printed: say so, and never present it as a forecast.
Paramètres, retour & exemple (14)
Paramètrestf· string · requis · 15s | 1m | 5m | 1h
timeframeto· string · requis
window end, ISO-8601 UTC, in the pastfrom· string · requis
window start, ISO-8601 UTCmarks· boolean · optionnel
include the trader's marked levels (default true)title· string · optionnel
a short name beside the wordmarkkicker· string · optionnel
a short line at the right, e.g. price → structuremarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the marketmachine· boolean · optionnel
include the trades of the trader's rehearsed machine on this market, labelled a rehearsalpalette· string · optionnel · house | engraving | tide
the inksseconds· number · optionnel
length, 8 to 40 seconds (default 18)drawings· boolean · optionnel
include the trader's drawings (default true)headline· string · optionnel
the headline's first part (drawn in parchment), at most 44 charactersstructure· boolean · optionnel
draw the computed structure and name the chapters after itheadline_gold· string · optionnel
the headline's second part (drawn in gold)
Exemple d'appel{"name": "film", "arguments": {"tf": "15s", "to": "texte", "from": "texte", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - follow≈ 365 tokens
Follow a trading model (max plan): creates the follow record — the model, your sizing (fixed_notional usd, or proportional bps of your balance), your caps (max_notional_usd, max_open_positions, max_daily_loss_usd, markets) and optionally the wallet your own runner will sign with. Validated exactly as follow_quote; one active follow per model, a new one supersedes it. Returns the record, its digest (the coordination record follow.created) and the attribution every mirror of it is placed under (copy:<you>:<model>). Nothing is traded by this call: your own runner mirrors fills under this record, and it can be stopped with unfollow at any time.
Paramètres, retour & exemple (4)
Paramètrescaps· object · requis
{"max_notional_usd":100,"max_open_positions":3,"max_daily_loss_usd":40,"markets":["BTC"]}model· string · requis
the model's attribution from the models toolsizing· object · requis
{"kind":"fixed_notional","usd":50} or {"kind":"proportional","bps":200}follower_wallet· string · optionnel
the 0x address your runner signs mirrors with (optional now; required once the venue enforces per-order auth)
Exemple d'appel{"name": "follow", "arguments": {"caps": {}, "model": "texte", "sizing": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - follow_quote≈ 281 tokens
Quote following a trading model (max plan): checks the model is live and followable, validates the follower's sizing (fixed_notional usd, or proportional bps of their balance) and caps (max_notional_usd, max_open_positions, max_daily_loss_usd, markets the model trades), and shows what one mirror would be at the given balance. Creates nothing and moves nothing.
Paramètres, retour & exemple (4)
Paramètrescaps· object · requis
{"max_notional_usd":100,"max_open_positions":3,"max_daily_loss_usd":40,"markets":["BTC"]}model· string · requis
the model's attribution from the models toolsizing· object · requis
{"kind":"fixed_notional","usd":50} or {"kind":"proportional","bps":200}balance_usd· number · optionnel
the follower's balance, to show a mirror's size (optional)
Exemple d'appel{"name": "follow_quote", "arguments": {"caps": {}, "model": "texte", "sizing": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - follows≈ 101 tokens
Your own follow records (max plan): every follow you created, active, stopped or replaced, with its digest and attribution. Yours only — no follower ever sees another's.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "follows", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - forecast≈ 321 tokens
The envelope the forecast sidecar had issued for one market and timeframe by a given time: a MAGNITUDE band (how far price may travel over the next 24 bars, as two prices and a width in ATR), the odds of a move of 0.5, 1 and 2 ATR within 6, 12 and 24 bars, and its measured calibration (ece, n, band coverage). It carries NO direction — there is no side, no median, and the band is symmetric about the last close by construction; say so, and never turn it into 'up' or 'down'. When calibration reads unmeasured or uncalibrated the deck does not draw it and you should say the band is not yet trusted. Facts only, computed in code; nothing here is a recommendation.
Paramètres, retour & exemple (3)
Paramètresat· string · optionnel
ISO-8601 UTC time the envelope must have been issued by (defaults to now); for a replay, the logical clocktf· string · requis · 5m | 1h
timeframe the sidecar forecastsmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market
Exemple d'appel{"name": "forecast", "arguments": {"tf": "5m", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - forge≈ 158 tokens
The studio machine's FORGED move: compiles the trader's strategy from the gates the tape can measure. The studio refuses it unless the strategy has passed READ, CLARIFIED and EXPRESSIBLE — when refused, tell the trader the move the studio is waiting for (it is in the result).
Paramètres, retour & exemple (1)
Paramètresintent· string · requis
the rule in the trader's words, every part included
Exemple d'appel{"name": "forge", "arguments": {"intent": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - fund_with_card≈ 190 tokens
A link to buy USDG on Robinhood Chain with a card, bank transfer or Apple/Google Pay through MoonPay, paid straight into the trader's own wallet (Cubicle never holds the money). Then call onboard again: the next step is funding the vault. Answers plainly when card purchases are not switched on yet.
Paramètres, retour & exemple (2)
Paramètresowner· string · requis
the 0x address of the trader's wallet on Robinhood Chainamount_usd· number · optionnel
USD to spend (20 to 10,000; default 100)
Exemple d'appel{"name": "fund_with_card", "arguments": {"owner": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - grade≈ 148 tokens
Grade a forge with Jev (RUBRIC_v1): code checks the facts first, then Jev answers whether the code does what the trader said. Spends one of the trader's Jev decisions (trial, plan or their own key). It judges fidelity to their words, never profitability.
Paramètres, retour & exemple (1)
Paramètresseed_hash· string · requis
the seed hash forge returned
Exemple d'appel{"name": "grade", "arguments": {"seed_hash": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - image≈ 146 tokens
Look at a chart the trader attached (the id is in the studio state). Read what is on it — instrument, timeframe, levels, the pattern they point at — and say plainly that numbers read off a picture are READ, not measured; check the ones that matter against the tape.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
the attached image's id
Exemple d'appel{"name": "image", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - model_record≈ 151 tokens
One trading model's record from the venue's first-in-first-out paired closes: realized PnL, maximum drawdown, win rate, per market, and the window. Always say what the record is not: a forecast, or what a follower would have made.
Paramètres, retour & exemple (1)
Paramètresmodel· string · requis
the model's attribution, from the models tool (starts with llm-)
Exemple d'appel{"name": "model_record", "arguments": {"model": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - models≈ 138 tokens
The trading LLM models on the Taifoon venue a trader can study and, on the max plan, follow: each with its status (trading or stopped, derived from its last trade), markets, fills, realized PnL and win rate — all read from the venue, never from a model's words. Simulated market-maker and flow actors are never listed.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "models", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - my_vaults≈ 113 tokens
The caller's trading vaults, read from the chain: each with whether its funds are devnet (test money) or mainnet (real), what is in it, what is free, what is set aside as margin, the mandate and who administers it.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "my_vaults", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - onboard≈ 229 tokens
Where a wallet stands on the way to a funded Cubicle vault, read from the chain (gas, USDG in the wallet, its accounts, the factory's invite gate), and the ONE next step with the tool that does it: connect, add gas, open a vault (vault_prepare), buy USDG with a card (fund_with_card) or send it, fund the vault (vault_prepare), or ready. Call it first, and again after every step the trader signs.
Paramètres, retour & exemple (2)
Paramètreschain· number · optionnel · 4663 | 36927
4663 Robinhood Chain (real money, the default) or 36927 the devnet (test money)owner· string · optionnel
the 0x address of the trader's wallet (defaults to the wallet linked to this principal)
Exemple d'appel{"name": "onboard", "arguments": {"chain": 4663, "owner": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - plan_claim≈ 261 tokens
Claim a plan you paid for on chain: give the payment's transaction hash and the paying wallet's EIP-191 signature over the exact message the plans tool returns ("Cubicle plan claim\nagent: <your agent id>\ntx: <tx hash>"). The door reads the transfer to the treasury itself and opens the plan for this principal; only the wallet that paid can claim it. Needs your Cubicle key.
Paramètres, retour & exemple (3)
Paramètreschain· string · optionnel · robinhood
the chain the payment was made on (Cubicle takes plans on Robinhood Chain only)tx_hash· string · requis
the payment transaction's hash (0x + 64 hex)payer_signature_hex· string · requis
the paying wallet's EIP-191 signature (0x + 130 hex) over the claim message
Exemple d'appel{"name": "plan_claim", "arguments": {"tx_hash": "texte", "payer_signature_hex": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - plans≈ 220 tokens
The Cubicle plans (price per 30 days, what each includes) and exactly how to pay on Robinhood Chain in USDG: the treasury, the token, and — when the subscription vault is live — the two wallet transactions (approve, subscribe) that renew automatically every 30 days. Nothing here moves money: the trader signs in their own wallet.
Paramètres, retour & exemple (2)
Paramètresplan· string · optionnel · pro-50 | premium-99
a plan id (pro-50 or premium-99) to prepare the payment steps forwallet· string · optionnel
the 0x address of the wallet that will pay — needed for the renewing subscription, which is authorized for that wallet only
Exemple d'appel{"name": "plans", "arguments": {"plan": "pro-50", "wallet": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - price≈ 175 tokens
FREE, no key, no sign-in: the tape's latest price for one market (NQ, ES, YM, BTC, ETH or SOL) with the time of that 1-minute close and whether the tape is stale. Use it whenever an agent needs a current price; it is the same tape every Cubicle vault checks its orders against. For a window of candles use tape (needs a key).
Paramètres, retour & exemple (1)
Paramètressymbol· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market, by ticker
Exemple d'appel{"name": "price", "arguments": {"symbol": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - rehearse≈ 201 tokens
Walk a forged machine over the real tape with the canonical stepper (the last week by default): how many trades it took, the R, and a comparison with a random null. Call it after a forge when the trader wants to know whether the rule actually fires. A rehearsal is evidence about the past, never a forecast.
Paramètres, retour & exemple (2)
Paramètresmarket· string · optionnel · NQ | ES | YM | BTC | ETH | SOL
the market to walk, defaults to the one the trader namedseed_hash· string · requis
the seed hash forge returned
Exemple d'appel{"name": "rehearse", "arguments": {"seed_hash": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - replay_open≈ 365 tokens
Put the trader's chart and its time compressor on a past window: the market, the window, the speed to play it at and, optionally, the moment to hold on (a trade, a sweep, a touch of a level). The studio shows a card; pressing it opens the chart there, held and ready to play, with a way back to the studio. Use it whenever you talk about what happened in a window: show it on the chart instead of only describing it. Past windows only, ten minutes to thirty days; a replay shows what printed, never a forecast.
Paramètres, retour & exemple (6)
Paramètresto· string · requis
window end, ISO-8601 UTC, in the pastfrom· string · requis
window start, ISO-8601 UTCnote· string · optionnel
one short sentence shown beside the card: what to watch for (at most 140 characters)focus· string · optionnel
optional: the moment inside the window to hold the clock at, ISO-8601 UTCspeed· string · optionnel · 60 | 600 | 6000 | max
how fast to play it: 60, 600 or 6000 times real time, or max (default 600)market· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market
Exemple d'appel{"name": "replay_open", "arguments": {"to": "texte", "from": "texte", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - replay_record≈ 247 tokens
Read back what happened in the trader's last replay of one market: every beat on the tape, each of their strategies' trades and state changes, and their own moves (travel, speed, seek), in order with their times, plus the recording's hash (the same at any replay speed). Use it after replay_open, or when the trader asks what they just watched, to answer from what was recorded rather than from memory.
Paramètres, retour & exemple (2)
Paramètreskinds· array · optionnel
only these sources or kinds (default: all)market· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market
Exemple d'appel{"name": "replay_record", "arguments": {"market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - reverse≈ 259 tokens
Reverse-engineer what the trader POSTED before saying anything about it: a rule in words, a pasted Pine script (read statically, never run) or a chat transcript. Returns a dossier: the route (what it is and the first tool), findings each marked observation, inference or unknown with an id (E1, E2) and what would settle each unknown, the checklist (market, bar size, trigger, direction, stop, target, stand aside, numbers match the tape, run over recorded bars) as answered, partial or unresolved, and the ceiling (hypothesis until rehearsed). Cite the ids; never present an inference or an unknown as a fact. For an attached chart use the image tool first.
Paramètres, retour & exemple (1)
Paramètrestext· string · requis
what the trader posted, verbatim: the rule, the Pine source or the transcript
Exemple d'appel{"name": "reverse", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - skill_read≈ 130 tokens
Read one skill's method (its SKILL.md) — only the methodology and engineering skills are readable; strategy, lens, pillar and copy skills are sealed and will be refused.
Paramètres, retour & exemple (1)
Paramètresname· string · requis
the skill's name as the skills tool lists it
Exemple d'appel{"name": "skill_read", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - skills≈ 101 tokens
List the Cubicle skill bank: every skill's name, family, grade and status (runnable / stub / concluded). A stub is a promise, not a capability — say so when you cite one.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "skills", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - strategies≈ 144 tokens
The strategies anyone can rent to run a Cubicle spot vault (today: accumulate, which buys a fixed amount of ETH or BTC on an interval up to a budget and never sells): what each does, its parameters, the venues and assets, the limits the vault itself enforces, the fee, how to rent it, and its honest status (not live with real funds yet).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "strategies", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - strategy_quote≈ 184 tokens
A live quote for one accumulate buy on Robinhood Chain: what a USD amount of USDG buys of ETH or BTC on the best Uniswap route right now, the tape's price, the cost against the tape in bps, and whether the vault's own price rule (at most 1% worse than the tape) would accept it. A static call: nothing is signed or sent.
Paramètres, retour & exemple (2)
Paramètresusd· number · requis
USD of USDG to spendasset· string · requis · ETH | BTC
the asset
Exemple d'appel{"name": "strategy_quote", "arguments": {"usd": 1, "asset": "ETH"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - strategy_steps≈ 280 tokens
The steps the trader's last tested strategy took on one market, as the test engine reported them: each step's time, the move (ready to in a trade, and so on), the conditions true at that bar, the trade it opened or closed, and the watched items' values at that bar. Also, per watched item, its average at the entries of winning trades and of losing trades. Use it to answer 'what was the RSI when it bought', 'why did it enter there', 'what do the winners have in common'. These are past bars of one tested week: a description, never a forecast and never advice.
Paramètres, retour & exemple (2)
Paramètresonly· string · optionnel · trades | all
trades = only the steps that opened or closed a trade (default); all = every stepmarket· string · optionnel · NQ | ES | YM | BTC | ETH | SOL
the market the strategy was tested on (defaults to the newest test)
Exemple d'appel{"name": "strategy_steps", "arguments": {"only": "trades", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - stream_key≈ 306 tokens
Cubicle's paid signal stream on the Taifoon coordination layer (pro-50 or premium-99): the desks' world-clock signals and Kronos forecasts arrive as kind signal from venue cubicle, sealed with a topic key per UTC day. Register your X25519 PUBLIC key (make a pair with `npx -y @taifoon-io/sdk coord keygen --out FILE`; the secret never leaves your machine) and the day's keys are sealed to it on the stream; you get your holder id, the stream URL and the one SDK command that prints the signals decoded. Call again to have today's keys re-sent; action forget stops it. Ticks and outcomes are public; anyone without a key sees the signal bodies as ciphertext.
Paramètres, retour & exemple (2)
Paramètresaction· string · optionnel · register | status | forget
register (default: register or refresh your key), status (what is registered, nothing changes) or forget (remove your key)x25519· string · optionnel
your X25519 public key: 0x and 64 hex characters (needed for register)
Exemple d'appel{"name": "stream_key", "arguments": {"action": "register", "x25519": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - studio_move≈ 242 tokens
Move the trader's rule through the studio's state machine when forge is refused: score_parts (Jev scores clarity — needs the trader's own TypeSafe key), accept_parts (the trader accepts the rule as read, without a Jev score), choose_coverage with choice approximate (build from the gates the tape can measure) or stop, reset (start over). Ask the trader before accepting or choosing for them; the studio decides every gate, this only performs the move they chose.
Paramètres, retour & exemple (2)
Paramètresmove· string · requis · score_parts | accept_parts | choose_coverage | reset
the movechoice· string · optionnel · approximate | stop
for choose_coverage: approximate or stop
Exemple d'appel{"name": "studio_move", "arguments": {"move": "score_parts"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - tape≈ 328 tokens
Read real candles from the Taifoon tape for one market. Use it to ground an answer in what the market actually did in a past window — never to predict. NQ is not continuous (weekend halt, 21:00 UTC daily break). A past window is SEALED: its bars never change, so cache it. The same tape is open over plain HTTP with no key: GET https://clob.taifoon.dev/tape/v1/candles/{market}/{tf}?from=&to= with unix SECONDS and a User-Agent that names you (OpenAPI: https://www.taifoon.io/clob/openapi.yaml). It is the tape the coordination layer's conformance check replays, so what you read here is what the judge reads.
Paramètres, retour & exemple (4)
Paramètrestf· string · requis · 15s | 1m | 5m | 1h
timeframe (the time machine serves these; build a 15-minute range from 1m or 5m bars)to· string · requis
window end, ISO-8601 UTC, in the pastfrom· string · requis
window start, ISO-8601 UTCmarket· string · requis · NQ | ES | YM | BTC | ETH | SOL
the market
Exemple d'appel{"name": "tape", "arguments": {"tf": "15s", "to": "texte", "from": "texte", "market": "NQ"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - unfollow≈ 132 tokens
Stop following a model at once (any tier may stop): the active follow record is marked stopped and kept; open mirror positions stay yours to manage. Returns the stopped record, or says there was none.
Paramètres, retour & exemple (1)
Paramètresmodel· string · requis
the model's attribution
Exemple d'appel{"name": "unfollow", "arguments": {"model": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - vault_prepare≈ 576 tokens
The wallet steps for a Cubicle vault as UNSIGNED transactions and EIP-712 typed data for the owner's own wallet. Open: call without vault for the transaction that opens it. Fund and hire: call again with the new vault's address (from my_vaults) for allow + deposit and the mandate to sign. Withdraw: withdraw_shares queues shares, then claim_shares pays what the vault's free funds cover to the owner. Chain 4663 is Robinhood Chain (real USDG; open to any wallet since 2026-10-07, no deposit cap; the contracts are not externally audited, so deposit only what you can afford to lose); 36927 is the devnet (test money). Signs and sends nothing.
Paramètres, retour & exemple (11)
Paramètreskind· string · optionnel · spot | futures | funding
what the account is for: spot (trades on Uniswap today) or futures (margin; settles when the venue sends statements)name· string · optionnel
a name for the vaultchain· number · optionnel · 4663 | 36927
4663 Robinhood Chain (real money) or 36927 the devnet (test money); defaults to the devnetowner· string · requis
the 0x address of the wallet that owns (or will own) the vaultvault· string · optionnel
the vault's 0x address (every call after the first)market· string · optionnel · ETH | BTC
spot administrators only: the market it buysmargin_usd· number · optionnel
margin vaults only: the most the mandate may ever lose (second call)deposit_usd· number · optionnel
USD of the stable to deposit (second call)claim_shares· string · optionnel
withdrawal step two: whole shares to claim (read claimableRedeemRequest(0, owner) on the vault)administrator· string · optionnel
who administers the vault under the mandate (second call), e.g. llm-nemotron-dualwithdraw_shares· string · optionnel
withdrawal step one: whole shares to queue (read balanceOf(owner) on the vault)
Exemple d'appel{"name": "vault_prepare", "arguments": {"owner": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - watch_fields≈ 195 tokens
What a strategy test reports at every step the strategy takes: the trader's current list, and the whole vocabulary, grouped by indicator (price, volume, RSI 14, EMA 20, EMA 60, VWAP, the Bollinger bands, the 20 bar range, bar size, the 50 bar mean, the clock). Each indicator has named fields (the bands have boll_up and boll_dn, the range has range_high, range_low and range_pos). An item may also be an expression over the fields, such as close - ema20 or rsi14 > 50. Call it before watch_set, and when the trader asks what can be tracked.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "watch_fields", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - watch_set≈ 241 tokens
Set what the trader's strategy tests report at every step: up to 8 items, each a field id from watch_fields or an expression over those fields (numbers, + - * / and brackets, optionally one comparison with < > <= >=). This replaces the list. It applies to the NEXT test, so offer to rehearse again afterwards. An item that cannot be read is refused by name and the rest are kept. Use it when the trader says what they want tracked ('watch the RSI and how far price is from the EMA'): translate their words into fields; never invent a field.
Paramètres, retour & exemple (1)
Paramètresitems· array · requis
field ids or expressions, in the order they should be shown
Exemple d'appel{"name": "watch_set", "arguments": {"items": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - workflow_read≈ 171 tokens
Read a trading idea the way the studio does: the deterministic reader fills the 7 parts (markets, trigger, direction, stand aside, stop, target, session) from the trader's OWN words and says which required parts are still missing. Use it before restating or forging a rule; never fill a part the trader did not say.
Paramètres, retour & exemple (1)
Paramètrestext· string · requis
everything the trader has said about the rule, in their words
Exemple d'appel{"name": "workflow_read", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».