Under active development. We're continuously fixing and improving the metrics and parameters, so scores and ratings may change. See changelog

RWABeat

Circle USYC

Tokenized shares of Hashnote International Short Duration Yield Fund, a Cayman fund that earns roughly the overnight Fed funds rate through reverse repo on US government securities and T-bills. Issued by Circle International Bermuda since Circle bought Hashnote in January 2025. About 98% of supply is on BNB Chain.

U.S. TreasuriesNon-US persons onlyTransfer-restrictedOnchain dataIssued by Hashnote Management LLC · Platform Hashnote (Circle)
Value
$2.37B
Stage
Stage 0
Disclosed
Single-key powers
37
Single key holds critical power
Oracle age
19h 45m
On schedule
Used as DeFi collateral
$115.89· 2 markets

Control

Who can freeze, mint, pause or upgrade, and what stops them?

Red

A single key can replace the contract code.

  1. A single key can replace the contract code.

  2. A single key can create new tokens.

  3. A single key can move tokens out of any wallet.

  4. A single key can destroy tokens in any wallet.

  5. A single key can change the onchain price.

  6. A single key can grant or revoke every other role.

  7. A single key can pause all transfers.

  8. A single key can change who may hold the token.

  9. The issuer doesn't document its admin powers; they're only visible onchain.

  10. The latest published audit is from 2024-03, more than two years ago.

  11. On ethereum, the token depends on a bridge (Circle CCTP, a TokenManagerProxy (likely Axelar)).

  • No public bug bounty.
  • Transfers are limited to allowlisted wallets.

Audits and bug bounty

  • Unnamed firm · USYC contracts1 Mar 2024

No public bug bounty found.

Chains and bridges

Holders on a bridged chain also depend on the bridge.

  • ethereumNative, and a bridge can mint · Circle CCTP, a TokenManagerProxy (likely Axelar)
  • bsc, arc, solanaIssued natively · Circle

Who controls USYC 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.

  • UpgradeCriticalRed
    USYC token ownerEOA0x13FF…2dD6

    None · via YieldCoin.upgradeTo, upgradeToAndCall · _assertOwner() (owner())

  • UpgradeCriticalRed
    Entitlements ownerEOA0x8fB0…2fC0

    None · via Entitlements.upgradeTo, upgradeToAndCall · _assertOwner() (owner())

  • UpgradeCriticalRed
    Teller ownerEOA0x8b1A…a55b

    None · via Teller.upgradeTo, upgradeToAndCall · _assertOwner() (owner())

  • MintCriticalRed
    TokenManagerProxy (bridge, likely Axelar ITS)Unknown contract0x6A41…C378

    None · via YieldCoin.mint · minterAllowance > 0

  • MintCriticalRed
    Unlimited minter, no roles (identity unknown)EOA0x85fB…d011

    None · via YieldCoin.mint · minterAllowance > 0

  • MintCriticalRed
    USYC PriceReporterPriceReporter0x9fde…23D7

    → EOA

    None · via YieldCoin.mint · minterAllowance > 0

  • MintCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via YieldCoin.mint · minterAllowance > 0

  • MintCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via YieldCoin.setMinterAllowance, incrementMinterAllowance, decrementMinterAllowance · creates minters (Entitlements capability, role 20)

  • MintCriticalRed
    USYC Teller (USDC)Teller0xeE35…30e6

    → EOA

    None · via YieldCoin.mint · minterAllowance > 0

  • MintCriticalRed
    Circle CCTP TokenMinterV2TokenMinterV20xfd78…D002

    → EOA

    None · via YieldCoin.mint · minterAllowance > 0

  • Force-transferCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via YieldCoin.transferFrom · fund-admin branch skips allowance and allowlist (role 255)

  • Burn from holderCriticalRed
    TokenManagerProxy (bridge, likely Axelar ITS)Unknown contract0x6A41…C378

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Burn from holderCriticalRed
    Unlimited minter, no roles (identity unknown)EOA0x85fB…d011

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Burn from holderCriticalRed
    USYC PriceReporterPriceReporter0x9fde…23D7

    → EOA

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Burn from holderCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Burn from holderCriticalRed
    USYC Teller (USDC)Teller0xeE35…30e6

    → EOA

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Burn from holderCriticalRed
    Circle CCTP TokenMinterV2TokenMinterV20xfd78…D002

    → EOA

    None · via YieldCoin.burn, burnFor · minterAllowance > 0

  • Set priceCriticalRed
    Oracle owner (nonce 0)EOA0x1DE1…9E98

    None · via GenericNextPriceAggregator.upgradeTo, upgradeToAndCall · onlyOwner (owner())

  • Set priceCriticalRed
    USYC PriceReporterPriceReporter0x9fde…23D7

    → EOA

    None · via GenericNextPriceAggregator.transmit, setNextPrice · msg.sender == reporter()

  • Set priceCriticalRed
    PriceReporter ownerEOA0x0a18…9f5a

    None · via PriceReporter.upgradeTo, upgradeToAndCall · _assertOwner() (owner())

  • Set priceCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via PriceReporter.setFeeSchedule, setTokenDetails, transmit +2 more · _assertFundAdmin() (fund admin, role 255)

  • Set priceCriticalRed
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Teller.setOracle · _assertFundAdmin() (fund admin, role 255)

  • Grant rolesCriticalRed
    USYC token ownerEOA0x13FF…2dD6

    None · via YieldCoin.transferOwnership · _assertOwner() (owner())

  • Grant rolesCriticalRed
    Oracle owner (nonce 0)EOA0x1DE1…9E98

    None · via GenericNextPriceAggregator.transferOwnership · onlyOwner (owner())

  • Grant rolesCriticalRed
    Entitlements ownerEOA0x8fB0…2fC0

    None · via Entitlements.setUserRole, setUserRoleBatch, setRoleCapability · owner() (role 255 grants)

  • Grant rolesCriticalRed
    Entitlements ownerEOA0x8fB0…2fC0

    None · via Entitlements.transferOwnership · _assertOwner() (owner())

  • Grant rolesCriticalRed
    PriceReporter ownerEOA0x0a18…9f5a

    None · via PriceReporter.transferOwnership · _assertOwner() (owner())

  • Grant rolesCriticalRed
    Teller ownerEOA0x8b1A…a55b

    None · via Teller.transferOwnership · _assertOwner() (owner())

  • PauseHighYellow
    Entitlements ownerEOA0x8fB0…2fC0

    None · via Entitlements.unpause · owner()

  • PauseHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.pause · Entitlements capability, role 255 (blocks every transfer and redemption)

  • Set complianceHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.setPublicCapability · Entitlements capability, role 255

  • Set complianceHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.setRoleCapability · Entitlements capability, role 255

  • Set complianceHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.setUserRole, setUserRoleBatch · Entitlements capability, role 255

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,183,723 · 13 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗

Who controls USYC 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.

  • UpgradeCriticalRed
    BSC Entitlements ownerEOA0x2D83…0782

    None · via Entitlements.upgradeToAndCall · onlyOwner (owner())

  • UpgradeCriticalRed
    USYC BSC token ownerEOA0xcd63…F70E

    None · via USYCSatellite.upgradeTo, upgradeToAndCall · onlyOwner (owner())

  • MintCriticalRed
    Unlimited minter, no roles (identity unknown)EOA0x85fB…d011

    None · via USYCSatellite.mint · minterAllowance > 0

  • MintCriticalRed
    Circle CCTP TokenMinterV2TokenMinterV20xfd78…D002

    → EOA

    None · via USYCSatellite.mint · minterAllowance > 0

  • Burn from holderCriticalRed
    Unlimited minter, no roles (identity unknown)EOA0x85fB…d011

    None · via USYCSatellite.burn · minterAllowance > 0

  • Burn from holderCriticalRed
    Circle CCTP TokenMinterV2TokenMinterV20xfd78…D002

    → EOA

    None · via USYCSatellite.burn · minterAllowance > 0

  • Grant rolesCriticalRed
    BSC Entitlements ownerEOA0x2D83…0782

    None · via Entitlements.setUserRole, setUserRoleBatch, setRoleCapability · owner() (role 255 grants)

  • Grant rolesCriticalRed
    BSC Entitlements ownerEOA0x2D83…0782

    None · via Entitlements.transferOwnership · _assertOwner() (owner())

  • Grant rolesCriticalRed
    USYC BSC token ownerEOA0xcd63…F70E

    None · via USYCSatellite.transferOwnership · onlyOwner (owner())

  • PauseHighYellow
    BSC Entitlements ownerEOA0x2D83…0782

    None · via Entitlements.unpause · owner()

  • Set complianceHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.setRoleCapability · Entitlements capability, role 13

  • Set complianceHighYellow
    USYC fund admin (role 255; issuer says MPC)EOA0xDbE0…800D

    None · via Entitlements.setUserRole, setUserRoleBatch · Entitlements capability, role 13

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,400,715 · 13 Oct 2026 · tool discovery-0.2.0 · View raw JSON on GitHub ↗