Why 3 slugs (not 1 product with 3 toggles)
Each Barker product maps to oneBarkerEngine contract which routes to one underlying ERC-4626 vault. APY, liquidity, and risk profile are all properties of the underlying vault. Treating the 3 tiers as 3 first-class products keeps:
- On-chain accounting clean — each tier’s AUM, shares, and fee accruals are independently auditable
- API responses simple —
latest_metrics.net_apy_for_useris a single number per slug - Vault upgrades isolated — migrating “aggressive” to a new underlying doesn’t affect the other tiers
- Reconciliation per-tier —
fee-statsendpoint already gives you tier-level yield breakdown for free
Naming convention
Use a stable suffix so your frontend can group them deterministically:| Tier | Suggested slug | Typical underlying | Typical APY range |
|---|---|---|---|
| Conservative | {partner}-conservative-{asset}-{chain} | Aave / Compound / Spark stablecoin supply | 4–6% |
| Balanced | {partner}-balanced-{asset}-{chain} | Curated yield aggregator (Yearn V3, Morpho) | 6–10% |
| Aggressive | {partner}-aggressive-{asset}-{chain} | Looped / leveraged stablecoin (sUSDe, leveraged USDC) | 10–20% |
acme-conservative-usdc-baseacme-balanced-usdc-baseacme-aggressive-usdc-base
Setup (one-time, in Portal)
For each tier:- Open Portal → Products → New product
- Pick chain and underlying vault from the catalog
- Set the slug per the convention above
- Set
risk_labeltoconservative/balanced/aggressive - (Optional) Set
display_name,description— shown verbatim if you ever fall back to the embed - Submit. The engine is auto-deployed on-chain; status moves
pending_deploy → activeonce confirmed (~5 minutes)
barkerFeeBps and partnerFeeBps can differ per tier.
Reading them in your frontend
risk_label is null on legacy single-tier products. If you don’t use multi-tier, ignore the field.
UI patterns
Tabbed (recommended):engine_contract_address and asset_address from the corresponding product, deposit flow is identical to single-tier.
Comparison table (good for first-time users):
Shifting funds between tiers
There is no protocol-level “rebalance” endpoint — different tiers are different ERC-4626 vaults. To move funds between tiers, the userredeems from one and deposits into another (two transactions, two signatures).
You can wrap this into a “Move funds” button in your UI. Pseudocode:
Fee policy
DefaultbarkerFeeBps + partnerFeeBps is the same across all 3 tiers, but each tier can be configured independently if you want to charge users differently for higher-risk tiers (e.g. lower fee on Conservative to win price-sensitive deposits, higher fee on Aggressive). Talk to your account manager.
What’s next
- Headless API integration — full deposit/withdraw flow
- Embed — drop in 3 iframes if you’d rather skip custom UI
- Compliance & risk — disclose risk differences per tier