Skip to main content

A powerful Python SDK for developing and deploying autonomous DeFi agents. Features agent-based modeling, state machine architecture, and non-custodial execution through Safe smart accounts

Project description

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, Polymarket, 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, Balancer
  • Lending: Aave V3, Morpho Blue, Compound V3, Spark
  • Liquid Staking: Lido, Ethena
  • Yield: Pendle
  • Perpetuals: GMX V2, Hyperliquid
  • Prediction Markets: Polymarket
  • CEX Integration: Kraken
  • Aggregators: Enso, LiFi

Contributing

See the Contributing Guide to get started.

Documentation

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

Support

Project details


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

Uploaded Python 3Windows x86-64

almanak-2.18.0-py3-none-manylinux_2_17_x86_64.whl (45.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

almanak-2.18.0-py3-none-manylinux_2_17_aarch64.whl (45.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.18.0-py3-none-macosx_11_0_x86_64.whl (36.1 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.18.0-py3-none-macosx_11_0_arm64.whl (33.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: almanak-2.18.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 47.9 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.18.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6dc3d20ab8987a5de9031b280994e25e1f2d22c742d05b3cb98deff2f603cdf6
MD5 5ea94915570bcbf2d2291a2daf644400
BLAKE2b-256 e66d909012d47771d94e0a9be4f248ef760dab5b244aac92c7e84cdc2faeb9b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.18.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 86c457c7b121f8d00b4d217245e495fba5cb23d89ccc37c82839ef9081264559
MD5 a01e9e66c87d0045f5053f42694e263f
BLAKE2b-256 35c22cb28545e078db6180efc4f2e3d2cc610de51f2e57a0501f81b74dc999c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.18.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 72b27c5f2eabc32b192c7fcf4f28cc4299d61e8fc194c883df0e1e0ae5025973
MD5 fe77ec556061b9fe6e44df417d1fa95a
BLAKE2b-256 2cfbaffc12468b8595fd614b88d957bc99c028dba943f47b9650eef50b24951e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.18.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 377f647f9383e9e113821151ba978bda4859fe566fb7695cfd69e37286866acd
MD5 11e213a12e65c21a4a34f459439cb627
BLAKE2b-256 83157816a65fd633901bb744731c38ee9b37102dfbf0fcbf185614ad513ea5e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.18.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b933827305900705289d9fec2ac0143cc42cf76bdbb587f0749e1cca22d6fd31
MD5 5ffca9d8aa370fa44a57dfaed8d9b803
BLAKE2b-256 7c076e0accdd41f2dfe578c2fa707eaf7adb6e70e0d106939f1ada117725520a

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 Pingdom Monitoring Sentry Error logging StatusPage Status page