Tier 1 Zellic 01/2026 Full protocol — ApxUSD, ApyUSD, CommitToken, UnlockToken, MinterV0, YieldDistributor, LinearVestV0, AddressList Report ↗
1 Critical 2 Medium 2 Low
All deal breakers pass. Material residual risks are an admin-controlled vesting-substitution path (setVesting) with no output-bounds validation or timelock, an ADMIN role with zero execution delay at $75M+ TVL, and entirely off-chain backing of apxUSD with no on-chain proof-of-reserve. These are counterbalanced by strong smart-contract architecture (OZ AccessManager, OZ ERC4626 with built-in inflation protection), three top-tier audits, a 30-day withdrawal cooldown that structurally blocks flash-loan extraction, and a doxxed ex-Kraken team.
Technical findings only — not financial advice.
| Surface | Controller | Type | Min Delay | Worst Case |
|---|---|---|---|---|
| apxUSD — UUPS upgrade | 0xf9862efc1704ac05e687f66e5cd8c130e5663ce2 ↗ | Multisig 3/6 | Instant | Replace apxUSD implementation — arbitrary mint or freeze of the stablecoin |
| apyUSD — UUPS upgrade | 0xf9862efc1704ac05e687f66e5cd8c130e5663ce2 ↗ | Multisig 3/6 | Instant | Replace vault implementation — full drainage of deposited apxUSD |
| apyUSD — setVesting() | 0xf9862efc1704ac05e687f66e5cd8c130e5663ce2 ↗ | Multisig 3/6 | Instant | Replace vesting contract with one returning inflated vestedAmount() — manipulate totalAssets and share price (HIGH finding F-C-02) |
| apyUSD — setUnlockToken() | 0xf9862efc1704ac05e687f66e5cd8c130e5663ce2 ↗ | Multisig 3/6 | Instant | Replace withdrawal mechanism — alter or bypass the 30-day cooldown that anchors flash-loan resistance |
| AccessManager — co-admin | 0xabdd8c8ee69e5f5180eb9352aeffc5ceead65e96 ↗ | Multisig 4/6 | Instant | Same authority as 3/6 admin; both Safes share an identical 6-signer set, so defense-in-depth between thresholds is limited |
| MinterV0 — apxUSD mint authority | 0x2c36e1adfaa80ee0324b04cc814f5207bb7ba76e ↗ | Contract | Instant | Schedule apxUSD mint up to supply cap ($100M); 60-second AccessManager delay between schedule and execute provides a brief reaction window |
| YieldDistributor — withdraw() | 0xf9862efc1704ac05e687f66e5cd8c130e5663ce2 ↗ | Multisig 3/6 | Instant | Withdraw accumulated yield. Blast radius bounded by MAX_FEE = 1% hard-cap |
| Item | Status | Evidence |
|---|---|---|
| EOA Upgrade Control | PASS | UUPS _authorizeUpgrade routes through AccessManager → 3/6 + 4/6 multisig. Deployer EOA (0x0442) revoked at block 24481052. |
| EOA Fund Control | PASS | No single-EOA fund withdrawal. YieldDistributor.withdraw() restricted to multisig. |
| >60% Governance Centralization | N/A | No governance token. Control is exclusively via multisig. |
| Governance Mechanism Bypass | N/A | No governance mechanism exists. |
| Timelock Backdoors | N/A | No timelock deployed. No emergencyExecute() or fastTrack() found. |
| No Emergency Controls | PASS | pause()/unpause() implemented on apxUSD, apyUSD, MinterV0, and CommitToken. |
| Item | Status | Evidence |
|---|---|---|
| Direct Pool Price Oracle | N/A | Managed single-asset vault; no external oracle consumed for share pricing. |
| Manual Price Control | PASS | No direct setPrice. Vesting substitution via setVesting() requires 3/6 multisig — not single-key. Flagged as HIGH finding. |
| Item | Status | Evidence |
|---|---|---|
| Known Compiler Bugs | PASS | Solidity 0.8.30 across all contracts. No known compiler-bug CVEs. |
| No Reentrancy Protection | PASS | CEI on critical paths (CommitToken._withdraw deletes state before call). ReentrancyGuardTransient on YieldDistributor. |
| Unlimited Minting | PASS | Supply cap ($100M) + MinterV0 rate limiting + 60s AccessManager delay + multisig. |
| Unsafe Delegatecall | PASS | No delegatecall to user-supplied addresses found. |
| Uninitialized Implementation | PASS | _disableInitializers() called in ApxUSD constructor (line 78) and ApyUSD constructor (line 90). |
| Unprotected Initializer | PASS | All initialize() functions use the initializer modifier with zero-address guards on all params. |
| Item | Status | Evidence |
|---|---|---|
| No Audit + High TVL | PASS | TVL ~$75.3M apxUSD supply. Three audits: Zellic (Jan 2026), Quantstamp (Feb 2026), Certora (Mar 2026). |
| Unverified Contracts | PASS | 7 of 7 core contracts verified on Sourcify with full metadata match. |
| Critical Unfixed Issues | PASS | Zellic critical finding addressed. Certora high finding confirmed fixed. |
| Item | Status | Evidence |
|---|---|---|
| Zero Flash Loan Protection | PASS | 30-day UnlockToken cooldown blocks same-block extraction. Architecture flash-loan-resistant by design. |
| Broken Tokenomics | PASS | Yield from off-chain MSTR preferred-stock dividends (real yield), not circular emissions. APY < 100%. |
| No Slippage Protection | PASS | depositForMinShares(), mintForMaxAssets(), withdrawForMaxShares(), redeemForMinAssets() all present. |
| Item | Status | Evidence |
|---|---|---|
| Centralized Bridge | N/A | Single chain (Ethereum mainnet). CCIP integration is interface-only. |
| No Transfer Limits | N/A | Not a bridge protocol. |
| No Token Verification | N/A | Not a bridge protocol. |
| Contract | Role | Holder | Powers |
|---|---|---|---|
| AccessManager | ADMIN (Role 0) | 0xf986...3ce2 (3/6 Safe) | Authorize UUPS upgrades, grant/revoke roles, call admin setters (setVesting, setUnlockToken) |
| AccessManager | ADMIN (Role 0) | 0xabdd...5e96 (4/6 Safe) | Co-admin authority (shared signer set with 3/6) |
| AccessManager | MINT_STRAT (Role 1) | MinterV0 (0x2c36...a76e) | Schedule apxUSD mints with 60s AccessManager delay |
| AccessManager | Role 6 | YieldDistributor (0xdbca...9c2a) | Yield-distribution operations |
| apxUSD / apyUSD / MinterV0 / CommitToken | Pause | 3/6 Safe | pause() / unpause() on each core contract |