Agent guide
Research with Omni. Decide locally. Execute through one explicit account scope.
A trading agent should not merge data purchase and order authority into one opaque step. The committed examples buy or simulate bounded Omni Market Risk, apply deterministic local guardrails, and then use a broker-specific preview, a testnet-pinned Hyperliquid lifecycle, or a vault-scoped gateway. Live or funded submission remains disabled by default.
At a glance
- Research
- HTTP or MCP Select transport without changing the decision contract.
- Default
- HOLD / dry-run Weak signals and missing live authorization do not submit.
- Authority
- Broker-owned Omni never receives brokerage credentials or order authority.
Why It Matters
What traders and researchers should take away
- Research failures cannot silently become a neutral or bullish signal.
- A deterministic guardrail makes the boundary between model/tool output and order submission reviewable.
- Broker preview, not an Omni receipt, remains the final executable contract for an order.
How it works
What the product uses behind the scenes
- examples/agents/research.ts loads the same Market Risk schema through x402 REST or native MCP.
- decideFromMarketRisk returns HOLD when evidence is incomplete, confidence is weak, or funding is extreme.
- MAX_ORDER_NOTIONAL_USD caps broker order size independently of the x402 research price.
- Coinbase Advanced Trade uses authenticated preview before submission; the direct Robinhood Crypto example returns a signed payload without transmitting it.
- Robinhood Agentic Trading is a separate OAuth-based MCP integration at https://agent.robinhood.com/mcp/trading and can place orders only in the dedicated Agentic account.
- Hyperliquid examples are testnet-pinned; vault examples route through a builder-enforcing gateway and never accept a caller builder override.
- IBKR remains an invite-only paper beta and is not exposed by the public execution SDK.
Notes
Things to know
- Examples are integration patterns, not profitable strategies or investment advice.
- Broker credentials are required only by the corresponding broker client and must never be sent to Omni.
- LIVE_TRADING=true can submit a real order when all broker requirements pass; never enable it during initial setup.
- An Omni payment receipt proves research settlement, not user approval to trade.
Guide
Steps
- Verify research in no-spend mode
Run the SDK unit, boundary, and live no-spend suites before adding a funded buyer key.
- Buy and validate one Market Risk result
Use x402 REST or MCP, enforce a 0.010 USDC per-call ceiling, and reject stale or incomplete components.
- Apply local decision policy
Turn the typed result into HOLD, BUY, or SELL using deterministic confidence, funding, and notional limits.
- Preview or dry-run at the broker
Keep
LIVE_TRADING=false; inspect Coinbase preview errors or the Robinhood signed payload. - Require explicit production approval
Only enable live submission with least-privilege broker keys, broker-side limits, monitoring, and human approval for material orders.
Safety
Before using this workflow
- Use separate secrets for the x402 buyer wallet and each broker.
- Keep research spend limits and order-notional limits independent.
- Log decisions and receipt identifiers, never private keys or broker secrets.
- Stop when settlement, freshness, broker preview, account scope, or order state is uncertain.
Next
Open the workflow
- Read the SDK setup Build and test the source package.
- Open broker-specific notes Review the research/execution boundary.
Use the same decision input over HTTP or MCP
Transport selection should not change the schema consumed by policy.
OMNI_RESEARCH_TRANSPORT=x402
# or: OMNI_RESEARCH_TRANSPORT=mcp
EVM_PRIVATE_KEY=0x...
X402_MAX_PAYMENT_USD=0.010
TRADING_SYMBOL=BTC
MAX_ORDER_NOTIONAL_USD=25
LIVE_TRADING=false- The research helper returns MarketRisk plus payment evidence for either transport.
- Keep LIVE_TRADING=false while validating account scope, preview, and payload construction.
- The x402 maximum protects one research call; MAX_ORDER_NOTIONAL_USD protects one broker order.
Run Coinbase or Robinhood in guarded mode
Both examples require deliberate secrets and remain non-live unless explicitly enabled.
npm run example:coinbase
npm run example:robinhood
# Do not set LIVE_TRADING=true during setup.- Coinbase dry-run still calls its authenticated preview endpoint and requires Coinbase credentials.
- The direct Robinhood Crypto dry-run signs and prints the order payload but does not transmit the order; it is not Robinhood Trading MCP.
- A HOLD decision ends before broker submission in both examples.
Authority model
Each subsystem receives only the authority required for its role.
- Omni seller: receives a standard payment proof and returns bounded public-market research.
- Buyer policy/wallet: decides whether a resource, amount, asset, network, and payee are allowed.
- Decision code: validates research and produces a bounded recommendation or HOLD.
- Broker client: owns account access, preview, and order transmission under separate credentials.
- User/operator: owns live-trading authorization, material-notional approval, monitoring, and recovery.
Hyperliquid testnet and managed-vault alternatives
Choose the package that matches the intended account scope.
- Use omni-universe-sdks/examples/testnet-agents for personal testnet strategy demonstrations with no mainnet endpoint.
- Use hl-vault-sdk for a public managed vault, external terminal, delegated vault agent, local MCP, or Python service.
- Use the personal Private TWAP only from Omni’s testnet personal-master scope; vault TWAPs remain on the vault executor.
- Do not infer public IBKR automation from the terminal beta: paper access is invite-only and live execution is separately gated.
References
Implementation references
Shared research helper
https://github.com/InTheta/omni-universe-sdks/blob/main/packages/typescript/examples/agents/research.tsHTTP/MCP transport selection and typed Market Risk input.
Coinbase example
https://github.com/InTheta/omni-universe-sdks/blob/main/packages/typescript/examples/agents/coinbase-agent.tsPreview-first Coinbase Advanced Trade workflow.
Robinhood example
https://github.com/InTheta/omni-universe-sdks/blob/main/packages/typescript/examples/agents/robinhood-agent.tsSigned dry-run and guarded Robinhood Crypto workflow.
Robinhood Agentic Trading overview
https://robinhood.com/us/en/support/articles/agentic-trading-overview/Official Trading MCP endpoint, account scope, setup, accessible account data, and risk boundary.