hoodgrow
Python SDK for the HoodGrow Robinhood Chain stock token API — live price, corporate-action adjusted supply (ERC-8056, correct through stock splits), Morpho/Uniswap DeFi depth, and corporate actions (splits, dividends). Pay per call via x402 (USDC on Base) — no signup — or use a bearer API key if you have one.
pip install hoodgrow
Quick start — x402 (pay per call, no signup)
import os
from eth_account import Account
from hoodgrow import HoodGrowClient
# Never hardcode a real private key — load it from an env var / secret
# manager, and only fund this wallet with what you're willing to spend
# on this API.
signer = Account.from_key(os.environ["AGENT_PRIVATE_KEY"])
client = HoodGrowClient(signer=signer)
catalog = client.get_catalog() # $0.10 — every token
nvda = client.get_token("NVDA") # $0.05 — one token
Every call settles a real USDC payment on Base mainnet. See Payment safety below before you point this at a funded wallet.
Quick start — API key (free, issued access)
import os
from hoodgrow import HoodGrowClient
client = HoodGrowClient(api_key=os.environ["HOODGROW_API_KEY"])
catalog = client.get_catalog()
Get a key from HoodGrow directly — see hoodgrow.com/api-access.
API
HoodGrowClient(api_key: str | None = None, signer: LocalAccount | None = None, base_url: str = "https://www.hoodgrow.com")
Exactly one of api_key / signer is required.
| Method | Price (x402) | Returns |
|---|---|---|
get_catalog() |
$0.10 | Every listed token: price, source, 24h change, corporate-action adjusted supply, DeFi depth, plus catalog-wide pending/recent corporate actions |
get_token(symbol) |
$0.05 | One token, same fields, scoped |
get_corporate_actions(symbol=None) |
uses get_token/get_catalog above |
CorporateActions(pending=..., recent=...) — pass a symbol to scope, omit for every tracked token |
get_defi(symbol) |
$0.05 | Every Morpho market this token participates in (loan OR collateral role) plus its Uniswap V3 pools — not just the single best-APY figure bundled into get_catalog/get_token |
get_holders(symbol, limit=None) |
$0.05 | Holder-count trend, 24h net supply change (real mint/burn), and top-holder concentration (limit caps how many holders to return, 1-50, defaults to 10 server-side) |
get_slippage(symbol, amount_usd, side) |
$0.05 | How much a USD-sized trade (side: "buy" | "sell") would move the price, per Uniswap V3 pool — best_pool_address/best_effective_price pick the best one for you |
Full response shapes are Pydantic models
(CatalogResponse, TokenDetailResponse, TokenSummary, DefiInfo,
PendingCorporateAction, RecentCorporateAction, DefiDetailResponse,
DefiMarket, DefiPool, HoldersResponse, TopHolder, SupplyChange24h,
SlippageResponse, SlippagePoolResult) — attributes are idiomatic
snake_case; the API's own camelCase JSON keys also work if you
construct a model directly.
A failed request (any non-2xx HoodGrow itself returns, after x402 payment
handling — an unknown symbol, a server error) raises HoodGrowError with
.status and .body.
Payment safety
x402 payments are real money and are not idempotent — retrying a timed- out request can pay twice. Before pointing a signer at this client:
- Only fund the wallet with what you're willing to spend on this API.
signermust be aneth_accountLocalAccount(e.g.Account.from_key(...)) that can sign locally.- HoodGrow's paywall only ever asks for USDC (
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) on Base mainnet (eip155:8453), paid to0x8520B3693a2Cf3c2bEa3a505Af3A9c1b093954c7, capped at $0.10/call — this client's underlyingx402dependency handles the protocol-level verification, but you're responsible for how much you fund the signing wallet with.
Rate limits
30 requests/minute per IP by default for pay-per-call use. A 429 means
back off — check the response's Retry-After header rather than retrying
immediately (a blind retry after a paid call risks a duplicate payment).
Need more sustained throughput? A persistent API key with its own higher
limit is available — see
hoodgrow.com/api-access.
Development
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest # mocked HTTP via `responses`, no network dependency
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hoodgrow-0.2.0.tar.gz.
File metadata
- Download URL: hoodgrow-0.2.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37bdeb6227dfb01009f187cf9b9a6b42f6bbf45c473e9a99820cd725f6644707
|
|
| MD5 |
1cd576695f63282a2f7cff7577d9aafe
|
|
| BLAKE2b-256 |
3920e6fa7bba241a1b18ae20d77b38fc18ed9a560f1a9915097eac6298b26b7e
|
Provenance
The following attestation bundles were made for hoodgrow-0.2.0.tar.gz:
Publisher:
publish.yml on MeMikko/hoodgrow-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hoodgrow-0.2.0.tar.gz -
Subject digest:
37bdeb6227dfb01009f187cf9b9a6b42f6bbf45c473e9a99820cd725f6644707 - Sigstore transparency entry: 2381326172
- Sigstore integration time:
-
Permalink:
MeMikko/hoodgrow-py@9c483c068bc79a13e5c67a7a57a0ed0059b3677d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/MeMikko
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9c483c068bc79a13e5c67a7a57a0ed0059b3677d -
Trigger Event:
release
-
Statement type:
File details
Details for the file hoodgrow-0.2.0-py3-none-any.whl.
File metadata
- Download URL: hoodgrow-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3590a63b4e31d147703a3de9c2c48de6a94fd59a402ba68a24ca064006df7ff9
|
|
| MD5 |
a4b6f11fd683d8ded2dc9dc6dc229b30
|
|
| BLAKE2b-256 |
9f3e305c4a0e530d226d91f1f3413fed6fe71e2049ce21addefc44412500a7b5
|
Provenance
The following attestation bundles were made for hoodgrow-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on MeMikko/hoodgrow-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hoodgrow-0.2.0-py3-none-any.whl -
Subject digest:
3590a63b4e31d147703a3de9c2c48de6a94fd59a402ba68a24ca064006df7ff9 - Sigstore transparency entry: 2381326974
- Sigstore integration time:
-
Permalink:
MeMikko/hoodgrow-py@9c483c068bc79a13e5c67a7a57a0ed0059b3677d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/MeMikko
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9c483c068bc79a13e5c67a7a57a0ed0059b3677d -
Trigger Event:
release
-
Statement type: