Skip to content

Environment & Networks ​

The fcf CLI is configured almost entirely through environment variables. This page is the authoritative reference for them.

Variables ​

VariableUsed byDefaultDescription
PRIVATE_KEYfcf register, fcf keys synclocal wallet storeHex private key (0x...) of the signer.
RPC_URLfcf register, fcf keys sync, fcf listhttps://base-sepolia-rpc.publicnode.comRPC endpoint.
ACTIONS_ID_TOKEN_REQUEST_URLfcf registerunsetSet automatically by GitHub Actions runners with id-token: write.
ACTIONS_ID_TOKEN_REQUEST_TOKENfcf registerunsetSame as above.
GH_TOKEN / GITHUB_TOKENfcf github *, fcf wallet linkunset (falls back to gh auth)GitHub REST API token.
SKIP_STATIC_ABIAll ABI-using commandsunsetWhen set, load the ABI from the live Foundry artifact instead of the committed static copy. For local development only.

Chain selection ​

The CLI picks the chain based on RPC_URL:

  • If the URL contains the substring base-sepolia, it uses the Base Sepolia chain.
  • If the URL contains the substring sepolia, it uses the legacy Ethereum Sepolia chain.
  • Otherwise, it uses the foundry (local anvil) chain.

There is no flag override. To switch networks, change RPC_URL.

The protocol is currently testnet-only. Pointing the CLI at a mainnet RPC will not work against the deployed contract; there is no mainnet deployment yet.

Local development against Anvil ​

A repo-level helper script makes this one command:

bash
./local-rpc.sh src/RIK.sol:RIK

This starts a local Anvil node, deploys the RIK contract, and prints the RPC URL, the deployer private key, the owner, and the contract address. You can then run the CLI against it:

bash
PRIVATE_KEY=<printed-key> \
RPC_URL=http://127.0.0.1:8545 \
fcf list --contract <printed-address>

Because the URL doesn't contain sepolia, the CLI auto-selects the foundry chain.

OIDC tokens outside Actions ​

fcf register will not be able to fetch an OIDC token unless it's running inside a GitHub Actions runner with the right permissions. If you need to run it locally for debugging, capture a valid token from a previous Actions run (its aud claim must match your local wallet address) and pass it explicitly:

bash
fcf register --contract <addr> --oidc-token <jwt>

Tokens expire after ~15 minutes.

Continue ​

Released under the Apache 2.0 License.