Description of @Rod Vagg ‘s E2E local testing set up, current as of September 5, 2025
Components:
pdpv0rename
branchFoundry tools (including forge
and cast
) are used variously in this process. You can install them from here and keep them updated with foundryup
: https://github.com/foundry-rs/foundry?tab=readme-ov-file#installation
The Curio setup will require 2 BLS wallets, described below. It will also require an Ethereum style wallet (delegated) which is funded. This is also described below. But since you need two of them, they could be made with Metamask, Lotus or even cast wallet new
. Either way, you should import them into Foundry keystores, you can use cast wallet import <name> --private-key
to set up a keystore. Password optional (password-less is fine for testing accounts on Calibnet). You should remember the names of them, one is for your PDP miner, and the other is for your contract deployment and client interactions. The keystores will be located in ~/.foundry/keystores/ and you can recover private keys when you need them, e.g. with cast wallet private-key --keystore ~/.foundry/keystores/key-alias
.
Use the calibnet faucet to put some tFIL in your wallets: https://faucet.calibnet.chainsafe-fil.io/
Your client wallet will need USDFC tokens in order to make deals. This can be done in one of two ways:
Thankfully this is mostly a one-off process, once set up, Curio can be recompiled, cleared out and restarted with new contracts (mostly).
James’ Curio setup guides are a useful step-wise process to setting up a fresh Curio node just for running PDP: