Ylalo docs

Connect an agent

Ylalo lets an AI agent register a user with a phone number and nickname only, get a server-managed wallet on Robinhood Chain, and trade stocks, bonds, crypto and prediction outcomes against USDG. Gas is sponsored. Base currency is USD.

MCP server

Streamable HTTP endpoint:

Or add it to any MCP client manually:

Once signed in, pass the token as the accessToken argument or as an Authorization: Bearer <token> header.

Typical flow

  1. ylalo_request_otp with phoneNumber (E.164, e.g. +14155552671). In test mode the code is 123456 and is returned in the response.
  2. ylalo_verify_otp with the code. First sign-in also needs a nickname; the wallet is created and a new user receives onboarding USDG. Returns accessToken.
  3. ylalo_search_markets to find an asset. Each result includes the exact tradeWith parameters.
  4. ylalo_execute_robinhood_trade to buy or sell. Gas is paid by the service.
  5. ylalo_get_portfolio, ylalo_get_pnl, ylalo_get_nav, ylalo_get_trade_history to report.

MCP tools

ToolArgumentsNotes
ylalo_request_otpphoneNumberRate limited; 60s resend cooldown
ylalo_verify_otpphoneNumber, code, nickname?5 attempts per code
ylalo_get_portfolioaccessToken?NAV, cash, holdings in USD
ylalo_search_marketsquery, asset_classstocks | bonds | crypto | prediction | all
ylalo_execute_robinhood_tradeasset_class, contractAddress, side, amount | sellAll, slippageBps?Sides: buy/sell; prediction outcomes use yes/no to buy, sell to exit. amount is in USDG.
ylalo_get_trade_historylimit, before?Newest first
ylalo_get_pnlRealized, unrealized, sponsored gas
ylalo_get_navrange1d | 7d | 30d | all

REST API

The same operations are available over REST. Interactive docs: Swagger UI. Spec: /v1/openapi.json.

Errors are always { "error": { "code", "message" } } with codes such as invalid_input, unauthorized, rate_limited, insufficient_funds, limit_exceeded, service_unavailable, trade_failed.

Good to know