paper (simulated money) or live, one of
each — over OAuth. An agent running a session as that identity can then read the account and quote,
and place an order, cancel one or close a position only after a person approves that call.
Connecting
- Start the authorization from the identity’s page in the dashboard (Brokerage → Connect), with
vetta trading connect, or withPOST /v1/identities/{id}/trading/connect. - Read the consent text shown first — every surface shows it before the link — then open the link and approve at the brokerage. The link works once and expires after 15 minutes.
- The brokerage sends the browser back to the identity’s page, which says whether it connected. The
connection is now
active.
billing:write; connecting a live account also needs a live sk_live_ key.
Naive keeps one sealed access token per identity and env. No response, log or audit entry carries
it, and it is never placed in an agent’s computer, so an agent cannot reach the brokerage around the
approval below. When the brokerage revokes access the connection turns expired: connect again.
Disconnect deletes the token; revoking Naive at the brokerage too is done in its own settings.
In the dashboard
The identity’s page has a Brokerage panel: each env’s state (with the reason on a failed one), Connect, Reconnect or Disconnect, and — for an active account — its open positions and open orders, read-only. Orders are placed by an agent, the API or the CLI, never from the panel.Agent tools
A session whose identity has anactive connection is offered:
The three writes name the account (
env) on every call. By default each one pauses the session on an approval
card that says, in plain words, the account, symbol, side, size, type and any limit or stop price;
nothing reaches the brokerage until a person approves, and a decline sends nothing. An approval
covers that one call — it cannot be granted for the rest of a chat.
The live account always asks. An operator may set a write tool to allow in the agent’s
policy; that is honoured only for a call whose env is paper. A call on the
live account — or one that does not say — still waits for a person. A surface that cannot pause a
call does not offer the writes at all.
An approved order is placed exactly once, even if the session is retried after the approval: the call
carries a stable client_order_id.