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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

almanak-2.13.0-py3-none-macosx_11_0_x86_64.whl (32.0 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

almanak-2.13.0-py3-none-macosx_11_0_arm64.whl (29.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: almanak-2.13.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 48.5 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.13.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 50d4aae4c156b10339f5ecedf5d5c1823b8789171edf6bff1db270cf8c6e88e5
MD5 e2812bb3ef7b142fa1a91b54f908feb9
BLAKE2b-256 8dec1df7bc2f7dd98330661a540652e767372f707b1adf78b7378c9d94caa442

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.13.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3e6afc241b0d9c5ff553a53ab978605c6168407374e20415b35ea07308abedf4
MD5 da00bcf3e4f25575dfdc7d7d062788d2
BLAKE2b-256 41108adda185ef396f213cf284183f8e7d5c70e7873d6b686a624b6ff9f08ab0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.13.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 066b77a6089774eb24ee5d31740aa1f91904f6dde7cc914d068b95e52c3b81ff
MD5 81c260e986e2617c8a8f239f575c12aa
BLAKE2b-256 4b207ccf295700b5214c58eb5061451f903eafaf2c936400113516ceabadd2da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.13.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1d628726980ab759842a31cfcf6244ca00598f4a85208d906f7b90ee58c723af
MD5 478e66dff727290202a2a4868a2f192e
BLAKE2b-256 beec707bbc6c456c4f0667627e01b31cf98fe5431216a83ce29c0f2d429585d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for almanak-2.13.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ed2ab9971f17c74717e3e19acba5b2ff0eee94022c77ed583231af92fb9008e
MD5 7fb49ee812f3160bef4eaa9fdc467fde
BLAKE2b-256 4227313758f1d4781d358748cfabe2775dd5570d2c4185966e8619a2feb5e3a9

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