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

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

Uploaded Python 3Windows x86-64

almanak-2.16.0-py3-none-manylinux_2_17_x86_64.whl (44.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

almanak-2.16.0-py3-none-manylinux_2_17_aarch64.whl (44.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.16.0-py3-none-macosx_11_0_x86_64.whl (34.9 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.16.0-py3-none-macosx_11_0_arm64.whl (32.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: almanak-2.16.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 46.8 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.16.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 588b0f23f7a73e659a270ca26777c6b05744b60ce563db02ddf7eeb8f62f8af4
MD5 1d1bcfdfc0c7bbf8b279f428c57d5691
BLAKE2b-256 0d4efc21d38587a6f3f19bc5028768dbe14be17e8e2e533e44ae3fc4b453fa3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.16.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 870da3b4ac8fa1ed6c739fa1a32c2b00badd86d3fa31e574b3f1eb9d924eb162
MD5 1f7d97224fdee93c2e1f1b12178d3fc4
BLAKE2b-256 d467b38dae408f1ce5c296c7b0ca261c7af435d27b9b09d28ed103e949832dd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.16.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 1157ff45b3c9bc44dfe0e088ce4f44162cd32851345d14b0f4e7c8215adc8bf5
MD5 9c4f216c549d75a0983b20cc1ba0617a
BLAKE2b-256 1f6c640023c349fee1bc8a9984b95da766b7f0648cbfa4fea6e907f45abb37e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.16.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8beec5e9bb3f128986a4362b0298b4ed1f4d925a93409b48fdac895dca22b60b
MD5 b04496d6f04697a591a8e848a844e5c3
BLAKE2b-256 bdc7a84ba657f6aaca8ba93bc56bb232f8e7a24405ea1c2e3968a7ede7373971

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.16.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7cc2bc7519cea26a024bc41bdcc5cae52061f57574124d45cdb345032f12998
MD5 8bbf5ddfbdd90d3cd8821e7f3bbe0538
BLAKE2b-256 dfdc911c4ca26268fce7ad6996edfbc989015918213f2aae98518f4893a285b9

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