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.25.1-py3-none-win_amd64.whl (50.2 MB view details)

Uploaded Python 3Windows x86-64

almanak-2.25.1-py3-none-manylinux_2_17_x86_64.whl (47.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

almanak-2.25.1-py3-none-manylinux_2_17_aarch64.whl (47.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.25.1-py3-none-macosx_11_0_x86_64.whl (38.3 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.25.1-py3-none-macosx_11_0_arm64.whl (35.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: almanak-2.25.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 50.2 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.25.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2b4df12e0f2f8479d65a7786360293aea58c77fc40979c5c2e4d773d205c308b
MD5 f34c5ddb0393273e87e7e99a69849aab
BLAKE2b-256 a901bff00d43ff9a9561fc4a72f6223d736080624b95757a339daa0d5cbb818b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.25.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 521a017b1524f1605afefe95fae05cd2c00ecb808e01fb7bf7364bf7d427f81e
MD5 0a9213abfa50f4438c4b32288388f58e
BLAKE2b-256 7cd200dcde01c77af04d67535b663436f55797844dffdcb04f558ee7a782adca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.25.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ea4ded374337008d34512c8fcc7433cc848679f034236dd11f947b3af75ec140
MD5 1531663469cb189804558d99907956d6
BLAKE2b-256 84fbabb22128bc2169372d5706663ab2e838b44112f4ed7093cdbbfa66df78af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.25.1-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e41ca88ca2228b4d7b58d8873215760cf81fa5548e0002f7fe6afe35919fe702
MD5 fa5305fbfda45360f13db65ee13d9d86
BLAKE2b-256 83c392b2d8625f568e6b6b311cc047f682743745610da2d9904c40f22b28d1ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.25.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f12e0d47a28add6653c7309c8a245c79b23d121e6a3973b28ef4ea4cd246a999
MD5 8d244dad6da3635f61603e0f5ecdf325
BLAKE2b-256 82c9560a5da12b08664a5f6665442012a860b7aa2e9fce1949e6bde4dca80b78

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