Concrete — Complete GuideIndependent guide, unofficial

06

Walkthrough: launching a vault (curator perspective)

Level: Advanced · Mirrors the worked example in the official architecture docs: a USDC vault allocating between an idle reserve and one looping strategy. Concrete's contracts are private; you need partner access (NDA) to build against them. This is a conceptual map, not deployable code.

Step 0 - decisions

DecisionOptions
Vault typeStandard (atomic) · Async (queued) · Predeposit · Bridged
StrategiesIdle · lending · looping · multisig (custodied)
AccountingOn-chain vs asynchronous (sets operator dependency + accountingValidityPeriod)
FeesManagement · performance · hurdle (APY/APR/dynamic) · splitter config
HooksDeposit cap · whitelist · deposit lock (±early-exit fee) via HookContainer
LimitsMax deposit, per-user cap, min/max amounts, withdrawal cap & cadence
RolesWho is Vault Manager, Strategy Manager, Allocator, Pauser, Withdrawal Manager

Step 1 - create

factory.create(version, ownerAddr, abi.encode(allocateModule, USDC, initialVaultManager, "Concrete USDC", "ctUSDC"), salt) deploys the proxy. Result: ROLE_ADMIN and VAULT_MANAGER → initialVaultManager; ownerAddr becomes the Ownable owner (authorised to call factory.upgrade). Not production-ready yet.

Step 2 - grant roles

From ROLE_ADMIN: grant STRATEGY_MANAGER, ALLOCATOR, PAUSER, and for async vaults WITHDRAWAL_MANAGER and PRIORITY_WITHDRAWAL_EXECUTOR. Until then no strategy can be added.

Step 3 - add strategies

STRATEGY_MANAGER calls addStrategy for the idle and looping strategies.

Step 4 - set deallocation order, then allocate

ALLOCATOR calls setDeallocationOrder (cover every strategy or some will be un-withdrawable) then vault.allocate(...) as deposits arrive.

Step 5 - attach hooks & limits (optional)

HOOK_MANAGER attaches hooks; VAULT_MANAGER sets caps. Fee recipients are set by the factory owner.

Step 6 - go-live checks

  • [ ] Roles split across independent keys/parties
  • [ ] Pauser (e.g. monitoring/emergency provider) in place
  • [ ] Deallocation order == active strategy set
  • [ ] Accounting validity period vs operator SLA
  • [ ] Hook combination tested (a reverting hook halts everything)
  • [ ] Audit report covers the exact implementation version
  • [ ] Monitoring & alerts (NAV thresholds, queue depth, LTV for looping)
  • [ ] Withdrawal cadence and caps documented for users
  • [ ] Upgrade plan (pull-based; paused vaults can't upgrade)

Step 7 - operate

Daily NAV/exchange-rate updates, epoch close/process/claim automation, strategy rebalancing, monitoring. For a hosted route see Enterprise.