Skip to main content

Almanak SDK

PyPI version

The Almanak SDK is a powerful Python library for developing, testing, and deploying autonomous DeFi agents. Built on an intent-based architecture, it provides a comprehensive framework for creating sophisticated trading strategies with minimal boilerplate.

Features

  • Intent-Based Architecture: Express trading logic as high-level intents (Swap, LP, Borrow, etc.) - the framework handles compilation and execution
  • Gateway Security: All external access mediated through secure gRPC gateway
  • Three-Tier State Management: Automatic persistence with HOT/WARM/COLD tiers
  • Comprehensive Backtesting: PnL simulation, paper trading on Anvil forks, and parameter sweeps
  • Multi-Chain Support: Ethereum, Arbitrum, Optimism, Base, Avalanche, Polygon, BSC, Sonic, Blast, Mantle, Berachain
  • Protocol Integration: Uniswap V3, Aave V3, Morpho Blue, GMX V2, Lido, Ethena, Kraken, and more
  • Non-Custodial Design: Full control over your funds through Safe smart accounts

Installation

pipx install almanak

Optional features ship as extras:

pipx install 'almanak[dashboard,backtest]'   # web dashboard + backtest charts/optimization
Extra Enables
dashboard almanak dashboard and the strategy/backtest web dashboards (streamlit, plotly)
backtest backtest chart export and almanak strat backtest optimize (matplotlib, plotly, optuna)
code Python LSP for almanak code (pyright)

Using an AI coding agent? Teach it the SDK in one command:

almanak agent install

Auto-detects your platform (Claude Code, Codex, Cursor, Copilot, and 6 more) and installs the strategy builder skill.

Quick Start

  1. Create a New Strategy (scaffolds a self-contained Python project with pyproject.toml, .venv/, uv.lock)

    almanak strat new
    
  2. Test on a Local Anvil Fork

    cd my_strategy
    uv run almanak strat run --network anvil --once
    

Writing a Strategy

Strategies use an intent-based architecture. Implement the decide() method to return an intent:

from almanak import IntentStrategy, SwapIntent, HoldIntent, MarketSnapshot

class MyStrategy(IntentStrategy):
    def decide(self, market: MarketSnapshot) -> Intent:
        eth_price = market.prices.get("ETH")
        usdc_balance = market.balances.get("USDC")

        if eth_price < 2000 and usdc_balance > 1000:
            return SwapIntent(
                token_in="USDC",
                token_out="ETH",
                amount=1000,
                slippage=0.005,
            )
        return HoldIntent(reason="Waiting for better conditions")

Supported Networks

Ethereum, Arbitrum, Optimism, Base, Avalanche, Polygon, BSC, Sonic, Plasma, Blast, Mantle, Berachain

Supported Protocols

  • DEXs: Uniswap V3, SushiSwap V3, PancakeSwap V3, TraderJoe V2, Aerodrome, Curve
  • Lending: Aave V3, Morpho Blue, Compound V3, Spark
  • Liquid Staking: Lido, Ethena
  • Yield: Pendle
  • Perpetuals: GMX V2, Hyperliquid
  • CEX Integration: Kraken
  • Aggregators: Enso, LiFi

Pending testing: Prediction Markets (Polymarket) and Flash loans are undergoing further validation and are temporarily withheld from the supported matrix (almanak info matrix). Treat them as experimental.

Contributing

See the Contributing Guide to get started.

Documentation

For detailed documentation, visit sdk.docs.almanak.co

Support

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

almanak-2.21.0-py3-none-win_amd64.whl (48.6 MB view details)

Uploaded Python 3Windows x86-64

almanak-2.21.0-py3-none-manylinux_2_17_x86_64.whl (46.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

almanak-2.21.0-py3-none-manylinux_2_17_aarch64.whl (45.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.21.0-py3-none-macosx_11_0_x86_64.whl (36.7 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.21.0-py3-none-macosx_11_0_arm64.whl (34.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file almanak-2.21.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: almanak-2.21.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 48.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.13

File hashes

Hashes for almanak-2.21.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3bc19c91c48afd0bc1c88d646e2eb1dec14c86fe97822472b0b152cf8215506a
MD5 e68dfef07423e3bd1a4a599aeb80eb81
BLAKE2b-256 b9424a25fd5cf287beb25452d8c9ce96d5d857846a718cf93ce0608e942dbf96

See more details on using hashes here.

File details

Details for the file almanak-2.21.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for almanak-2.21.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0f50412200abf5b5f91c7d22a385fa7f19ed292e057912dada358877cba90adb
MD5 2e497588c30347aaf7f65b7610e2f8fc
BLAKE2b-256 57b13eeae988d9287506bf7a8f7ba565e00e54bb530d1b448d0100507145a963

See more details on using hashes here.

File details

Details for the file almanak-2.21.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for almanak-2.21.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 1b3ef254e5bbd41d7f3cae85070117da4fc0a56ce790b0c8b03de4289cbbaf24
MD5 cdd97957d552e2aaa4511de6e691c135
BLAKE2b-256 44e2fde613d717c20b15a7360d38b643afd6739f720ecbc0df85565c94a9269b

See more details on using hashes here.

File details

Details for the file almanak-2.21.0-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for almanak-2.21.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 409b7242f054edc0756815e3a08e2eb2f4b5f7d6c7eaf8708bea2c53c7769444
MD5 0beac683aa52db59ab99b2f80de4664b
BLAKE2b-256 f25a8853305fd3894edece8ae7690a5a0aa6b2d84d12266222bedf1d5cc8393d

See more details on using hashes here.

File details

Details for the file almanak-2.21.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for almanak-2.21.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11f9a63e0ca0e7ed99893ee285194d596c04916f48ca0be5554c11945afae1b3
MD5 b343ea03a3072fe9f082a12f9120a07c
BLAKE2b-256 daf3b4f12a4a475b6924d887786bc286aa2e0824232643361c4d934764962f0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page