Skip to main content

System Overview

FlowGuard is composed of three layers: on-chain contracts, an off-chain backend (API + indexer + executor), and a frontend app.

Contract Dependency Map

NFT Commitment Sizes

ContractCommitment Size
VaultCovenant32 bytes
ProposalCovenant40 bytes
VestingCovenant40 bytes
RecurringPaymentCovenant40 bytes
AirdropCovenant40 bytes
GrantCovenant40 bytes
BountyCovenant40 bytes
RewardCovenant40 bytes
VoteLockCovenant32 bytes
All commitments are within the CashTokens 40-byte hard limit.

Indexer Data Flow

Executor Flow

Backend Service Map

ServiceResponsibility
StreamDeploymentServiceDeploy VestingCovenant and RecurringPaymentCovenant
StreamClaimServiceBuild claim() transactions for vesting
StreamCancelServiceBuild cancel() transactions
StreamFundingServiceFund existing stream UTXOs
PaymentDeploymentServiceDeploy RecurringPaymentCovenant
PaymentClaimServiceBuild pay() transactions
PaymentControlServicePause, resume, cancel payments
AirdropDeploymentServiceDeploy AirdropCovenant
AirdropClaimServiceBuild claim() for airdrop self-service
AirdropControlServiceAuthority pause/resume/cancel
BudgetDeploymentServiceDeploy Grant, Bounty, Reward covenants
BudgetReleaseServiceRelease milestones, issue rewards, approve bounty claims
VaultFundingServiceFund vault UTXOs
VoteDeploymentServiceDeploy VoteLockCovenant
VoteLockServiceLock governance tokens
VoteUnlockServiceReclaim after unlock time
ProposalServiceFull proposal lifecycle management
DeploymentRegistryServiceTrack all covenant deployments
TransactionMonitorConfirm and track submitted transactions
MerkleTreeServiceMerkle tree generation for airdrop eligibility
cycle-unlock-schedulerExecutor loop for recurring payments