FalconX Credit Vault
Senior tranche of the FalconX credit vault on Pareto. USDC is lent to one FalconX borrower wallet, which funds prime-brokerage credit lines. Collateral sits offchain. The junior tranche has no tokens outstanding, so there is no onchain first-loss buffer. This is the vault FalconX announced and that rwa.xyz lists as AA_FalconXUSDC, not Plume's NFALCON or Sygnum's Desygnate. A deprecated Pareto deployment on Optimism is not tracked.
Control
Who can freeze, mint, pause or upgrade, and what stops them?
A single key can create new tokens.
A single key can create new tokens.
A single key can destroy tokens in any wallet.
A single key can change the onchain price.
Multisig signers aren't named, so their independence can't be checked.
A Safe module can act without the signers' approval.
A 3-of-6 multisig can change the onchain price with no timelock.
A Safe module can act without the signers' approval.
A 3-of-6 multisig can move the assets backing the token with no timelock.
A 3-of-6 multisig can grant or revoke every other role with no timelock.
The issuer doesn't document its admin powers; they're only visible onchain.
Audited by Sherlock (2025-08).
- 5 privileged functions still need manual review.
- Bug bounty on Immunefi, up to $50,000.
- Transfers are limited to allowlisted wallets.
Audits and bug bounty
- Sherlock · Idle Pareto update (credit vaults)1 Aug 2025
Bug bounty on Immunefi, up to $50,000.
Chains and bridges
Holders on a bridged chain also depend on the bridge.
- ethereumIssued natively · Pareto
Who controls AA_FalconXUSDC on Ethereum
Token and service contracts on the left, the accounts holding their powers on the right. Edge color is the risk status of that power.
Powers
Every privileged power we found, normalized to canonical power types.
- UpgradeCriticalGreenProxyAdmin0x9438…f351
→ Timelock 24h → Safe 3/6
1-day delay · via
Proxy upgrade · eip1967 admin - UpgradeCriticalGreenProxyAdmin0x9438…f351
→ Timelock 24h → Safe 3/6
1-day delay · via
Proxy upgrade · eip1967 admin - MintCriticalRedFalconX credit vault (IdleCDO)IdleCDO0x433D…be4d
→ EOA
None · via
IdleCDOTranche.mint · minter is the vault - MintCriticalRedFalconX credit vault (IdleCDO)IdleCDO0x433D…be4d
→ EOA
None · via
IdleCDOTranche.mint · minter is the vault - Burn from holderCriticalRedFalconX credit vault (IdleCDO)IdleCDO0x433D…be4d
→ EOA
None · via
IdleCDOTranche.burn · minter is the vault - Burn from holderCriticalRedFalconX credit vault (IdleCDO)IdleCDO0x433D…be4d
→ EOA
None · via
IdleCDOTranche.burn · minter is the vault - Set priceCriticalRedFalconX credit vault (IdleCDO)IdleCDO0x433D…be4d
→ EOA
None · via
IdleCreditVault.setApr, setAprs, setAprsWithBuffer · only the vault, which the operator drives at epoch stop - Set priceCriticalRedEpoch operator (single wallet)EOA0x1fb0…Df58
None · via
IdleCDOEpochVariant.startEpoch, stopEpoch, stopEpochWithDuration · owner or the strategy manager's operator. stopEpoch sets the interest and therefore priceAA - Set priceCriticalRedBorrower wallet (single wallet)EOA0xc08f…A2C6
None · via
IdleCDOEpochVariant.writeOffDeposit · borrower, and only while an epoch is running - Set priceCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant.startEpoch, stopEpoch, stopEpochWithDuration · owner or the strategy manager's operator. stopEpoch sets the interest and therefore priceAA - Set priceCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant.updateAccounting · _checkOnlyOwnerOrGuardian() (owner (guardian is an internal variable, initialized to the owner; no public getter)) - Allocate fundsCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCreditVault.setBorrower · owner. points the vault's only borrower - Allocate fundsCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCreditVault.transferToken · onlyOwner (owner) - Allocate fundsCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant.transferToken · owner, no timelock - Grant rolesCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCreditVault.renounceOwnership, setManager, transferOwnership · onlyOwner (owner) - Grant rolesCriticalYellowVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant.renounceOwnership, transferOwnership · onlyOwner (owner) - PauseHighGreenVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant.pause, unpause, emergencyShutdown · owner. startEpoch also pauses deposits itself - Set complianceHighGreenVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
No delay · via
IdleCDOEpochVariant._setLimit · _checkOnlyOwner() (owner) - UnclassifiedNeeds reviewVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
Needs review · via
IdleCreditVault.setMaxApr, setWhitelistedCDO · onlyOwner (owner) - UnclassifiedNeeds reviewEpoch operator (single wallet)EOA0x1fb0…Df58
Needs review · via
IdleCDOEpochVariant.setEpochParams, setInstantWithdrawParams, setIsDepositDuringEpochDisabled +1 more · _checkOnlyOwnerOrManager() (owner or the strategy manager's operator) - UnclassifiedNeeds reviewVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
Needs review · via
IdleCDOEpochVariant.setBBDepositEnabled, setFeeParams, setGuardian +4 more · _checkOnlyOwner() (owner) - UnclassifiedNeeds reviewVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
Needs review · via
IdleCDOEpochVariant.setEpochParams, setInstantWithdrawParams, setIsDepositDuringEpochDisabled +1 more · _checkOnlyOwnerOrManager() (owner or the strategy manager's operator) - UnclassifiedNeeds reviewVault owner Safe (3 of 6)Safe 3/60xFb3b…3814
Needs review · via
IdleCDOEpochVariant.setIsDepositDuringEpochDisabled · _checkOnlyOwnerOrGuardian() (owner (guardian is an internal variable, initialized to the owner; no public getter))
For regulated securities, freeze and force-transfer powers are often legally required. Control rates who holds them and what checks exist, not whether they exist. A single key holding a critical power or freeze is red; a multisig with no timelock is yellow.
Discovered at block 26,190,113 · 14 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗