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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

almanak-2.19.1-py3-none-manylinux_2_17_aarch64.whl (45.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.19.1-py3-none-macosx_11_0_x86_64.whl (36.0 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.19.1-py3-none-macosx_11_0_arm64.whl (33.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: almanak-2.19.1-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.19.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 12bb83136c7bce3f858fc8a21355665a3555946065976829f3c86b155aaa4c4b
MD5 ae3d0dc17041e796debb672b9d7c7a4f
BLAKE2b-256 bafbc0d62a6c4356e0ce10d626aff0fdd81c8a49845ba3419bed44458d0a6649

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.19.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a0197cbba66d5c7ff54403e67387bd832867610dcd2e60873c0bb04e04488aa1
MD5 1eca05c5693566f3fcbfffa9cc10ad43
BLAKE2b-256 d63d06493091fa1fd34831864fcc0ee03e7e1c629c2e4af99c93f83496d97eec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.19.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 29c2fb56477cee8330f538ab8abdc9412a2bfc85347e011e837d49048208382b
MD5 5035336a13f4bb69b572d1f13beeece4
BLAKE2b-256 a422445c4b745eb44d1db8bebbcd90d261d90734075a96a39fb519d8723e7e68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.19.1-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b6bc48cf1eff634851193aa7b201730dd9e8e5ced400c4ee401f877e314e3dc1
MD5 3b35461633fb042b276aad4dc2e4fea8
BLAKE2b-256 2be2e665a7ce822b2acf26c519c0c297f7ee9266184f53df624f7fbe8068207c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.19.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3128cafc26c3455b4535095caa4490811669401fcfc88a9b559c76921f1b3bb2
MD5 039c7159c3300d2333e3667787fedf85
BLAKE2b-256 7e60a85a7c90030e6d74f05efcd40a128ece930b41ed747672be516df0b9b3b8

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