usdh.money Docs Enter app
No. 10 · Trust

Contracts and security

The addresses to use, who can do what to the contracts, and what has and hasn’t been checked.

Addresses#

All on Ethereum. Check you have the right address before you trust anything.

ContractAddress
USDh0xbcFC42391e55484129191eDfcC766a2c6F9eb503
sUSDh0x0a2F67c696B3845DaceEf73fa7982FEA77e678C2
Timelock0x9461fFd88eC07884338C7a2dB648D4d82F0a98D3

Who can do what#

PowerHeld bySpeed
Change the code, the rate cap or other settingsThe timelock contractOnly after 48 hours’ public notice
Pause everything, freeze one address, switch off a stablecoin that has lost its pegAn emergency wallet that needs several signaturesAt once
Set or pause the sUSDh reward rate, add or take out USDh in the staking contractA staking protocol wallet that needs several signatures, overseen by Publius Foundation for now. Not the USDh issuerAt once, within the cap
Make new USDhOnly against dollars or USDC that came in, from approved Mint User walletsAt once, within a daily limit

What no wallet can do: take or move your balance. Emergency powers can only stop things.

The full list of roles and how to check each one is on docs.hamilton.xyz.

Independent checks#

CheckStatus
Audit of the USDh and sUSDh contracts by an independent firmPlanned The firm, date and full report will be listed here
Monthly reserve reports by an independent firmPlanned Reports will be on the Transparency page in the app
Public bug bountyPlanned Scope and rewards will be announced here

Until then, you can check the contracts, supply and every admin change yourself. See Check it yourself.

Built on#

Small contracts on top of OpenZeppelin, open-source code used across Ethereum: the token standard, permissions, pause and gasless approvals. Every change path waits 48 hours in public.