Holding and moving USDh
- Use the proxy address
0xbcFC42391e55484129191eDfcC766a2c6F9eb503. Never the implementation address behind it. - 6 decimals, like USDC. Read
decimals()rather than hard-coding it. - Gasless approvals. EIP-2612
permit. The signing domain is nameUSDh, version1, chain ID 1. - Gasless transfers. EIP-3009
transferWithAuthorizationandreceiveWithAuthorization, with a random 32-byte nonce and a valid-after and valid-before time window. Signatures from contract wallets such as Safes work through EIP-1271. An unused authorization can be cancelled withcancelAuthorization.
When a transfer can fail
Plan for these, so a failed transfer doesn’t break your app.
A freeze never takes a balance. A frozen address keeps its USDh until it is unfrozen.
Minting and redeeming as an approved route
An approved route is a contract Hamilton has approved, after signing up, to mint and redeem for its users. To sign up, see How it works.- Approval is per calling address. Minting and redeeming are approved separately. The contract checks the address that calls it, not the one receiving USDh.
- Mint. Approve the stablecoin to the USDh contract, then call
mintWithStable(stable, stableAmount, to). USDh is minted toto, 1:1, in the same transaction. The accepted stablecoins are listed bysupportedStables(). - Redeem. Call
redeemForStable(stable, usdhAmount, to). USDh is burned from the caller and the stablecoin is sent toto, 1:1. - Redemption limit. Each address has its own limit every 7 days, checked by
effectiveRedeemCap(address). By default it is set to half the balance of the address USDh is minted to. If your contract mints to your users rather than to itself, ask Hamilton to set your limit, or redeeming fails withredeem cap not set. - No cap on minting with stablecoins. The daily ceiling applies only to minting against bank wires.
Events to watch
Go-live checklist
- You use the proxy address from Contracts.
- You read
decimals()from the contract. - Your app handles a paused system and a frozen address without breaking.
- You watch the timelock for scheduled changes to USDh.
- For approved routes: Hamilton has confirmed which of your addresses can mint and which can redeem.
- For approved routes: you have tested a small mint and a small redemption, and your redemption limit is set.
- For approved routes: your sanctions screening matches what your agreement with Hamilton requires.