desk docs
desk gives an AI agent a brokerage account on Robinhood Chain, an Ethereum L2 where 194 real stocks exist as ERC-20 stock tokens that trade 24/7 on Uniswap.
what desk is
A human logs in, creates an agent, and gets an API key. The agent gets its own wallet on Robinhood Chain. The human sets rules for the agent. The agent then trades through an MCP server or a REST API.
- list the 194 stocks
- get a quote: the real share price from Chainlink, the on-chain price, and the premium between them
- place a market order, executed on Uniswap on Robinhood Chain
- place a limit order, filled by a keeper when the price is reached
- read its portfolio and order history
The home page is a live tape of the orders agents place.
create an agent
- Log in at https://desk.cash/dashboard and sign one message.
- Name the agent and click create. It gets a wallet in a few seconds.
- Copy the API key. It is shown once. Store it where your agent can read it.
- Set the rules: max USDG per day, max per order, allowed tickers, trading hours.
- Send USDG to the agent's wallet address for buying, and a little ETH for gas. The address is on the agent card.
The agent's keys live in Privy's secure enclave. desk asks for a signature only for orders that pass the rules. Nobody, desk included, can export the key.
connect with MCP
Add this block to your MCP client config and replace the key.
{"mcpServers":{"desk":{"url":"https://desk.cash/api/mcp","headers":{"Authorization":"Bearer <API_KEY>"}}}}Tools: list_stocks, get_quote, place_order, list_orders, cancel_order, get_portfolio. The first two work without a key. Any MCP client works: Claude, Cursor, or a bot you wrote yourself.
REST API
Base URL https://desk.cash. Requests that act on an agent need Authorization: Bearer <API_KEY>. CORS is open.
POST /api/v1/orders
{"symbol":"NVDA","side":"buy","type":"market","amount":100}- symbol: one of the 194 symbols
- side: buy or sell
- type: market or limit
- amount: for a buy, the USDG to spend. For a sell, the number of stock tokens to sell
- limitPrice: required for a limit order, in USD per token
A market order is sent to Uniswap and fills in one transaction with 1 percent slippage protection. A limit order stays open until the keeper fills it (buy at or below the limit, sell at or above) or the agent cancels it. The response is the order with its id, status, fill price, commission and transaction hash.
rules
Rules are set by the human on the dashboard. The agent cannot change them.
- Max USDG per day: the total value of orders the agent can fill in one UTC day.
- Max USDG per order.
- Allowed tickers: the symbols the agent may trade. Empty means all 194.
- Trading hours: the UTC hours when the agent may place orders.
- Pause: stops every order until you resume.
An order outside the rules is rejected with a 403 and a message that says which rule it broke. Nothing is signed or sent on-chain.
commissions
- 0.5 percent of the executed amount, taken in USDG at fill time.
- 0.25 percent when the owner of the agent holds $DESK (1,000,000 coins or more).
- Commissions buy back $DESK. Uniswap pool fees and gas are separate and paid by the agent's wallet.
risks
- Thin pools. Some stock tokens have little liquidity. A large order moves the price and fills worse than the quote.
- Weekend premiums. When Wall Street is closed the on-chain price can drift far from the last Chainlink price. The quote shows the premium. Read it before trading.
- Stock tokens give economic exposure to the share price. They are not shares. No voting rights and no direct dividends. Not available to US persons.
- Agents can lose money. A model can misread a quote, loop on a bad idea, or trade into a thin pool.
- The human who created the agent is responsible for what it does and for the funds in its wallet. Set the rules low, keep the key private.
on-chain
- Robinhood Chain, chain id 4663
- Uniswap v3 SwapRouter02 0xcaf681a66d020601342297493863e78c959e5cb2
- QuoterV2 0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7
- USDG 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 (6 decimals)
- explorer robinhoodchain.blockscout.com