Stratum v1 Mining Infrastructure
DPMP

Intelligent Dual-Pool Mining Proxy

Split your SHA-256 hashrate across two pools with real-time oracle-driven rebalancing. One proxy, two pools, zero wasted hash power.

Built for Solo Miners

DPMP sits between your ASIC fleet and two upstream pools, intelligently routing hashrate where it matters most.

Oracle Auto-Balance

Real-time BTC and BCH network hashrate tracking automatically adjusts pool weights to optimize your mining allocation.

Three Scheduling Modes

Oracle auto-balance, manual slider, or direct per-miner assignment. Switch modes instantly from the dashboard with no miner restarts.

🛡

Fleet Health Scoring

Per-miner reliability tracking with EWMA-based health scores. Unreliable miners are automatically pinned to a single pool.

Adaptive Scheduling

Dynamic time-slicing with health-adjusted floors and stagger offsets prevents herding across your fleet.

📊

Deep Metrics

Fleet, worker, and pool stats with sortable tables, hashrate estimates, reject tracking, and Prometheus integration.

🔄

Worker On/Off Toggle

Temporarily disable any miner without disconnecting it. Shares are silently swallowed while the miner stays connected and hashing.

<0.3%
Typical Reject Rate
2
Simultaneous Pools
BTC/BCH
Oracle Support
24/7
Autonomous Operation

Three Modes, One Dashboard

Switch between modes at any time from the Home tab with no miner restarts required. Navigate between modes using the arrow buttons on each panel.

✨ Oracle

Oracle Auto-Balance

Let the oracle decide. DPMP polls live BTC and BCH network hashrate data every 10 minutes and automatically rebalances your split to keep you on the most favorable pool.

  • Fully autonomous operation
  • Responds to real network hashrate shifts
  • Live charts show BTC & BCH hashrate trends
  • Conservative clamping keeps splits within safe bounds
  • Falls back to 50/50 if data becomes stale
  • Note: Requires that you are hashing to a BTC and a BCH pool
⚙ Slider

Manual Slider

You set the split. A simple slider lets you define exactly what percentage of your hashrate goes to Pool A versus Pool B. DPMP applies your weights immediately with no restart.

  • Full manual control, 5% to 95% in steps of 5
  • Live weight display updates as you drag
  • Override takes effect without restarting miners
  • Scheduler Ratio gauge shows actual achieved split
  • Reset to config defaults with one click
🔧 Manual

Manual Assignment

Direct pool assignment per miner. Use the Fleet table dropdowns in the Stats tab to lock any individual miner to Pool A or Pool B. The scheduler is bypassed entirely.

  • Assign each miner independently to Pool A or B
  • Changes take effect immediately, no restart needed
  • Assignments persist across DPMP restarts
  • Ideal for testing, maintenance, or custom setups
  • Switch back to Oracle or Slider at any time
📊

Comprehensive metrics, always available

No matter which mode you choose, the full Stats tab remains active. Fleet health scores, per-miner hashrate estimates, reject rates, pool latency, share counts, and difficulty totals are all visible in one place — giving you complete visibility into your operation at all times.




See the About tab in the DPMP Dashboard for more details on all of the features, along with setup and configuration information.

Full Visibility, Real-Time Control

A built-in web dashboard gives you complete oversight of your mining operation from any browser on your network. Click any screenshot to enlarge.

Up and Running in Minutes

Three steps from install to mining on two pools simultaneously.

01 — INSTALL

Deploy DPMP

One-click install via the Umbrel Community App Store, or clone the repo for a bare-metal setup on any Linux box. Docker and native installs are both supported.

02 — CONFIGURE

Set Up Your Pools

On the Config tab, enter the host, port, and wallet address for each of your two pools. Assign the correct coin type if using Oracle Auto-Balance. Set your preferred Slice Seconds (10-15 recommended).

03 — MINE

Point Your Miners

Point your ASIC miners to the DPMP host on port 3351. Use any wallet address with your worker name appended (e.g., [address].[WorkerName]). DPMP handles the rest.

⚙ Pool Configuration

Define two upstream pools on the Config tab with host URL, port, and wallet address. Optionally assign a display name and coin type. For Oracle Auto-Balance, you MUST assign BTC to one pool and BCH to the other. Double-check your wallet addresses as all pool payouts are sent to the addresses defined here.

⏱ Scheduler Settings

Configure default pool weights and the Slice Seconds parameter, which sets the minimum time a Dynamic miner stays on one pool before switching. Start with 10 or 15 seconds for optimal fleet operation. Switch between Oracle, Slider, and Manual modes at any time from the Home tab without restarting.

⛏ Miner Setup

Point miners to your DPMP host IP on port 3351. The wallet address you enter in your miner is ignored by DPMP; only the worker name (after the period) is used. DPMP substitutes the wallet addresses from your pool configuration when communicating upstream.

📝 Logging

Real-time structured JSON logs on the Logs tab with event filtering and zip export. Logs rotate at 50MB with a maximum of 4 log files retained. Configure which events to display in the Logging Settings section of the Config tab.

Ready to Split Your Hashrate?

Available now as a one-click Umbrel app or a bare-metal install from GitHub.

Support the DPMP Project

BTC: bc1q9qrn7lsdnpy8w33dsdnu6cr4jdpg53zexgxh59
BCH: bitcoincash:qqlldmmc978u5u7uzas8cakxgfftraquxvjhcc8a3q