rebaseOptOut()from each EOA wallet that holds OUSD, or do nothing if you are storing OUSD on smart contracts. Non-rebasing OUSD behaves just like any other ERC-20 token.
rebaseOptIn(). This is due to the elastic supply and the rebasing nature of OUSD. Many exchanges sweep customer funds into a multi-sig wallet for cold storage. If you do this, you'll want to make sure that you opt-in to rebasing so that you are always earning.
balanceOf()function on our ERC20 contract. Users' balances will update at unpredictable times as new yield is generated by the protocol. As long as you aren't caching this value, users will always see the correct amount of OUSD that they are holding.