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
List your NVIDIA GPU on the Saudi DCP marketplace and begin receiving suitable jobs.
NVIDIA GPU with 8 GB+ VRAM (RTX 2060 or newer) OR Apple Silicon Mac (M1/M2/M3/M4).
Windows 10/11, macOS 12+ (Apple Silicon), or Ubuntu 20.04+.
Stable internet connection.
Automatically installed if not present.
You keep 75% of every settled compute job. Earnings are posted to your dashboard after job completion.
DCP takes a 25% platform fee. The remaining 75% is credited to your wallet when completed jobs settle.
Use your utilization and demand assumptions to build planning scenarios. Results vary by job mix, uptime, and active matching.
Submit a withdrawal request from your dashboard to move earnings from your wallet through the payout workflow.
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
Register at dcp.sa/setup. You will receive a unique API key (dc1-...) — copy it and keep it safe.
Register as ProviderDownload 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
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...
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"
}
}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)
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.
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.
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.
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.
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.
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.
Each status has one deterministic next action. Use the guide for commands or open support with this state prefilled.
Run the install command once, keep the daemon process open, and wait for the first heartbeat.
python3 dcp_daemon.py
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"
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"
Resume your provider from the dashboard and confirm heartbeat polling resumes.
Open /provider/dashboard and select Resume
Keep the daemon online and monitor your dashboard for queued compute jobs.
Open /provider/dashboard and check jobs + earnings panels
Publish compatible capacity in the Saudi GPU marketplace and start workload routing.