Follow puts almanak-co sdk on your private watchlist; its changes then lead “Since you were last here” when you come back. Following needs an account; browsing never does.
“Active” by the activity rule: 3 meaningful events in the last 30 days, the newest 2026-10-06.
SourceRepositories, changelogs and feeds HEY reads for this project, and the ship events recorded from them.ReadRecordsv2.29.2v2.29.1v2.29.0+2 moreWhat HEY derivedHEY’s activity rule reads the counted events as “Active”.Not concludedIt says what HEY can read of the building, not how good the project is, who is behind it, or what its token will do. Quiet or unknown is not "abandoned".
Verified Builder.
The quality gate found verified building evidence from the project's own sources.
Source2 registered sources, 0 of them context only.ReadRecordsv2.29.2v2.29.1v2.29.0+3 moreWhat HEY derivedThe quality gate’s stored decision: “Verified Builder”.Not concludedA verified builder is one whose shipping HEY confirmed from public evidence. It does not say who runs the project — that is the ownership claim, a separate check.
Market figures are context only and never change activity status. Methodology
Why it matters: One of a run of ships in the 30 days to it: building continued, not a one-off.
Features · ax dex-pools ranks and filters pools: sort by 24h volume by default, filter by quote token and minimum volume, and paginate (#4061) · Almanak Code v1.0.89 bundled: hosted mode for platform sessions, with workspace-confined file tools, sandboxed commands and redacted…Show allShow less
Features
ax dex-pools ranks and filters pools: sort by 24h volume by default, filter by quote token and minimum volume, and paginate (#4061)
Almanak Code v1.0.89 bundled: hosted mode for platform sessions, with workspace-confined file tools, sandboxed commands and redacted tool output. The CLI no longer auto-loads a project's .env or bunfig.toml (#4070) Changes
almanak strat new no longer scaffolds tests/; the fork lifecycle is the strategy test (#4059)
almanak ax and strat permissions keep library warnings off stderr (#4062) Fixes
Robinhood…
Record ship:434c5a9e… · HEY counts it as building; it does not judge the release’s quality or what it means for the token.
Bars: meaningful, source-backed ships per week (count). Weeks run Monday to Sunday, UTC, labelled by their Monday. Commits are aggregated, a code week counted once. Hatched: a week before HEY began reading this project’s sources — not yet read, not zero.
Questions HEY can answer about almanak-co sdk — as of 2026-10-19
Is almanak-co sdk still being built?
DerivedActive: 3 meaningful events in 30 days; latest ship 13 days ago.Evidence →
What did almanak-co sdk ship last?
Factv2.29.2 — GitHub release, 13 days ago.Evidence →
What does HEY not know about almanak-co sdk?
Unknown2 gaps: Official docs (no source), API description (no source). HEY read its website and found no link to docs.Details →
Build timeline
Code changes, week of 2026-09-28 – 2026-10-04 · 10 commits
Code activity · Source linked
4 active days in almanak-co/sdk.
Automated commits only — not counted as building. 10 automated commits (bot accounts or a repeating scripted message) not counted.
Security · Platform backtest callbacks use a run-scoped token instead of the shared platform secret. The runner and its progress reporter send x-almanak-backtest-token from PLATFORM_CALLBACK_TOKEN, which the platform mints per execution; the shared PLATFORM_CALLBACK_SECRET is…Show allShow less
Security
Platform backtest callbacks use a run-scoped token instead of the shared platform secret. The runner and its progress reporter send x-almanak-backtest-token from PLATFORM_CALLBACK_TOKEN, which the platform mints per execution; the shared PLATFORM_CALLBACK_SECRET is used only when no token is set. (#4049)
Backtest runner jobs published from this release no longer carry the platform secret. The publish template stops mounting PLATFORM_SECRET_ACCESS_KEY into the runner container, which executes user strategy code. Sweep runner jobs keep it until the sweep runner…
Features · Uniswap V4 full pool-key and dynamic-fee support, plus Robinhood promotion — swaps, LP and teardown bind to the complete PoolKey (custom fee, tick spacing, hooks) instead of fixed tiers, and Robinhood Chain is now a supported production venue. (#3953, #3965, #3969…Show allShow less
Features
Uniswap V4 full pool-key and dynamic-fee support, plus Robinhood promotion — swaps, LP and teardown bind to the complete PoolKey (custom fee, tick spacing, hooks) instead of fixed tiers, and Robinhood Chain is now a supported production venue. (#3953, #3965, #3969, #3967)
Morpho Vault V2 support — on-chain generation detection, correct V2 redeem sizing, and an opt-in penalised forced-exit path (allow_force_deallocate) for redeems the vault's own liquidity can't cover. (#3943, #3944, #3945)
Code changes, week of 2026-09-07 – 2026-09-13 · at least 10 commits
Code activity · Source linked
9 active days in almanak-co/sdk.
This week HEY looked inside 2 of 10 commits to see what changed: 1 changed code, 1 documentation or maintenance only. One code change is enough for the week to count, so HEY stopped there. 41 automated commits (bot accounts or a repeating scripted message) not counted.
Features · Intent-driven exact venues and ordered action sequences — backtests discover pools and perpetual markets from emitted intents at first use, while config fields remain optional prewarm hints; Intent.sequence executes dependent actions in order. (#3837) · Authenticated…Show allShow less
Features
Intent-driven exact venues and ordered action sequences — backtests discover pools and perpetual markets from emitted intents at first use, while config fields remain optional prewarm hints; Intent.sequence executes dependent actions in order. (#3837)
Authenticated exact-pool history and reproducible replay — exact-pool OHLCV is loaded on demand, and pools missing from static registries are resolved from historical state, pinned in schema-v3 manifests, and reused by --from-result. (#3896, #3942)
Honest hosted outcomes with live progress — every PnL run…
Features · Self-describing pool prices — get_pool_state / ax pool now carry both price directions plus a unit-labeled price string, and the ALMANAK token resolves to its liquid Ethereum market. (#3813) · Lending market inspection from the CLI — new ax lending-market command…Show allShow less
Features
Self-describing pool prices — get_pool_state / ax pool now carry both price directions plus a unit-labeled price string, and the ALMANAK token resolves to its liquid Ethereum market. (#3813)
Lending market inspection from the CLI — new ax lending-market command verifies on-chain lending market identity before execution. (#3838)
Exact-address venues for Aerodrome and TraderJoe V2 — bare pool addresses are authenticated on-chain for LP flows, and Aerodrome swaps honor pool pinning. (#3828)
Year-long hourly backtests — hosted budget and adaptive page…
Features · Verified pool discovery and inspection — inspect Curve, Aerodrome Classic, and Uniswap V4 pools by pair or address, with connector-owned factory/registry verification. (#3800, #3801, #3802) · Managed data gateway safety — persistent credential-isolated sidecar…Show allShow less
Features
Verified pool discovery and inspection — inspect Curve, Aerodrome Classic, and Uniswap V4 pools by pair or address, with connector-owned factory/registry verification. (#3800, #3801, #3802)
Managed data gateway safety — persistent credential-isolated sidecar, readiness reporting, and an explicit no-spawn guard for managed environments. (#3803)
Features · Exact-pool OHLCV observations — candles bind to the exact venue/pool, authenticated end-to-end through the gateway. (#3777) · Exact Uniswap-V3 TWAP observations — resolve the exact pool; fail closed on provider/transport faults. (#3749) · Exact-venue binding for Curve…Show allShow less
Features
Exact-pool OHLCV observations — candles bind to the exact venue/pool, authenticated end-to-end through the gateway. (#3777)
Exact Uniswap-V3 TWAP observations — resolve the exact pool; fail closed on provider/transport faults. (#3749)
Exact-venue binding for Curve swaps — bind to a verified pool identity, reject malformed venue identity. (#3768)
Exact-venue binding for Slipstream (Aerodrome CL) LP — bind to receipt-derived NPM manager generation; teardown resolves CL manager authority from connector-owned roles. (#3747)
Features · Verified exact-venue data plane for pool snapshots, history, and fail-closed venue contracts (#3721, #3744, #3745, #3748) · Historical exact-pool backtesting, including Curve APY history (#3760, #3763) · Typed asset identity and token metadata across chain-aware…Show allShow less
Features
Verified exact-venue data plane for pool snapshots, history, and fail-closed venue contracts (#3721, #3744, #3745, #3748)
Historical exact-pool backtesting, including Curve APY history (#3760, #3763)
Typed asset identity and token metadata across chain-aware market-data paths (#3730, #3743, #3752)
Safer canonical slippage and basis-point-native bounds (#3728, #3766)
Measured price provenance and exact-address stablecoin depeg checks (#3727, #3729)
Dynamic, verified GMX market discovery (#3756)
PEP 561 typing, expanded DTO docs, and Almanak Code v1.0.48 guidance…
Highlights since v2.25.0. See the CHANGELOG for the full detail. Features · Aave V3 expected-pool assertion. Supply and withdraw intents accept an optional expected_pool address, validated and matched against the canonical registry Pool before any approval or calldata, failing…Show allShow less
Highlights since v2.25.0. See the CHANGELOG for the full detail. Features
Aave V3 expected-pool assertion. Supply and withdraw intents accept an optional expected_pool address, validated and matched against the canonical registry Pool before any approval or calldata, failing closed on drift. Never a routing override. (#3707)
almanak strat test lifecycle path coverage. Test output now classifies action and teardown evidence and exposes requested_paths_exercised, so a HOLD or empty teardown is…
Highlights across 227 merged PRs since v2.24.0. See the CHANGELOG for the full detail. Breaking Changes · GMX V2 markets are address-first. Declare the market-token address (Intent.perp_open(market="0x…")); the curated GMX_V2_MARKETS / GMX_V2_INDEX_TOKEN_DECIMALS tables and…Show allShow less
Highlights across 227 merged PRs since v2.24.0. See the CHANGELOG for the full detail. Breaking Changes
GMX V2 markets are address-first. Declare the market-token address (Intent.perp_open(market="0x…")); the curated GMX_V2_MARKETS / GMX_V2_INDEX_TOKEN_DECIMALS tables and index_price_symbol / index_token_decimals are deleted from almanak.connectors.gmx_v2.addresses. Migration: add market_address to GMX configs and run almanak/framework/cli/repair_position_references.py on legacy…
Features · LiFi compiles BridgeIntent directly. The LiFi manifest advertised BRIDGE but LiFiCompiler only declared SWAP, so production bridging had to be expressed as a cross-chain SwapIntent. compile_bridge now routes through LiFi's cross-chain route path. (#3397, #3388)…Show allShow less
Features
LiFi compiles BridgeIntent directly. The LiFi manifest advertised BRIDGE but LiFiCompiler only declared SWAP, so production bridging had to be expressed as a cross-chain SwapIntent. compile_bridge now routes through LiFi's cross-chain route path. (#3397, #3388)
Verified lending-market resolution (VIB-5985). A market_id can only enter a config after on-chain proof. ListLendingMarkets returns every curated-catalog candidate (address-resolved filters; never ranks or auto-picks), GetLendingMarket recomputes the id from idToMarketParams(id) and compares…
Breaking Changes · Hyperliquid perp opens fail closed on non-1x leverage. CoreWriter has no set-leverage action, so a requested leverage was never applied on-venue — positions opened at the account's per-asset default (e.g. 20x cross), surfaced only as a warning. PERP_OPEN…Show allShow less
Breaking Changes
Hyperliquid perp opens fail closed on non-1x leverage. CoreWriter has no set-leverage action, so a requested leverage was never applied on-venue — positions opened at the account's per-asset default (e.g. 20x cross), surfaced only as a warning. PERP_OPEN requesting non-1x leverage is now rejected at compile time unless the strategy explicitly opts in with the new Intent.perp_open(accept_venue_leverage=True) (default False); the venue-observed leverage is still recorded post-fill. Venues that do set leverage on-venue (GMX V2) ignore the flag. (#3354)…
Breaking Changes · aave_v3 on plasma no longer passes the runtime chain gate (config-level). The chain was never proven and is no longer advertised; a config pairing aave_v3 with plasma now fails at boot with a ConfigurationError instead of failing on-chain later. Re-enabling…Show allShow less
Breaking Changes
aave_v3 on plasma no longer passes the runtime chain gate (config-level). The chain was never proven and is no longer advertised; a config pairing aave_v3 with plasma now fails at boot with a ConfigurationError instead of failing on-chain later. Re-enabling requires a manifest + proof run (see the VIB-5916 pattern). Features
Aave V3 on Linea — the aave_v3 connector declares linea, backed by four-layer intent tests on a Linea fork, Safe permission regression, managed-Anvil + separate-signal teardown E2E, and a chain-confirmed mainnet round trip.…
Breaking Changes · The Chain enum is removed (almanak.Chain, almanak.core.enums.Chain, VIB-4851). Chain identity is the canonical lowercase name string resolved through almanak.core.chains.ChainRegistry. Migration: Chain.ETHEREUM → "ethereum"; Chain[s] / Chain(s) →…Show allShow less
Breaking Changes
The Chain enum is removed (almanak.Chain, almanak.core.enums.Chain, VIB-4851). Chain identity is the canonical lowercase name string resolved through almanak.core.chains.ChainRegistry. Migration: Chain.ETHEREUM → "ethereum"; Chain[s] / Chain(s) → ChainRegistry.resolve(s) (or try_resolve); list(Chain) → ChainRegistry.names(). Serialized wire/DB chain values are now lowercase; read paths stay case-insensitive forever, so existing persisted records keep deserializing. Chains are fully self-registered — adding a chain is one descriptor file…
Features · Pendle PT accounting vertical — completes Principal-Token accounting on the 2.19.0 PT/YT price foundation: PT Accountant gate (matrix + CLI + QA checklist), typed PendleAccountingEvent cells, open-PT mark-to-market via the gateway implied-price, realized-yield PnL on…Show allShow less
Features
Pendle PT accounting vertical — completes Principal-Token accounting on the 2.19.0 PT/YT price foundation: PT Accountant gate (matrix + CLI + QA checklist), typed PendleAccountingEvent cells, open-PT mark-to-market via the gateway implied-price, realized-yield PnL on disposal, held-PT inventory in the dashboard, PT/YT price telemetry, and a pendle_basics demo.
CAIP-2 / CAIP-19 identity layer — additive interop for chain ids (eip155:42161) and asset ids, built on a new typed TokenRef; resolve("eip155:42161") ≡ resolve("arbitrum"). Native slip44 for…
Changed · Backtesting is enabled by default (VIB-5130). The ALMANAK_ENABLE_BACKTESTING opt-in flag is removed now that the backtesting v1 conservation work (VIB-5079) has landed in v2.19.0 — almanak strat backtest and almanak backtest-service run without it. Treat PnL-engine…Show allShow less
Changed
Backtesting is enabled by default (VIB-5130). The ALMANAK_ENABLE_BACKTESTING opt-in flag is removed now that the backtesting v1 conservation work (VIB-5079) has landed in v2.19.0 — almanak strat backtest and almanak backtest-service run without it. Treat PnL-engine output as carrying the documented variance bounds (blueprint 31 §7) and certify on the paper trader before going live; perp support remains beta. Any existing ALMANAK_ENABLE_BACKTESTING=1 setting is now a harmless no-op. --- Full changelog: compare…
Features · Pendle PT/YT vertical (#2945, #2949, #2950, #2951, #2940): gateway PT/USD price provider (composes the on-chain PT rate with the underlying price), MarketSnapshot.pt_price over a new GetPtPrice gateway contract, and PT/LP USD valuation with buy-time cost basis.…Show allShow less
Features
Pendle PT/YT vertical (#2945, #2949, #2950, #2951, #2940): gateway PT/USD price provider (composes the on-chain PT rate with the underlying price), MarketSnapshot.pt_price over a new GetPtPrice gateway contract, and PT/LP USD valuation with buy-time cost basis.
Features · Safer leverage teardown (#2542): health-factor-aware unwind for leverage loops, plus Morpho health and market-state fixes. · Strategy quote assets (#2659, #2734): scaffolds and demos now emit explicit quote_asset metadata. · Fluid support expansion (#2682, #2723)…Show allShow less
Features
Safer leverage teardown (#2542): health-factor-aware unwind for leverage loops, plus Morpho health and market-state fixes.
Strategy quote assets (#2659, #2734): scaffolds and demos now emit explicit quote_asset metadata.
Fluid support expansion (#2682, #2723): Fluid DEX swaps and fToken lending supply/withdraw flows.
Uniswap V4 accounting and valuation (#2681, #2680, #2732): position registry support, high-confidence LP valuation, and measured uncollected fees.
Features Three new lending connectors and a unified lending read path Benqi, Euler V2, and Silo V2 are now first-class lending connectors with full pre/post-state readers. Spark joins Aave V3, Compound V3, and Morpho Blue on a single generic LendingAccountStateCapability, so…Show allShow less
Features Three new lending connectors and a unified lending read path Benqi, Euler V2, and Silo V2 are now first-class lending connectors with full pre/post-state readers. Spark joins Aave V3, Compound V3, and Morpho Blue on a single generic LendingAccountStateCapability, so adding the next lending protocol is now a connector-local change rather than a framework rewrite. (VIB-4929, VIB-4963–VIB-4967) Connector self-containment epic — first major drop Protocol code (intent compilers, address tables, receipt parsers, capability registries, synthetic-intent discovery, contract-role…
v2.16.0 First minor release since v2.15.0 (April 23, 2026). 248 PRs across breaking changes, accounting infrastructure, new chains/connectors, dashboard, gateway services, and bug fixes. Breaking Changes PAUSE / RESUME lifecycle commands retired (VIB-4281) The PAUSE and RESUME…Show allShow less
v2.16.0 First minor release since v2.15.0 (April 23, 2026). 248 PRs across breaking changes, accounting infrastructure, new chains/connectors, dashboard, gateway services, and bug fixes. Breaking Changes PAUSE / RESUME lifecycle commands retired (VIB-4281) The PAUSE and RESUME lifecycle commands have been removed from the gateway's LifecycleService; the runner accepts only STOP. The V2 platform pause/resume endpoints return 410 Gone. The new three-action UX model is Stop / Teardown / Emergency Stop. CLI surfaces almanak strat pause / almanak strat resume…
Named in code or runs on a hook, read from public code and the chain: a link, never a partnership or an on-chain interaction. A code link is a reference: the code names the token, which shows neither a dependency nor use; only a hook link is a pool running on the other’s hook. As data