Read time … min

AI-native runtime for Bitvavo trading strategies

Author in Cursor, Claude Code or any AI IDE. Deploy from GitHub into a managed cloud runtime with first-class MCP control, logs and EU region selection.

By the TradingHost engineering team

Section 01 · At a glance

At a glance

Venue
Bitvavo
Venue type
Crypto exchange (centralised, EU-headquartered)
Asset class
Crypto
Supported products
Spot only. No margin, no futures, no derivatives; 1:1 leverage on a single spot venue.
Runtime model
Containerised strategy runtime
Deployment source
GitHub
Languages
Any language that runs in a container
Common integrations
Native Bitvavo REST and WebSocket, CCXT (`bitvavo`), CCXT Pro, Freqtrade, official Bitvavo SDKs (Python, Node.js, Go, Java), custom
AI workflow integration
MCP control surface for Cursor, Claude Code, GitHub Copilot and CLI agents
TradingHost role
Runtime, deployment, logs, health checks, region selection, MCP control
Bitvavo role
Exchange account, API access, market access, execution venue, EUR rails
Affiliation
TradingHost is independent and is not affiliated with Bitvavo. Bitvavo B.V. is conduct-supervised by the AFM under MiCA (authorisation granted June 2025) and registered with De Nederlandsche Bank (DNB).

Section 02 · What Bitvavo offers

What Bitvavo offers

Bitvavo is a spot-only EU-headquartered exchange with EUR-native fiat rails (SEPA, SEPA Instant, iDEAL) and MiCA authorisation across the EEA. Strategies reach the venue through REST and WebSocket, authenticated with HMAC-SHA256-signed API keys scoped to specific permissions. There are no derivatives, no margin, no perpetuals; the surface is deliberately simpler than at multi-product crypto venues.

Markets and strategy patterns

  • EUR spot grid trading
  • Recurring EUR DCA on majors
  • EUR fiat-pair arbitrage vs USD venues
  • EU-region low-latency execution from Amsterdam-adjacent runtime
  • Spot market-making on EUR pairs
  • Mean reversion on EUR / altcoin pairs
  • Portfolio rebalancing across spot holdings
  • MiCA-compliant retail strategy hosting (EEA passport)

API surface

Product surfaces
Spot only. No futures, no margin, no options. EUR-quoted pairs dominate; USDC, USDT, BTC quote markets also available.
Connection methods
REST at `https://api.bitvavo.com/v2/`. WebSocket at `wss://ws.bitvavo.com/v2/`. FIX API also offered for institutional clients (not self-serve).
Authentication
API key plus HMAC-SHA256 signed requests. Headers: `Bitvavo-Access-Key`, `Bitvavo-Access-Signature`, `Bitvavo-Access-Timestamp`, `Bitvavo-Access-Window` (default 10000 ms). Signature equals SHA-256 HMAC hex digest of `timestamp + method + url + body`, keyed by API secret. Optional IP whitelisting per key (strongly recommended). API key permissions: View, Trade, Withdraw, Subaccount, Internal Transfer, Administrative.

For specifics, refer to Bitvavo

Specific endpoints, rate-limit weights, symbol lists and fee tiers live in Bitvavo's documentation. Treat these as the source of truth.

Section 03 · Build with AI

Build your Bitvavo strategy with AI

Pick an integration method, fork a TradingHost framework starter, and author your strategy in an AI IDE. Cursor, Claude Code, GitHub Copilot and CLI-based AI agents all work with the same GitHub-native deployment loop.

  • Native Bitvavo API

    Direct control over Bitvavo-specific behaviour, account data and order execution logic via REST, WebSocket or institutional FIX.

  • CCXT

    Common interface across Bitvavo and other crypto exchanges. CCXT Pro adds WebSocket support.

  • Freqtrade

    Framework-based deployments using Freqtrade's strategy structure. Bitvavo support is community-tested via CCXT; no on-exchange stoploss.

  • Custom connector

    Your own internal trading engine or proprietary Bitvavo integration, or one of the first-party Bitvavo SDKs (Python, Node.js, Go, Java).

Framework support for Bitvavo

Bitvavo is spot-only, so the framework matrix is simpler than at multi-product venues: there is no USD-M, COIN-M or options column to populate. If your strategy needs perpetuals or USD-margined futures, pair Bitvavo with a separate venue (for example Binance, Bybit or OKX) for the derivatives leg. For spot-only Bitvavo strategies, all three major frameworks plus the native API are supported; Hummingbot does not currently ship a Bitvavo connector.

FrameworkSpot
Native Bitvavo APISupported
CCXTSupported
FreqtradeSupported
HummingbotNot documented as supported

✓ confirmed support per official framework docs. "no connector" indicates the framework does not ship a Bitvavo connector. Workflow links target /workflows/ pages currently in authoring.

TradingHost does not force a framework. It runs your project.

Author with AI

The framework starters above pair naturally with AI IDEs. The TradingHost MCP control surface closes the loop: AI tools can inspect deployments, review logs and manage the runtime alongside you, never the trade execution path.

Section 04 · Run on TradingHost

Run your code on TradingHost

Bitvavo provides the exchange and API access. TradingHost provides the production environment where your Bitvavo-connected strategy runs.

Instead of running strategy code on a laptop, desktop machine, generic VPS or manually configured server, you deploy from GitHub into a TradingHost-managed container runtime.

You

  • Your repo contains your code.
  • Your deployment defines how it runs.
  • Your strategy connects to Bitvavo.

TradingHost

  • Keeps the runtime online.
  • Surfaces logs and health checks.
  • Region selection.
  • Controlled deployment surface.

Deployment flow

  1. STEP 01

    Connect GitHub

    Authorise TradingHost to access your GitHub account.

  2. STEP 02

    Link a repo or start from a framework

    Point TradingHost at your existing strategy repo, or fork a TradingHost framework runtime (CCXT or Freqtrade) for a working baseline.

  3. STEP 03

    Deploy into a TradingHost container

    Pick a region (EU or US-East), supply the environment values your strategy needs (Bitvavo API keys: the `Bitvavo-Access-Key`, `Bitvavo-Access-Signature`, `Bitvavo-Access-Timestamp` and `Bitvavo-Access-Window` headers are built from these), and deploy. TradingHost builds your container from the repo and runs your strategy on managed Kubernetes infrastructure. No local Docker install required.

  4. STEP 04

    Monitor logs and health

    Watch live logs, health and runtime state from the TradingHost dashboard. The same surface is reachable through MCP from any AI IDE, so Cursor, Claude Code or a CLI agent can read deployment state and manage the runtime alongside you.

  5. STEP 05

    Update and redeploy

    Push changes to your GitHub main branch and TradingHost redeploys automatically.

Section 05 · Operational notes

Operational notes for Bitvavo

Things that bite you when you actually run a Bitvavo strategy in a containerised cloud runtime, not in Bitvavo's docs, not in framework READMEs. Every claim below is quoted or paraphrased from Bitvavo's own documentation; the deployment-side guidance is from running these strategies on TradingHost.

  1. 01 · Rate limiting

    Weight-based rate limit, 1000 points per minute

    Bitvavo applies a weighted rate limit shared across REST and WebSocket. Default ceiling is 1000 weight points per minute, tracked per API key when authenticated and per IP otherwise. Responses include `bitvavo-ratelimit-limit`, `bitvavo-ratelimit-remaining` and `bitvavo-ratelimit-resetat` headers. Exceeding returns HTTP 429 with `errorCode 105` and blocks authenticated callers for 1 minute (unauthenticated for 15 minutes).

  2. 02 · WebSocket

    Single endpoint, JSON action-based subscriptions

    One WebSocket endpoint at `wss://ws.bitvavo.com/v2/` handles both public market data and authenticated trading. Subscriptions and order operations are sent as JSON messages with an `action` parameter. Standard throttling allows up to 5000 messages per second; Market Data Pro caps at 50/s; both return `errorCode 112` on overflow.

  3. 03 · API keys

    Granular permission scopes plus IP whitelist

    When creating a key in the Bitvavo dashboard you choose any combination of View, Trade, Withdraw, Subaccount, Internal Transfer and Administrative scopes. The IP whitelist is optional but strongly recommended; without it, anyone holding the credentials can act on the account. Bitvavo flags that withdrawals initiated via API bypass 2FA, so the Withdraw scope should be enabled only when truly required.

  4. 04 · Authentication errors

    305 / 307 / 309 are the signature and IP failures to recognise

    The most common auth failures developers hit are `errorCode 307` ("this key does not allow access from this IP") when the calling host is outside the whitelist, and `errorCode 309` ("the signature is invalid") when the HMAC was built incorrectly or the secret was copied with whitespace. `errorCode 304` covers timestamp/window mismatches. Bitvavo recommends regenerating keys rather than debugging nonce or copy-paste issues.

  5. 05 · EUR rails

    SEPA, SEPA Instant and iDEAL funding

    Fiat funding is EUR-native via free SEPA bank transfer (1 working day for Dutch accounts, 2 for other EEA), SEPA Instant for supported banks, and iDEAL up to €50,000 per transaction. Recurring SEPA deposits are also supported. There is no USD on-ramp; strategies must price in EUR or accept FX exposure.

  6. 06 · Deposit networks

    One network per asset, no TRC-20 stablecoins

    Unlike multi-chain exchanges, Bitvavo deliberately supports only one blockchain network per listed asset to reduce mis-send risk. Notably TRC-20 deposits of Ethereum-quoted assets are not supported. Deposit address derivation must check Bitvavo's supported-network list per asset before generating an address; mis-sent funds cannot be recovered.

  7. 07 · Regulation

    MiCA-authorised via AFM, EEA passport active

    Bitvavo received MiCA authorisation from the Dutch AFM in June 2025, covering custody, operation of a trading platform, and transfer of crypto-assets across all EU member states plus Norway, Iceland and Liechtenstein. The earlier DNB registration remains live for AML/CFT supervision. The MiCA transitional window for unlicensed CASPs in most member states ended by mid-2026; using a MiCA-licensed venue is now the compliant default for EEA-resident strategy operators.

Section 06 · Built for

Built for

TradingHost Bitvavo runtimes are best suited to:

  • Developers building strategies in AI IDEs (Cursor, Claude Code)
  • Systematic crypto traders
  • EU-based quant developers
  • CCXT and Freqtrade users
  • Teams moving from VPS hosting to containerised deployment

Connecting GitHub and creating your first strategy is free.

Section 08 · FAQ

FAQ

No. TradingHost is independent and is not affiliated with Bitvavo.

No. Your strategy code connects to Bitvavo and sends instructions according to your own logic, account permissions and integration method. TradingHost provides the runtime where that code runs.

No. Bitvavo API access is provided by Bitvavo. You are responsible for your Bitvavo account, API permissions, credentials and compliance with Bitvavo’s terms.

No. TradingHost is the cloud runtime where your strategy code runs. We do not provide signals, AI prediction models or pre-built bots. With TradingHost you write or generate the strategy yourself (often with Cursor or Claude Code), keep it in GitHub as your code, and use TradingHost to run it in production. 3Commas, Cryptohopper and similar products own the strategy logic; TradingHost runs your strategy.

AWS and DigitalOcean give you raw compute. You handle OS updates, container orchestration, log shipping, secret rotation, region failover and uptime monitoring yourself. TradingHost gives you a managed runtime purpose-built for trading strategies: GitHub-native deployment, MCP-driven control from AI IDEs, log and health surfaces out of the box. If you want to operate the infrastructure yourself, AWS works. If you want the runtime as a managed service, TradingHost is the shorter path.

Yes. TradingHost runs Python strategies; pick the framework runtime that matches your stack or deploy your own repo.

Yes. TradingHost supports any language that can run inside a container.

Yes. Bitvavo is supported in both CCXT and CCXT Pro under the exchange id bitvavo, covering REST and WebSocket. Bitvavo also publishes first-party SDKs in Python, Node.js, Go and Java if you prefer the native client. See the CCXT framework runtime for the full setup story.

Yes, if your project is designed that way. You can run multiple strategy processes or services inside one runtime, or separate them into different runtimes for isolation and operational clarity. See the TradingHost runtime page for the multi-strategy model.

The fastest path is to fork a TradingHost framework runtime: CCXT or Freqtrade for a ready-to-deploy project. Or connect your own GitHub strategy repo. Linking a GitHub repo and creating a strategy is free; runtime plans are listed on the pricing page.

In your GitHub-controlled secrets workflow. TradingHost reads them at runtime through GitHub repository secrets, environment secrets or your own approved secret-management process. TradingHost does not need custody of your API key and secret. See platform secrets for the full handling model.

No. Strategies should never need the Withdraw scope. Use the View and Trade scopes only, and enable IP whitelisting where appropriate. Bitvavo flags that withdrawals initiated via API bypass 2FA, so the Withdraw scope is high-risk and should be reserved for keys you operate manually from a fixed-IP host.

Yes. TradingHost supports MCP-based control for AI IDEs including Cursor, Claude Code, GitHub Copilot and CLI-based AI agents. AI tools can inspect deployments, review logs, restart strategies and manage runtime workflows. MCP is a control and observability surface, not the trade execution path. See the MCP control surface for the full picture.

Both. The MCP control surface works equally well from CLI-based agents (Claude Code CLI, custom MCP clients, scripted MCP calls) and from inside an IDE. The GitHub-native deployment loop also works without any AI tooling: a regular git push to your main branch triggers a redeploy.

The runtime detects the crash and exposes the relevant logs and health information. Where supported, the affected strategy can be restarted without disrupting other strategies running in the same container. Your strategy code is still responsible for safe error handling, duplicate-order protection and risk controls. See observability for the logs and health surface.

This is Bitvavo’s IP-whitelist rejection. Either add the TradingHost runtime’s egress IP to the API key’s whitelist in the Bitvavo dashboard, or regenerate the key without a whitelist (not recommended). Confirm the egress IP via TradingHost’s runtime info before whitelisting.

The HMAC was built incorrectly or the API secret was copied with stray whitespace. Recompute the signature as HMAC-SHA256(secret, timestamp + method + url + body) hex digest, ensure the request body string matches exactly what is signed, and check that Bitvavo-Access-Timestamp is in milliseconds within the Bitvavo-Access-Window. Regenerating the key is the fastest fix if the secret may be corrupted.

No. Bitvavo is spot-only with 1:1 leverage; there are no futures, no perpetuals, no options and no margin product. For perpetuals or USD-M futures, deploy a separate strategy against Binance, Bybit or OKX.

Yes. Bitvavo is authorised under MiCA by the Dutch AFM (June 2025) and registered with De Nederlandsche Bank since 2020. The MiCA authorisation passports across the EEA, so an EEA-resident strategy operator can host on a licensed venue without separate per-country registrations. Bitvavo is a CASP, not a credit institution; this does not extend MiFID protections to trading activity.

EUR via free SEPA bank transfer (1 to 2 working days), SEPA Instant where your bank supports it, or iDEAL for instant Dutch-bank top-ups up to €50,000 per transaction. There is no USD fiat rail; USD-denominated PnL requires stablecoin or FX conversion.

TradingHost runs in the EU and US-East regions. For Bitvavo specifically, the EU region is geographically closest to Bitvavo’s Amsterdam-adjacent matching engine and usually gives the lowest round-trip. See the regions page for routing and proximity details.

No. TradingHost is focused on production runtime and deployment. Backtesting belongs in your research stack, framework or AlgoBuilder.