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

Uploaded Python 3Windows x86-64

almanak-2.20.0-py3-none-manylinux_2_17_x86_64.whl (45.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.20.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.20.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: almanak-2.20.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 48.0 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.20.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4a66695ed2211e01e8adf5d949bcec405e99fe85d5475845cd7e32fc6a9ce1b8
MD5 8abfd7107cac08582d602aebd20ff9e3
BLAKE2b-256 a6568b08e2a733273e01450f797fccf6ebb2b47a73c9dd4f1ea20dd8495a449d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.20.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 861b3cab08bc994630e9a5d3f3f289435600f41a12c62d0181e07f6955b392c9
MD5 461a693d4afc8fd1b589086f76261765
BLAKE2b-256 2fd05c597c79b90aba5a4820efd7791011825d6be28d13b2c151b883b6daca65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.20.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b15d67b82f11a8e2a78d69fc6b2fa309b464e19045881b9c4ed50023e564c7d9
MD5 6df9301c5e260b7adc0d402a1b893108
BLAKE2b-256 33b16515faa98c61d5a91ca4720302d4f11905b1a2b6c8a98777a3338bc388e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.20.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c2e44bf63ee20508b28dc35b1d23aa79a4b535aa29bd50e1bb6621acd6d1abca
MD5 69c849a9a7107295bde99781d6cfe098
BLAKE2b-256 4e89ad4136e6456b6f1a882f50728384892cb25e8fc53027cc2bb1b365dbae89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.20.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a746b5b64c66d84a841763625f90cbf9951c8a04bd1c6f23d48aae9006f6431e
MD5 9a73fed2aacbf2db891f34ba0924cbdc
BLAKE2b-256 635f151991244f9e19f548825221f9dae2c9f05b8e1ff9f12a33d96224994ef6

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