Skip to main content
Addresses are deterministic from the contract bytecode and deployment parameters. Always verify the address you are interacting with against the expected bytecode hash for the parameters you configured.

How Addresses Are Derived

FlowGuard contracts compile to P2SH32 addresses. Each unique combination of constructor parameters produces a unique address. Two vesting covenants with different totalAmount values will have different addresses. The DeploymentRegistryService in the backend tracks all addresses deployed through FlowGuard along with the parameters used.

Mainnet

ContractVersionAddress
VaultCovenantv1.0See deployment registry
VestingCovenantv1.0Per-deployment (parameterized)
RecurringPaymentCovenantv1.0Per-deployment (parameterized)
AirdropCovenantv1.0Per-deployment (parameterized)
GrantCovenantv1.0Per-deployment (parameterized)
BountyCovenantv1.0Per-deployment (parameterized)
RewardCovenantv1.0Per-deployment (parameterized)
ProposalCovenantv1.0Per-deployment (parameterized)
VoteLockCovenantv1.0Per-deployment (parameterized)
Because each covenant is parameterized at deploy time, there is no single canonical address for most contracts. The deployment registry API at GET /api/deployment returns all active deployments with their parameters and addresses.

Chipnet (Testing)

Chipnet deployments are tracked separately in flowguard-chipnet.db. Use the API with BCH_NETWORK=chipnet to query chipnet deployments.

Verify a Contract

To verify that a given BCH address corresponds to a FlowGuard covenant with specific parameters:
curl https://api.flowguard.cash/api/deployment?address=<address>
The response includes the contract type, version, parameters, and the bytecode hash used to derive the address.