Skip to main content

Official Python SDK for ArkForge DeFi portfolio management

Project description

ArkForge Python SDK

Python client for ArkForge DeFi portfolio management API.

PyPI version Python Version

Installation

pip install arkforge

Requirements

  • Python 3.8+
  • Valid ArkForge API key

Usage

from arkforge import ArkForgeClient
from arkforge.models import OptimizePortfolioRequest

client = ArkForgeClient(api_key="sk-arkforge-...")

result = client.optimize_portfolio(
    OptimizePortfolioRequest(
        assets=["BTC", "ETH", "SOL"],
        risk_profile="moderate"
    )
)

print(result.allocation)

Configuration

client = ArkForgeClient(
    api_key="sk-arkforge-...",
    base_url="https://api.arkforge.io",
    timeout=120,
    retry_attempts=5
)

Environment variables:

API Methods

ArkForgeClient:

  • optimize_portfolio(request) - Optimize portfolio allocation (live or backtest mode)
  • optimize_portfolio_async(request) - Async version
  • get_risk_profiles() - Get available risk profiles
  • health() - Check service health

KeyManagementClient:

  • create_key(request) - Create API key
  • list_keys() - List API keys
  • get_key_details(key_id) - Get key details
  • revoke_key(key_id, reason) - Revoke API key
  • rotate_key(key_id, name) - Rotate API key

Backtesting

The SDK supports backtesting by providing historical price data. The API automatically enters backtest mode when historical_data is provided.

from arkforge import ArkForgeClient, OptimizePortfolioRequest

client = ArkForgeClient(api_key="sk-arkforge-...")

# Prepare historical data (90+ days per asset)
historical_data = [
    {"symbol": "BTC", "timestamp": "2024-01-01T00:00:00Z", "price": 42350.50},
    {"symbol": "BTC", "timestamp": "2024-01-02T00:00:00Z", "price": 43120.75},
    # ... 90+ days of data per asset
]

# Optional: Historical sentiment data
historical_sentiment = [
    {
        "asset": "BTC",
        "timestamp": "2024-01-15T00:00:00Z",
        "score": 0.37,
        "category": "bullish",
        "confidence": 0.82
    }
]

# Same request interface, just add historical data
request = OptimizePortfolioRequest(
    assets=["BTC", "ETH", "SOL"],
    risk_profile="moderate",
    historical_data=historical_data,
    historical_sentiment=historical_sentiment  # Optional
)

result = client.optimize_portfolio(request)

See examples/backtesting_example.py for a complete example.

Development

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Type checking
mypy arkforge

# Linting
ruff check arkforge

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arkforge-0.0.6.tar.gz (80.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arkforge-0.0.6-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file arkforge-0.0.6.tar.gz.

File metadata

  • Download URL: arkforge-0.0.6.tar.gz
  • Upload date:
  • Size: 80.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arkforge-0.0.6.tar.gz
Algorithm Hash digest
SHA256 02db063b98e56491a3253c151a86379ed357c33debd3e1b8766b228b8ac81b79
MD5 3982089725ea9f15905b9e75fff693e2
BLAKE2b-256 39a2d01459cc9df7f27dd8a0ef25a77ae1b66bb4c5bf64ec6b1fca9c6428f921

See more details on using hashes here.

Provenance

The following attestation bundles were made for arkforge-0.0.6.tar.gz:

Publisher: publish.yml on Arkonix-finance/ArkForge-SDK-PY

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arkforge-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: arkforge-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arkforge-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 68e1048294667ed67833fc64cd233a5358395b5517c889e8f1027d1a50ca15a7
MD5 632e1a7dea6d6e5dcc4580001fef2bd6
BLAKE2b-256 da0018172fb5b0332e9b305d4f103d5a758e9646576f0b3ec70bf5ec9d1d132b

See more details on using hashes here.

Provenance

The following attestation bundles were made for arkforge-0.0.6-py3-none-any.whl:

Publisher: publish.yml on Arkonix-finance/ArkForge-SDK-PY

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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