Janus Henderson Anemoy AAA CLO Fund
Tokenized shares of a BVI segregated portfolio holding AAA-rated CLO tranches, with Janus Henderson as sub-manager. Runs on the same Centrifuge V3 deployment as JTRSY. The same single wallet that sets JTRSY's price sets JAAA's NAV. That role used to be a 3-of-8 Safe. Subscriptions and redemptions are requests through ERC-7540 vaults. Solana and Stellar supply is backed by Ethereum escrows and is already inside the Ethereum figure. Plume, Monad and other non-tracked chains are not read.
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 move tokens out of any wallet.
A single key can destroy tokens in any wallet.
A single key can change the onchain price.
A single key can move the assets backing the token.
A single key can grant or revoke every other role.
A single key can freeze a holder's tokens.
Multisig signers aren't named, so their independence can't be checked.
A 2-of-7 multisig can create new tokens: few signers need to agree.
A 3-of-4 multisig can create new tokens with no timelock.
A 2-of-7 multisig can move tokens out of any wallet: few signers need to agree.
A 3-of-4 multisig can move tokens out of any wallet with no timelock.
A 2-of-7 multisig can destroy tokens in any wallet: few signers need to agree.
A 3-of-4 multisig can destroy tokens in any wallet with no timelock.
A 2-of-7 multisig can change the onchain price: few signers need to agree.
A 3-of-4 multisig can change the onchain price with no timelock.
A 2-of-7 multisig can move the assets backing the token: few signers need to agree.
A 3-of-4 multisig can move the assets backing the token with no timelock.
A 4-of-9 multisig can grant or revoke every other role: few signers need to agree.
A single key can pause all transfers.
A single key can change who may hold the token.
On ethereum, base, arbitrum, avalanche, bsc, solana, stellar, the token depends on a bridge (Centrifuge messaging (LayerZero, Axelar, Wormhole, Chainlink adapters), Ethereum escrow).
The issuer documents its admin powers.
Audited by Sherlock (2026-02).
- Bug bounty on Cantina, up to $250,000.
- Transfers are limited to allowlisted wallets.
Audits and bug bounty
- Sherlock · Centrifuge V3.1.0 deployment verification1 Feb 2026
Bug bounty on Cantina, up to $250,000.
Chains and bridges
Holders on a bridged chain also depend on the bridge.
- ethereum, base, arbitrum, avalanche, bscNative, and a bridge can mint · Centrifuge messaging (LayerZero, Axelar, Wormhole, Chainlink adapters)
- solana, stellarBridged copy · Ethereum escrow
Who controls JAAA 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.
- MintCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.mint · auth (wards) - MintCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.mint · auth (wards) - MintCriticalRedJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.setRequestManager, updateVault · _isManager(pool 281474976710663), swaps the contracts that issue shares - MintCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.mint · auth (wards) - MintCriticalYellowJAAA balance-sheet manager Safe (3 of 4)Safe 3/40x5684…5BfA
No delay · via
BalanceSheet.issue · isManager(pool 281474976710663) - Force-transferCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.authTransferFrom · auth (wards) - Force-transferCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.authTransferFrom · auth (wards) - Force-transferCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.authTransferFrom · auth (wards) - Force-transferCriticalYellowJAAA balance-sheet manager Safe (3 of 4)Safe 3/40x5684…5BfA
No delay · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Burn from holderCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.burn · auth (wards) - Burn from holderCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.burn · auth (wards) - Burn from holderCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.burn · auth (wards) - Burn from holderCriticalYellowJAAA balance-sheet manager Safe (3 of 4)Safe 3/40x5684…5BfA
No delay · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Set priceCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.updateSharePrice, notifySharePrice · _isManager(pool 281474976710663) - Set priceCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalYellowJAAA balance-sheet manager Safe (3 of 4)Safe 3/40x5684…5BfA
No delay · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Allocate fundsCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.updateContract · _isManager(pool 281474976710663), reconfigures pool contracts such as the on/offramp manager - Allocate fundsCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalYellowJAAA balance-sheet manager Safe (3 of 4)Safe 3/40x5684…5BfA
No delay · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Grant rolesCriticalRedMessageProcessor0x97cc…e30A
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedMessageDispatcher0xf837…0B27
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.deny, rely · auth (wards) - Grant rolesCriticalRedJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.updateHubManager, updateBalanceSheetManager · _isManager(pool 281474976710663) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.deny, rely · auth (wards) - FreezeHighRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.updateRestriction · auth (wards) - FreezeHighRedJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.updateRestriction · _isManager(pool 281474976710663), sent to the hook - FreezeHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.updateRestriction · auth (wards) - PauseHighYellowEOA0x0446…24Bf
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x0800…F155
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x4d47…f541
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x5e7A…3EE1
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x701D…02b9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x9eDe…AEA9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowSafe 1/20xb307…EB3a
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xd551…2616
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xE944…D28F
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighGreenCentrifuge ProtocolGuardian SafeSafe 4/90x9711…D225
No delay · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighYellowCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.file · auth (wards) - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.file · auth (wards) - Set complianceHighYellowJAAA hub manager (writes NAV; same key as JTRSY)EOA0x7Bf0…02eC
None · via
Hub.updateShareHook · _isManager(pool 281474976710663), swaps the transfer hook - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.file · auth (wards)
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,203 · 14 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗
Who controls JAAA on Base
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.
- MintCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.mint · auth (wards) - MintCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.mint · auth (wards) - MintCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.mint · auth (wards) - Force-transferCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.authTransferFrom · auth (wards) - Force-transferCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.authTransferFrom · auth (wards) - Force-transferCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.authTransferFrom · auth (wards) - Burn from holderCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.burn · auth (wards) - Burn from holderCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.burn · auth (wards) - Burn from holderCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.burn · auth (wards) - Set priceCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Allocate fundsCriticalRedJAAA balance-sheet manager (single wallet)EOA0x42b7…208f
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/70x02eB…5bc7
No delay · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Grant rolesCriticalRedMessageProcessor0x97cc…e30A
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedMessageDispatcher0xf837…0B27
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.deny, rely · auth (wards) - FreezeHighRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.updateRestriction · auth (wards) - FreezeHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.updateRestriction · auth (wards) - PauseHighYellowEOA0x0446…24Bf
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x0800…F155
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x4d47…f541
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x5e7A…3EE1
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x701D…02b9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x9eDe…AEA9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowSafe 1/20xb307…EB3a
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xd551…2616
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xE944…D28F
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighGreenCentrifuge ProtocolGuardian SafeSafe 4/90x9711…D225
No delay · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighYellowCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
Tranche.file · auth (wards) - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
Tranche.file · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
Tranche.file · auth (wards)
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 52,592,931 · 14 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗
Who controls JAAA on Avalanche
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.
- MintCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.mint · auth (wards) - Force-transferCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.authTransferFrom · auth (wards) - Burn from holderCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.burn · auth (wards) - Set priceCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Allocate fundsCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Grant rolesCriticalRedMessageProcessor0x97cc…e30A
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedMessageDispatcher0xf837…0B27
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.deny, rely · auth (wards) - FreezeHighRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.updateRestriction · auth (wards) - FreezeHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.updateRestriction · auth (wards) - PauseHighYellowEOA0x0446…24Bf
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x0800…F155
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x4d47…f541
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x5e7A…3EE1
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x701D…02b9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x9eDe…AEA9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowSafe 1/20xb307…EB3a
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xd551…2616
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xE944…D28F
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighGreenCentrifuge ProtocolGuardian SafeSafe 4/90x9711…D225
No delay · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighYellowCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.file · auth (wards)
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 98,623,704 · 26 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗
Who controls JAAA on Arbitrum
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.
- MintCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.mint · auth (wards) - Force-transferCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.authTransferFrom · auth (wards) - Burn from holderCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.burn · auth (wards) - Set priceCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Allocate fundsCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Grant rolesCriticalRedMessageProcessor0x97cc…e30A
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedMessageDispatcher0xf837…0B27
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.deny, rely · auth (wards) - FreezeHighRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.updateRestriction · auth (wards) - FreezeHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.updateRestriction · auth (wards) - PauseHighYellowEOA0x0446…24Bf
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x0800…F155
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x4d47…f541
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x5e7A…3EE1
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x701D…02b9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x9eDe…AEA9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowSafe 1/20xb307…EB3a
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xd551…2616
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xE944…D28F
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighGreenCentrifuge ProtocolGuardian SafeSafe 4/90x9711…D225
No delay · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighYellowCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.file · auth (wards)
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 514,718,617 · 14 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗
Who controls JAAA on BNB Chain
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.
- MintCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.mint · auth (wards) - MintCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/60x02eB…5bc7
No delay · via
BalanceSheet.issue · isManager(pool 281474976710663) - MintCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.mint · auth (wards) - Force-transferCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.authTransferFrom · auth (wards) - Force-transferCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/60x02eB…5bc7
No delay · via
BalanceSheet.transferSharesFrom · isManager(pool 281474976710663) - Force-transferCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.authTransferFrom · auth (wards) - Burn from holderCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.burn · auth (wards) - Burn from holderCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/60x02eB…5bc7
No delay · via
BalanceSheet.revoke · isManager(pool 281474976710663) - Burn from holderCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.burn · auth (wards) - Set priceCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Set priceCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/60x02eB…5bc7
No delay · via
BalanceSheet.overridePricePoolPerShare, overridePricePoolPerAsset · isManager(pool 281474976710663), within one transaction - Allocate fundsCriticalRedAsyncRequestManager0xF482…61Ae
→ EOA
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalRedUnknown contract0xF8b1…Ece7
None · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Allocate fundsCriticalYellowJAAA balance-sheet manager Safe (2 of 7)Safe 2/60x02eB…5bc7
No delay · via
BalanceSheet.withdraw, deposit · isManager(pool 281474976710663), moves pool escrow assets - Grant rolesCriticalRedMessageProcessor0x97cc…e30A
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedMessageDispatcher0xf837…0B27
→ EOA
None · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
BalanceSheet.updateManager · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.deny, rely · auth (wards) - Grant rolesCriticalYellowCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.deny, rely · auth (wards) - FreezeHighRedCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.updateRestriction · auth (wards) - FreezeHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.updateRestriction · auth (wards) - PauseHighYellowEOA0x0446…24Bf
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x0800…F155
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x4d47…f541
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x5e7A…3EE1
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x701D…02b9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0x9eDe…AEA9
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowSafe 1/20xb307…EB3a
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xd551…2616
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighYellowEOA0xE944…D28F
None · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - PauseHighGreenCentrifuge ProtocolGuardian SafeSafe 4/90x9711…D225
No delay · via
ProtocolGuardian.pause · onlySafeOrOwner: the Safe or any one of its owners - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighYellowCentrifuge BalanceSheet (shared)BalanceSheet0x12a1…f43e
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighYellowCentrifuge Spoke (shared)Spoke0xEC35…25aB
→ EOA
None · via
ShareToken.file · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
FullRestrictions.trustedCall · auth (wards) - Set complianceHighGreenCentrifuge Root (shared)Root0x7Ed4…368f
→ Timelock 2d → Safe 4/9
2-day delay · via
ShareToken.file · auth (wards)
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 127,582,341 · 14 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗