The protocol
is our problem.
Start trading.
The missing layer between your stack and EPEX SPOT.
One membership, many isolated desks. Trade your own book, run subsidiaries, or white-label desks for clients.
Most firms don't have a trading problem. They have an infrastructure problem dressed up as one.
EPEX SPOT M7 is unforgiving. AMQP session state, delta sequencing, orderbook consistency, failover to the backup servers when one drops: all of it runs live, while your positions are open and the market keeps moving. Most teams either overpay a vendor for software that never quite fits, or spend six months on plumbing before a single order reaches the exchange.
Voltnir ends that. You connect over REST, WebSocket or gRPC; behind the API sits a live, consistent orderbook, full order management, and real-time position tracking. The protocol, the session state, the reconnect logic: none of it is yours to manage anymore. What you build against is the market itself.
It is built in Rust from the connection layer up, low-latency and fault-tolerant before any feature sits on top, not a wrapper around someone else's Java client. That is what lets a solo trader ship an algo this afternoon, and an enterprise desk rely on it for years.
For a complete picture of how every part works, see the features page →
The protocol is our problem, not yours.
Bad infrastructure is your competitor's revenue stream.
EPEX SPOT intraday runs continuously, right up to delivery. The Netherlands alone produces nearly 10 millionMeasured over 3 days orderbook updates a day, Voltnir processes those deltas in ~15μs. For a battery running rolling intrinsic strategies, that tempo is revenue, and trading it on a stale book is measurable lost capture.
The market is automating around you: ~84% of EPEX SPOT intraday trades are executed via API rather than by hand, and since October 2025 each day splits into 9615-minute products across all coupled markets, since October 2025 quarter-hour contracts. Stale infrastructure doesn't cost you latency. It costs you fills.
- Wrong-tempo penalty
- −~14% / MW
- Slow infra · 10 MW · per year
- −~€207,000
- Peak month · 2025
- ~€19,100 / MW
- Market volume · 2025
- 241 TWh▲ 12%
Sources: enervis Battery Storage Index, Germany 2025 · EPEX SPOT · peer-reviewed research, 2025
How this figure is derived
Illustrative: ~14% capture uplift on a 10 MW battery against the 2025 German intraday spread, per the enervis Battery Storage Index and peer-reviewed 2025 capture studies. Your figure depends on your assets, strategy, and markets.
The only latency between your algo and EPEX SPOT is the wire.
Voltnir runs in your environment.
Not ours.
Voltnir is a single, statically linked Linux binary. Deploy it on any Linux server. No installer, no third-party software running alongside it.
Everything is configurable through a single file. REST, WebSocket, and gRPC can be enabled independently. Choose your database: SQLite out of the box, or Postgres. TLS on a reverse proxy of your choice.
The only outbound connection is to EPEX SPOT M7, over TLS, authenticated with your own client certificate. Nothing else. No telemetry. No phone-home. No license server.
Voltnir is on-premise by default. If you need a hosted option, we can arrange it. Talk to us →
You own the data. You own the off-switch.
What happens when the connection drops.
Voltnir holds one EPEX SPOT M7 session and gates trading on its health: a new order is refused the moment the order book is stale, torn, or disconnected, so you never trade against a book you can't trust. A cancel is always allowed, so you can always reduce exposure.
Both exchange links reconnect on their own, using exponential backoff, pong-age liveness, and automatic failover to EPEX SPOT's alternate host. They rebuild live state from the exchange on reconnect, so a restart loses nothing committed. A sequence gap is treated as corruption: drop, resync, never serve a torn book.
Redundancy beyond the single session is a deployment choice you control, the way you already run the rest of your estate. Voltnir is deliberately one binary, not a black-box cluster you have to trust.
- exchange active
- AMQP publisher + consumers
- order-book connected
- order-book synchronised
- order-book sequence-healthy
- exchange active
- AMQP publisher + consumers
- order-book connected
- order-book synchronised
- order-book sequence-healthy
For the full health and resilience model, see the features page →
Degrade loudly. Never silently.
One membership fee,
multiple revenue streams.
One EPEX SPOT membership costs the same whether you trade for one entity or ten. Voltnir lets you trade for ten.
Each virtual member is a fully isolated trading entity: its own position limit, its own cash limit in EUR or GBP, enforced before a single order leaves the gateway. One member cannot consume another's margin. One client's bad day stays their bad day.
Every user operates under exactly the permissions you grant them, scoped to exactly the members you assign them to. A junior trader on the NL desk cannot touch the DE book. A read-only auditor sees everything and changes nothing.
If a regulator asks what happened, you have an answer. Every order, every trade, every permission change: attributed to the member, the user, and the moment it happened.
- NL-BATTERY±25.0 MW · €150,000
- DE-RENEWABLES±18.0 MW · €100,000
- INTERNAL-DESK±12.0 MW · €60,000
Virtual members and per-user permissions are part of the Desk tier only. See pricing →
Their orders. Your margin.
An audit trail that matches your remit.
If a regulator asks what happened, you have the answer on your own infrastructure, never ours. Voltnir keeps a durable, append-only record of every order, trade, and operator action, each attributed to the user, the member, and the millisecond behind it.
Every order and trade is attributed to the EPEX SPOT trader code, the Voltnir user, and the virtual member behind it, with millisecond timestamps and the original raw M7 message preserved alongside. A failed order leaves as clear a trail as a filled one: exchange error code, raw payload, and the user who triggered it, all on the same record.
Operator actions sit on the same log. Every permission change, limit adjustment, kill-switch toggle, and user creation carries the actor, their source IP, the outcome, and a before-and-after snapshot of what changed. The platform's own lifecycle events log under a system actor. Nothing is exempt.
Query any of it by time, action, user, or outcome (over REST, WebSocket, or gRPC) with JSON or CSV export from the API or directly from the terminal. Who can read the audit log, who can export it, and who can read exchange errors are each a permission of their own.
Optionally, archive the full public trade tape and raw orderbook (every M7 snapshot and delta) to PostgreSQL or Parquet, for backtesting and market reconstruction.
Nothing happens off the record.
The architecture is the credential.
Most vendor software is a liability the moment it touches your network: it phones home, it needs inbound ports, it ships telemetry you can't see. Voltnir is built to be the opposite. It makes exactly one connection, outbound to EPEX SPOT M7 over mutual TLS, and nothing else. No telemetry, no phone-home, no licence server to call. It can run on a host with no route to the internet but that single exchange dial, air-gapped from everything else you run.
Reaching the exchange takes three independent factors, none replayable on its own: a mutual-TLS client certificate, your M7 credential, and a fresh time-based code generated at every connect. The licence that authorises the binary is verified offline, against a key compiled in. There is no licence server, online check, or external dependency in the trust path.
Voltnir gives you a complete, attributable audit trail to feed your obligations, but it is not a reporting tool: it does not file your REMIT or MiFID transaction reports for you. That boundary is deliberate. You keep the record and the control; we don't sit in the middle of your compliance.
Nothing reaches in. One thing reaches out.
Three protocols. One contract.
Voltnir's full surface is available over REST, WebSocket, and gRPC. Pick the transport that fits the job: REST for simplicity, WebSocket for browsers and dashboards, gRPC for low-latency algo systems. The operation is identical on all three.
- HTTP + JSON, request and response
- The full unary surface, minus the live streams
- No codegen, no SDK; any HTTP client works
- Single persistent connection
- ~100 ms coalesced tick
- zstd compression
- Browsers and latency-tolerant clients
- Typed Protobuf over HTTP/2
- Every delta, fill, and state change pushed immediately
- Server-streaming: no polling, no webhooks
- Python SDK today, .proto file for everything else
One contract, three ways. Every unary operation exists on all three transports with the same fields, the same integer units, the same permissions, and the same error codes. One shared implementation, not three, and parity is verified on every release.
Streaming is native to each. REST is request and response. gRPC watch streams push each order-book delta, fill, and state change as it happens; the WebSocket feed coalesces the same events onto a ~100 ms tick (PnL and status once a second), zstd-compressed so a burst collapses to one frame. No polling, no webhooks.
No floats. No surprises. Prices and quantities move as fixed-point integers, never floats. API keys are hashed at rest and shown once. Lose one and you rotate, you do not recover.
POST /api/v1/order Authorization: Bearer ${TOKEN} { "side": "BUY", "price": 5000, "quantity": 1000, "delivery_area_id": "10YNL----------L", "contract_id": 12345678, "v_member_short_id": "NL-BATTERY" } // → 201 Created
// after the {action:"auth", token} frame { "action": "new_order", "req_id": "r1", "side": "BUY", "price": 5000, "quantity": 1000, "delivery_area_id": "10YNL----------L", "contract_id": 12345678, "v_member_short_id": "NL-BATTERY" } // ← {"op":"new_order","ok":true}
from voltnir_sdk import VoltnirClient, Side client = VoltnirClient( host="voltnir.local", api_key=os.environ["VOLTNIR_TOKEN"], ) client.submit_order( side=Side.BUY, price=5000, quantity=1000, delivery_area_id="10YNL----------L", contract_id=12345678, v_member_short_id="NL-BATTERY", )
Pick your transport. The contract doesn’t change.
A terminal you can trade on today.
Voltnir ships with a full trading terminal, embedded in the same binary, nothing extra to install. Open a browser tab, log in, and you're looking at live depth-of-book, the contract ladder, real-time P&L, and the audit log. On any host. In minutes.
Before an order leaves the ticket you already know its projected position, the cash it consumes, and how far it walks the book. Your own resting orders sit in the ladder with their queue position. Limits and the kill-switch stay visible the whole session.
Every user logs in with their own credentials, trades under their own account, and leaves their own audit trail.Available on the Desk tier only.
The terminal runs on the same WebSocket API your code would use, so anything it does, your stack can do too.
| Delivery | Qty | Bid | Mid · Spread | Ask | Qty | Trend | Last | Qty |
|---|---|---|---|---|---|---|---|---|
| PH-1413:00 | 3.0 | 80.10 | 80.20Δ0.20 | 80.30 | 2.5 | ▲+0.00% | 80.15 | 1.0 |
| PH-1514:00 | 6.0 | 82.40 | 82.45Δ0.10 | 82.50 | 4.0 | ▲+0.00% | 82.45 | 2.0 |
| PH-1615:00 | 4.0 | 79.80 | 79.95Δ0.30 | 80.10 | 3.0 | ▼-0.00% | 79.85 | 2.0 |
| PH-1716:00 | 2.0 | 77.20 | 77.40Δ0.40 | 77.60 | 5.0 | ▼-0.00% | 77.30 | 1.5 |
| PH-1817:00 | 5.0 | 81.00 | 81.15Δ0.30 | 81.30 | 4.0 | ▲+0.00% | 81.10 | 3.0 |
| Product | Start (UTC) | Side | Price | Quantity | Status | Type |
|---|---|---|---|---|---|---|
| PH-15 | 14:00 | BUY | 81.40 | 6.0 | ACTIVE | O |
| PH-15 | 14:00 | SELL | 83.50 | 4.0 | ACTIVE | O |
| PH-14 | 13:00 | BUY | 80.10 | 4.0 | HIBERNATED | O |
| Product | Start (UTC) | Side | Price | Quantity | Action | Type |
|---|---|---|---|---|---|---|
| PH-15 | 14:00 | BUY | 82.30 | 2.0 | FILL | O |
| PH-13 | 12:00 | SELL | 79.50 | 5.0 | FILL | O |
| PH-15 | 14:00 | BUY | 82.35 | 1.5 | FILL | O |
Your desk, in a browser tab.
Per EPEX SPOT user. Flat.
One price per EPEX SPOT user you connect to the platform. Flat and predictable, the same whether you run one virtual member or fifty.
Everything, for one trader.
- The Voltnir trading terminal: depth-of-book, order entry with pre-trade risk checks, real-time P&L, charts with VWAP, the XBID opportunity map, and the public trade tape.
- Runs on-premise as a single binary. No telemetry, nothing phones home. You own the data, and the off-switch.
- One user, trading your EPEX SPOT membership directly.
- The full API on three transports at parity: REST, WebSocket, and gRPC, plus a first-party Python SDK.
- Every EPEX SPOT M7 order type, with fill-or-kill, immediate-or-cancel, and timed validity.
- Self-trade prevention and an operator kill-switch that flattens the book on the exchange.
- Capture the live trade tape and raw order book to your own database for history and analysis.
- Append-only audit trail, every order and trade attributed to the user behind it, queryable and exportable.
The whole platform. One user.
If you're running a book.
- Unlimited users, each with their own login and granular per-action permissions
- Unlimited virtual members: subsidiaries, asset-operator clients, or white-label desks on one node
- Per-member position and cash limits, built to ECC Risk Management Services: separate EUR/GBP pools, an isolated pre-trade limit for every virtual member.
- Real-time P&L and exposure, isolated per virtual member, so each client or asset stands on its own book.
- Per-user member assignment
- Per-user audit trail and export permissions
- Trading terminal with user login
The whole platform. Your whole desk.
Every licence after your first costs less.
You shouldn't need a discovery call to know what software costs.
Talk to us about your desk.
Voltnir is a considered purchase for a trading desk, not a checkout. Tell us what you trade and who you trade it for, and we'll walk you through the software and get you licensed, usually within a working day. Or try it first: run it free on SIM below, no sales call.
Create a free account in the customer portal, download a simulator license, and have Voltnir trading against EPEX SPOT SIM in minutes. You'll need an EPEX SPOT ASIM account for the SIM credentials; if you don't have one yet, tell us and we'll help you get set up.