Docs>Architecture>Completion Reward>Completion Reward (Circles & FlexVault)

Completion Reward (Circles & FlexVault)

Capped, funded separately, paid only to the extent it’s actually funded. FixVault uses a fixed rate instead — see How FixVault Works.

A reward for finishing, not a rate of return

For Circles and FlexVault, there’s no accrual engine anywhere — no per-second interest, no compounding. A participant’s payout is their principal back, plus, once, a flat percentage bonus computed at the moment the Circle or FlexVault plan finishes. Entirely separate from the Circle bucket model above — it’s funded independently via fundRewards(), never drawn from contributions or the Deferred Savings pool. FixVault does not use this mechanism at all; its rate is fixed at deposit instead.

Ajo Circle: four stackable components

Because the participant bonus only exists for public circles, the resulting ceilings are 10% (public) and 8.5% (private, no participant component). Each component is paid only to the extent it was actually met — missing one forfeits that slice of the reward, never the principal.

ComponentApplies toBonus
Period threshold metFull rotation completed+4%
Amount threshold metContribution amount honoured+4%
Participant threshold metPublic visibility only+1.5%
Organizer discretionAny, granted manuallyup to +0.5%

FlexVault: a single all-or-nothing component

FlexVault has no stackable components — it’s a single reward capped at 15% per year, prorated to the plan’s configured duration, earned only on full completion of the schedule. There is no partial credit for a partially completed plan.

Never pay out unfunded value

fundRewards() (REWARD_FUNDER_ROLE) deposits tokens into an instance’s reward pool ahead of claims. A claim hard-requires the pool to actually hold enough to cover that specific claim before paying it — the claim reverts rather than paying out unfunded value. This applies to Circle and FlexVault completion rewards, and to FixVault’s fixed-rate reward alike.