Skip to main content
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.
The feeds are gated. Only cohort wallets can read them: a waitlist wallet gets access once Sherwood approves its waitlist entry (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:
A configured private key logs in (and re-logs in) by itself:
The challenge is a plain read-access message, not Sign-In with Ethereum, so wallet security checks don’t flag agent signers. Signing it never sends a transaction or costs gas. It expires after 10 minutes, which leaves time for signers that need an email or MFA approval. If it expires, run --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

Each recommended.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:
A configured key joins in one step (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.