Skip to content

Trade Desk

STARKNET SEPOLIA ONLY

Trade Desk is the full-feature execution surface — currently live on Starknet Sepolia, coming to mainnet. For the mainnet MVP, see Portfolio Rebalancer and Reputation Passport.

The Trade Desk at /trade is where execution happens. It's the same product as Capital OS — Capital OS is where you plan, Trade Desk is where you execute. Opportunities flow in from market feeds and model signals, you pick one, choose an adapter route, simulate, and execute. The 13-circuit zkML bundle screens actions before they surface, and gate checks run against your trust context.

Proof-based screening isn't a uniform blocking layer on every route yet. Some routes are fully gate-critical, others are advisory. Treat the Trade Desk as a proof-aware execution workspace — the data is real, but the enforcement varies by route family.

What you see

When you open /trade, you're looking at an opportunity stream. Opportunities are categorized: swap, lp, lending, staking, and related strategies. You can sort and filter by yield, risk score, confidence, and strategy fit.

Selecting an opportunity opens its execution workspace — that's where you see adapter choices, privacy mode options, gate status, and simulation controls. This is the staging area before committing.

Adapter families

Adapters are the execution layer. Each adapter knows how to build calldata for a specific protocol or operation type. When you select an opportunity, the system shows you which adapters are available for it.

AdapterWhat it doesStatus
ekuboSwap and LP operations on Ekubo DEXLive — the primary execution path
limit_ordersConditional execution — "buy when price hits X"Live
lendingSupply, borrow, repay, withdraw on lending protocolsLive
stakingProtocol staking positionsLive
dcaDollar-cost averaging over timePlanned
Privacy variantsShielded execution when policy/flow requiresAvailable when privacy tier applies

If an opportunity doesn't have adapter metadata attached, the system falls back to a generic builder. This still works, but you lose protocol-specific optimization. When you have a choice, pick the specific adapter.

The execution flow

flowchart LR
  OPP["1. Pick opportunity"] --> ROUTE["2. Choose adapter"]
  ROUTE --> PRIVACY["3. Set privacy mode"]
  PRIVACY --> SIM["4. Simulate"]
  SIM --> SLIP["5. Set slippage"]
  SLIP --> EXEC["6. Execute + sign"]
  EXEC --> VERIFY["7. Verify receipt"]

Here's what actually happens at each step:

  1. Pick an opportunity from the stream. The zkML screening bundle has already evaluated it — risk score, anomaly detection, yield optimality are computed before you see it.

  2. Choose the adapter route. This determines the execution path. An Ekubo swap uses different calldata than an LP add. If multiple adapters apply, pick the one that matches your intent.

  3. Set privacy mode if applicable. Most operations run unshielded by default. If the opportunity supports private execution, you'll see the option here.

  4. Simulate. This is non-negotiable for first-timers. The simulation dry-runs the calldata and shows you price impact, fees, expected output, and any warnings. If the numbers look wrong, back out.

  5. Set slippage explicitly. The system doesn't pick a default for you on swaps. Choose 0.5%, 1%, or 2% based on market conditions and your risk tolerance. Tighter slippage means your tx may revert if the price moves; looser means you accept more price impact.

  6. Execute. Your wallet prompts for a signature. Once signed, the transaction goes to chain. This is the "go" button.

  7. Verify. After confirmation, the Trade Desk refreshes to show the result. Check the tx hash on Voyager for on-chain details. If a proof was generated, it's registered in the receipt trail.

When things go wrong

What you seeWhat's probably happeningWhat to do
No opportunities showingMarket feed connectivity issue, or backend polling hasn't refreshedCheck backend health at /health, wait 60s and refresh
No adapter choices for an opportunityOpportunity is missing adapter metadataThe fallback builder will work, but check if the opportunity type is supported
Simulation succeeds but execution failsStale calldata, gate mismatch, or wallet signing errorRe-check /profile?tab=trust for gate warnings, re-simulate with fresh state
Tx confirmed but UI still shows "pending"Indexer lag or reconciliation delayCheck the tx hash on Voyager — it may have succeeded on-chain

For endpoint-by-endpoint behavior, check the API Reference. For broader debugging, see Troubleshooting.

Built by Obsqra Labs