Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

# Rate Provider: USPYield Optimized Stablecoin rate provider

## Details
This report was autogenerated on 02/07/2026.

- Deployed at:
- [Ethereum:0x9Ba7cB68fA96D022E20C3Dd2DD26b7Bf3e42fC1b](https://etherscan.io/address/0x9Ba7cB68fA96D022E20C3Dd2DD26b7Bf3e42fC1b)
- Audit report(s):
- [Audits](Audited by Omega Security,0xMacro,Hats Finance,and Audit33 — https://docs.piku.co/piku/piku/security-and-risks/audits)

## Context
USP is Piku Finance's yield-optimized stablecoin: backed ~1:1 by USD-denominated assets at issuance and appreciating in value as yield strategies accrue (~90% of yield is routed back into USP's backing pool rather than distributed). The rate provider was deployed via Balancer's ChainlinkRateProviderFactory (0x1311Fbc9F60359639174c1e7cC2032DbDb5Cc4d1) wrapping a Chainlink-interface NAV oracle "USP / USD" (0xb52eb13139905Eb11c472100a1E86cB1961b8EF3,6 decimals). That feed is a bounded wrapper enforcing MIN_ANSWER=0.90 / MAX_ANSWER=5.00 USD over an inner source oracle (0x433471901bA1A8BDE764E8421790C7D9bAB33552). getRate() currently returns ~1.1078e18. Docs: https://docs.piku.co

## Review Checklist: Bare Minimum Compatibility
Each of the items below represents an absolute requirement for the Rate Provider. If any of these is unchecked, the Rate Provider is unfit to use.

- [x] Implements the [`IRateProvider`](https://github.com/balancer/balancer-v2-monorepo/blob/bc3b3fee6e13e01d2efe610ed8118fdb74dfc1f2/pkg/interfaces/contracts/pool-utils/IRateProvider.sol) interface.
- [x] `getRate` returns an 18-decimal fixed point number (i.e., 1 == 1e18) regardless of underlying token decimals.

### Administrative Privileges
- [ ] The Rate Provider is upgradeable** (e.g., via a proxy architecture).
- [x] Other contracts which are part of the `getRate` callchain are upgradeable**. You can find more information
about the involved contracts in this [tenderly simulation](https://www.tdly.co/shared/simulation/c130444b-846c-43cd-b07e-f4bf6e37cac2)

## Conclusion
**Summary judgment: USABLE**

** upgradeable in this context means that:
- The contract is a proxy contract with an implementation sourced from Etherscan and the proxy emitted an "Upgraded" event.

14 changes: 14 additions & 0 deletions rate-providers/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -2820,6 +2820,20 @@
"implementationReviewed": "0x90fd843c68db38e2de0618acbb39341cba5a5abd"
}
]
},
"0x9Ba7cB68fA96D022E20C3Dd2DD26b7Bf3e42fC1b": {
"asset": "0x098697bA3Fee4eA76294C5d6A466a4e3b3E95FE6",
"name": "USPYieldOptimized StablecoinRateProvider.md",
"summary": "safe",
"review": "./USPYieldOptimized StablecoinRateProviderReview35b8.md",
"warnings": [],
"factory": "",
"upgradeableComponents": [
{
"entrypoint": "0x433471901ba1a8bde764e8421790c7d9bab33552",
"implementationReviewed": "0x62c49b6138d9926fcf86bb15b66193fcc9004470"
}
]
}
},
"fantom": {},
Expand Down