Skip to content

fcf wallet

Helpers for managing the wallet that signs FCF transactions. The wallet is a plain Ethereum keypair; fcf does not require any kind of FCF-managed identity on top.

fcf wallet create

Generates a new wallet and stores it locally.

bash
fcf wallet create [--force]
OptionDefaultDescription
--forceoffOverwrite an existing local wallet.

The wallet is written to a per-user config directory (the exact path is printed by the command). The address is printed to stdout:

text
wallet created: 0xabc...def
saved: /path/to/wallet.json

This wallet's private key is what fcf register will use to sign the on-chain transaction. Keep it private. If you lose it, you lose control of any RIK minted to that address.

Saves the local wallet's private key as a GitHub Actions repository secret in the current repository.

bash
fcf wallet link [--secret-name <name>]
OptionDefaultDescription
--secret-name <name>FCF_PRIVATE_KEYThe Actions secret name to write into.

Output:

text
wallet linked: 0xabc...def
secret set: FCF_PRIVATE_KEY

This is what allows the scaffolded GitHub Action to sign register() calls. The secret name defaults to FCF_PRIVATE_KEY because that is what the workflow template expects; if you change it here, you must change the matching reference in .github/workflows/fcf-register.yml.

fcf wallet link requires GitHub API auth to write the secret, either via gh auth login on the local machine or via GH_TOKEN/GITHUB_TOKEN in the environment.

How the CLI finds the wallet

When you run a command that needs to sign a transaction (fcf register, fcf keys sync), the CLI looks for the private key in this order:

  1. PRIVATE_KEY environment variable. Used as-is (must be 0x-prefixed hex).
  2. Local wallet store. Loaded from the path written by fcf wallet create.

If neither is present, the command exits with an error.

Security notes

  • Treat the local wallet as if it were any other private key on your machine. Back it up before you delete it.
  • Base Sepolia is currently the only network the protocol runs on; Base Sepolia ETH is not real money, but treating it as throw-away is still the safest habit while alpha.
  • For CI use, fcf wallet link is sufficient. The secret is written through GitHub's encrypted secrets API and is not retrievable in plaintext after writing.

Continue

Released under the Apache 2.0 License.