-
-
A2A Trade landing page: a governed AI trading pocket where Aiden can operate a small $100 pocket but cannot touch Ken's main portfolio.
-
Live E*TRADE positions: Aiden Pocket holdings are separated from the protected SPCX main holding, which remains read-only.
-
Official E*TRADE OAuth connection flow. A2A Trade never asks for the broker password and keeps execution behind a governed policy gate.
-
Aiden Pocket app dashboard showing equity, cash, mission range, guardrails, E*TRADE connection, and latest agent run.
-
E*TRADE order log showing real broker-previewed Aiden Pocket trades with execution status and audit context.
-
Ask Aiden demo: even with an approval phrase, chat only produces a governed preview.
Inspiration
Most agentic trading demos show what an AI can do. A2A Trade is built to show what an AI provably cannot do: it cannot touch the protected main portfolio, cannot exceed the $100 pocket, cannot place market/options/margin/short orders, and cannot bypass broker preview or audit logging.
As a United States Navy veteran, my larger dream is to use ChatGPT and governed AI systems to better support and improve the lives of veterans. A2A Trade is only the beginning: a small, real example of how AI can help ordinary people make decisions while staying inside clear safety boundaries.
The project was built for a normal person who wants to experiment with AI on real money without turning their brokerage account into a casino.
What it does
A2A Trade is a governed GPT-5.6 trading pocket connected to a live E*TRADE account. Aiden reads live market data, sizes small limit orders, previews them with the broker, runs deterministic guardrails, places only allowed orders, and writes every action to an audit trail.
The public app lets judges use the Ask tab to talk to Aiden. It can answer grounded market questions with live quotes and web sources, convert explicit instructions like "buy $20 of NIO" into a governed order proposal, and refuse unsafe requests like "sell all my SPCX" or orders above the hard cap.
How we built it
The app uses Next.js, TypeScript, Vercel, Supabase, OpenAI Responses API, Yahoo Finance market data, and E*TRADE OAuth 1.0a. The key design decision is that safety lives in code, not in a prompt: protected-symbol refusal and order validation happen in the broker adapter before any request reaches E*TRADE.
How GPT-5.6 is used
GPT-5.6 is the reasoning and language layer. It writes the multi-agent trading desk voice from real run events, parses chat-to-trade instructions into structured order intent, answers grounded market questions, and produces morning brief/copilot analysis. Execution stays deterministic underneath.
How Codex was used
Codex accelerated the build by scaffolding the Next.js App Router project, implementing API route structure, building the E*TRADE OAuth flow and broker endpoints, iterating the server-side order guardrails, and turning real API responses into production code. Primary Codex Session ID: 019f4950-533f-7421-825a-db25450fef7a.
Challenges we ran into
E*TRADE OAuth 1.0a and live order preview/place flows required careful request signing, token handling, and broker-response iteration. The hardest product challenge was making autonomy real while keeping it bounded: live orders are possible, but the protected main holdings remain read-only at the adapter level.
Accomplishments that we're proud of
Aiden placed real broker-previewed orders during the pilot while preserving a hard boundary around the main portfolio. The app demonstrates bounded autonomy on real money, not a simulation, with a clear audit trail and user-facing refusals that are enforced by code.
What's next
The next step is to generalize the governed pocket model beyond one brokerage connection: clearer test accounts, configurable policies, richer audit exports, and a safer operator workflow for ordinary investors.
Built With
- codex
- e*trade-api
- gpt-5.6
- lucide-react
- next.js
- oauth-1.0a
- openai-responses-api
- react
- supabase
- typescript
- vercel
- yahoo-finance
Log in or sign up for Devpost to join the conversation.