Snark Market (Consumer)
This page explains how to set up a consumer (GPU saver) for the Curio Snark Market (experimental).
⚠️ Experimental Feature in Testing This feature is currently experimental and under active testing. Interfaces, behaviors, and requirements may change without notice.
🔧 What is the Snark Market (Consumer)?
The Snark Market allows Storage Providers to buy proof computation from the market instead of running GPUs locally. You offload PoRep and Snap proof work to providers in exchange for FIL — a "GPU saver" approach that lets you complete the C2 (proof) phase of sealing without local GPU capacity.
To sell proof compute (be a provider), see Snark Market.
⚙️ Prerequisites
Before enabling the Snark Market consumer on your node:
You must be running a Curio node with a sealing pipeline (PoRep or Snap tasks).
You must have a working web UI (your browser can access ports exposed by Curio).
You need a Lotus node installed and the Filecoin mainnet chain synced. Refer to lotus documentation here: https://lotus.filecoin.io/lotus/install/linux/
You need YugabyteDB installed. 👉 Follow the official setup instructions here: https://docs.curiostorage.org/setup#setup-yugabytedb
⚙️ System Requirements
No GPU required for consumers — you buy proofs from the market.
Standard sealing node RAM and storage.
Curio v1.27.0 or later (Snark Market is included in official releases).
FIL balance on Mainnet (to pay for proof compute).
🛠️ Step-by-step Setup
1. Enable Remote Proofs in Configuration
Go to
Overview→Configuration, and select your miner or sealing layer.Find the Subsystems section.
Set
EnableRemoteProofsto true.Save and restart the node.
2. Add and Fund Client Wallets
Navigate to Snark Market in the sidebar. Under Client Wallets:
Add Wallet: Click Add Wallet and enter an f1 address you control. You can use an existing wallet (e.g. worker, collateral) or create a dedicated one — SPs typically already have funded wallets.
Deposit: Click Deposit to move FIL from that wallet's chain balance into the payment router. You need available balance in the router to pay for proofs.
3. Configure Client Settings
Under Client Settings (right side of the page):
Accept the Client Terms of Service when prompted.
Click Add SP. Enter your SP address and the client wallet address (use a wallet you added in Client Wallets).
For each SP row:
Check Enabled.
Set Wallet to the f1 address you will use for payments.
Set buy_delay_secs — delay before outsourcing work (allows local GPU to take it first if you have one).
Enable do_porep and/or do_snap for the proof types you want to buy.
Set FIL/P (max price per proof; market price must be ≤ this).
Click Save.
📈 Pricing
FIL/P is the maximum you are willing to pay per P. One P (one "proof unit") equals the cost of a single 32 GiB C2 (PoRep) proof — the SNARK proof generated after C1 during sector sealing.
32 GiB C2 (PoRep)
1×
1 × (FIL/P)
0.005 FIL
32 GiB Snap (UpdateEncode)
1.6×
1.6 × (FIL/P)
0.008 FIL
Example: If you set FIL/P = 0.005 and the market price is at or below that, a 32 GiB C2 will cost ~0.005 FIL and a 32 GiB Snap proof will cost ~0.008 FIL. The market price fluctuates; your configured FIL/P is the maximum you will pay — proofs are only purchased when the current market price is at or below your limit.
Check the public dashboard for the current Min price; use it to set your FIL/P accordingly.
🔄 Balance Manager (Optional)
To automatically top up client wallet balances:
Go to Wallet → Balance Manager.
Click Add SnarkMarket Client Rule.
Set Subject to your client wallet address.
Set Low and High watermarks (in FIL).
Save.
The Balance Manager will deposit FIL from the wallet's chain balance into the router when the available balance falls below the low watermark.
✅ Verify
View Requests: For each SP, click View Requests to see in-flight and completed proof requests.
Client Messages: Shows deposit and withdrawal status for client wallets.
🧪 Notes
buy_delay_secs gives your local GPU (if any) time to take work before outsourcing. Set to 0 to outsource immediately when local capacity is idle.
Work is only sent to the market when the current price is ≤ your configured max FIL/P.
Ensure client wallets stay funded; otherwise proofs cannot be purchased.
Let us know on Slack if you're testing #fil-curio-help — we'll be actively monitoring for feedback and performance 🚀
Last updated