Provider Guide

Join DCP as a GPU Provider

List your NVIDIA GPU on the Saudi DCP marketplace and begin receiving suitable jobs.

Requirements

GPU

NVIDIA GPU with 8 GB+ VRAM (RTX 2060 or newer) OR Apple Silicon Mac (M1/M2/M3/M4).

Operating System

Windows 10/11, macOS 12+ (Apple Silicon), or Ubuntu 20.04+.

Internet Connection

Stable internet connection.

Python

Automatically installed if not present.

Earnings

You keep 75% of every settled compute job. Earnings are posted to your dashboard after job completion.

75% Revenue Split

DCP takes a 25% platform fee. The remaining 75% is credited to your wallet when completed jobs settle.

RTX 3090 Example

Use your utilization and demand assumptions to build planning scenarios. Results vary by job mix, uptime, and active matching.

Withdrawal Requests

Submit a withdrawal request from your dashboard to move earnings from your wallet through the payout workflow.

Setup in 6 Steps

1

1. Check Prerequisites

Verify your system: NVIDIA RTX 2060+ (8 GB+ VRAM) or Apple Silicon Mac (M1-M4 with 16 GB+ unified memory). Windows 10/11 (no admin rights needed), macOS 12+, or Ubuntu 20.04+. Python 3.10+ auto-installed if missing. No Docker needed.

# Verify GPU driver (NVIDIA)
nvidia-smi

# On macOS Apple Silicon, no driver needed — MLX engine is used automatically

# Verify Python 3.10+
python3 --version
2

2. Create Your Provider Account

Register at dcp.sa/setup. You will receive a unique API key (dc1-...) — copy it and keep it safe.

Register as Provider
3

3. Download the Daemon

Download dcp_daemon.py with your API key pre-injected. Replace YOUR_PROVIDER_KEY with the key from step 2. The file is personalized — do not share it.

# Linux / macOS — one-line install with your key
# On Apple Silicon Macs, the MLX inference engine is used automatically
curl -sSL https://api.dcp.sa/install | bash -s -- YOUR_PROVIDER_KEY
4

4. Run the Daemon

Start the daemon process. It will detect your GPU, register with DCP, and send status heartbeats. Keep the process running or run it as a service.

# Linux / macOS
python3 dcp_daemon.py

Expected output

[DCP] dcp_daemon v4.0.0-alpha.2 starting
[DCP] GPU detected: NVIDIA RTX 4090 (24 GB VRAM)
[DCP] Provider ID: 42 | Status: online
[DCP] Heartbeat sent — next in 30s
[DCP] Waiting for jobs...
5

5. Verify in Dashboard

Open dcp.sa/provider and confirm your GPU is listed as online. You can also verify via the API with your provider key.

# Check your provider status via API
curl "https://api.dcp.sa/api/providers/me?key=YOUR_PROVIDER_KEY"

Expected output

{
  "provider": {
    "id": 42,
    "status": "online",
    "gpu_model": "RTX 4090",
    "last_heartbeat": "2026-03-19T18:00:00Z",
    "total_jobs": 0,
    "total_earned_sar": "0.00"
  }
}
6

6. Verify matched workload processing

When routing places a compatible workload, the app runs it via Ollama (Windows/Linux) or MLX (macOS Apple Silicon). Completed jobs create wallet entries in your provider dashboard.

Expected output

[DCP] Job received: job-abc123 (llm_inference, 30 min)
[DCP] Loading model via Ollama engine
[DCP] Inference running — executing job
[DCP] Job completed in 612s
[DCP] Earnings credited: +45.75 SAR (75% of 61.00 SAR)

Earnings & payouts

Every job your GPU completes earns SAR. Earnings accumulate on your provider account; you withdraw them to your Saudi bank account via Moyasar once you’re ready.

Revenue split: 75% to you

Every billed job credits you with 75% of the renter’s payment; DCP keeps 25% to fund the platform (routing, billing, support, infrastructure). The math is computed in halala (1/100 SAR) so there’s no rounding drift over time.

Earnings credit to claimable_earnings_halala the moment the inference call settles — visible on /provider/earnings.

Register your payout IBAN

Withdrawals route to whatever Saudi IBAN you register on /provider/settings (or in the onboarding wizard). Format: SA followed by 22 digits, holder name matching the bank account.

You can update the IBAN anytime; pending payouts will route to the new account once an admin approves them.

Request a payout

Minimum withdrawal is $50 USD (~187.50 SAR). Submit from /provider/withdraw; the amount is reserved from your claimable balance immediately so you can’t double-spend.

Status flow: pending → admin reviews → processing (Moyasar disburses) → paid (visible on your earnings page within seconds of the webhook). Or rejected — in which case the held amount returns to your claimable balance automatically.

Payout timing

Once an admin approves, Moyasar typically settles to your Saudi bank within 3–5 business days for inter-bank transfers (faster for SARIE same-bank).

You’ll get an email when the payout is approved and another when Moyasar reports it as paid. The reference number is the Moyasar payout id — useful if you need to follow up with your bank.

If a payout fails

Common reasons: invalid IBAN, holder-name mismatch, frozen account. DCP’s reconciliation cron polls Moyasar every 15 minutes for stuck payouts and will mark the request as rejected if Moyasar returns failed / canceled / returned. The funds are returned to your claimable balance automatically and you can re-submit after fixing the IBAN.

If you think a payout is genuinely stuck (Moyasar says paid but your bank hasn’t credited you within 5 business days), email payouts@dcp.sa with the payout id and the Moyasar reference. We can trace it on Moyasar’s side.

Onboarding status troubleshooting matrix

Each status has one deterministic next action. Use the guide for commands or open support with this state prefilled.

Registered (waiting for first heartbeat)

Run the install command once, keep the daemon process open, and wait for the first heartbeat.

python3 dcp_daemon.py

Heartbeat received (final checks in progress)

Keep the daemon running and verify recent heartbeat timestamps before waiting for jobs.

curl "https://api.dcp.sa/api/providers/me?key=YOUR_PROVIDER_KEY"

Heartbeat stale or disconnected

Restart the daemon, then verify API key validity and endpoint reachability checks.

curl -I "https://api.dcp.sa/api/providers/download/daemon?key=YOUR_PROVIDER_KEY"

Paused

Resume your provider from the dashboard and confirm heartbeat polling resumes.

Open /provider/dashboard and select Resume

Ready for matched jobs

Keep the daemon online and monitor your dashboard for queued compute jobs.

Open /provider/dashboard and check jobs + earnings panels

Frequently Asked Questions

Ready to Earn with Your GPU?

Publish compatible capacity in the Saudi GPU marketplace and start workload routing.