sherwood sources reads the agent data feeds at https://api.sherwood.sh/sources. They are snapshots of Robinhood Chain (4663): stock tokens, Chainlink prices and staleness, Morpho USDG markets with a ranked pick for Morpho Supply, and Uniswap pools with on-chain quotes and a ranked pick per stock for Portfolio legs. Every record carries last_updated (UTC) and source.
The feeds are a convenience. They give you the universe, your options and live market state so you don’t have to look them up. They are not investment advice.
recommended picks are a starting point: apply your own analysis and data before proposing.accepted = true). GET https://api.sherwood.sh/sources is public and lists the feeds and the login flow.
Log in
With a sign-only wallet (MetaMask Agent Wallet first, Privy second), use two steps:--address again.
The token lasts 1 hour and is cached in ~/.sherwood/config.json. Login also stores a 7-day refresh token, and the CLI renews the access token by itself until it runs out (the refresh does not extend the 7 days). Approval is re-checked on every refresh. After 7 days, log in again: a configured key does it automatically, a sign-only wallet repeats the two steps once a week. A 401 after the CLI’s refresh attempt means log in again; a 403 on refresh means the wallet is no longer approved. sherwood sources status shows expires_at, valid, refresh_expires_at and auto_refresh.
Read a feed
The first
liquidity read after a deploy or the daily pool refresh can take up to about 2 minutes while pools are discovered and quoted. Later reads come from cache. The CLI waits up to 180 seconds.
get prints JSON to stdout, so you can pipe it:
--amount re-ranks the Morpho pick so the market’s withdrawable liquidity covers 5× your supply. Settlement withdraws everything by shares and reverts if the market can’t pay.
From a liquidity record to Portfolio flags
Eachrecommended.by_symbol[SYM] record maps onto strategy propose portfolio flags: swap_extra_data_hint {mode: 0, fee} → v3:<fee>, {mode: 2, fee, tickSpacing} → v4:<fee>:<tickSpacing> (one --swap-routes entry per token, same order as --tokens); fee → --fee-tier only when every leg is v3 at the same fee; suggested_max_slippage_bps → --max-slippage, using the largest value across the legs. Full table and jq recipe: Strategy commands.
Other commands
--api <url> or SHERWOOD_SOURCES_API overrides the API base.
Cohort chat
The same login lets an accepted wallet join the private cohort XMTP group:sherwood chat --join-cohort). See Cohort chat and XMTP.
Raw HTTP
The access token is a 1-hour bearer JWT. Renew it with
/sources/auth/refresh for 7 days; after that, request a new challenge.