Work through every row that applies to your depth.
| Check | How |
|---|
| Addresses pinned per chain id | Copy from Addresses; refuse to run against an address that fails the explorer’s verification |
| ABIs from the tagged source | forge build in contracts/ at the release tag the address table names |
| Vault set bound | vault.mandate(), vault.adapter(), adapter.vault() and mandate.vault() agree |
| SDK release pinned | Installed from https://note.systems/sdk/<file>.tgz; lockfile integrity equals the integrity in latest.json; lockfile committed |
| SDK matches the chain | factory.codeMatches() true and vaults.verifyBinding(vault) true at start-up on the chain id you ship |
| Check | How |
|---|
| USDG amounts in 6 decimals | Read asset().decimals(); never hard-code |
| Vault shares in 18 decimals | vault.decimals(); one share is one USDG at inception |
| Prices in 1e8 | s0, lastPrice and feed answers |
| Stock in 18 decimals | Raw balances, not balanceOfUI |
| Check | How |
|---|
| Every list is paged | vaults(start, count), requestsOf(owner, start, count), openSeriesOf(underlying) |
| Nothing self reported | Coupons from accruedCoupon, terms and fees from getSeries, vault mandate from mandate.* |
| Previews before signatures | previewDeposit, previewRedeem, previewWrap, previewUnwrap, requiredPrefund |
| Staleness shown | Surface the series feed’s updatedAt; a vault will not value breach stock from a feed older than PRICE_MAX_AGE (1 day) |
| Check | How |
|---|
| Paused | mandate.paused(); deposits and allocations revert, exits still work |
| Queue | Render Request.filledAssets − claimedAssets as claimable and the rest as pending |
| Breach | A series below barrier at maturity delivers stock; show the stock amount, not only the USDG figure |
| Under-matched | Refund path (core.refund) for the unmatched part of a subscription |
| Check | How |
|---|
| Stock Tokens | Not available to US persons; carry the issuer’s notice |
| Structured notes can lose value | State the breach outcome next to the coupon |
| Marks | Partner marks identify the network or product and imply no endorsement |
- Verified addresses and audit hashes pinned in your release notes.
- SDK version and tarball sha512 pinned in your release notes.
- One deposit and one exit exercised on testnet from your interface.
- Partner id registered on the mandate and visible through
mandate.partner(id).
- Contact: info@note.systems.