Cluby — credit against tokenized stocks
Credit against tokenized stocks.
Post NVDA, SPY or AAPL as collateral and borrow USDG — without selling the position.
Markets Chain Custody Performance fee
Deposits, collateral, debt and liquidations live inside Morpho Blue — immutable, audited, and impossible for us to upgrade or reach into. What we build is the curation layer above it: the markets, the oracles, the risk parameters, the routing.
Nothing here takes custody. Routers hold no balance between transactions, and the liquidator funds itself entirely from flash loans — which is why the protocol needs no treasury standing behind it.
Your money sits in code that cannot change, and our code cannot touch it.
35 isolated markets, live. Liquidation thresholds and oracles are fixed when a market is created and cannot be edited by anyone, us included — an LLTV is part of a market's identity, not its storage, so changing one does not edit a market, it names a different market that does not exist.
flowchart LR
O["cluby-oracles"] --> M["Morpho Blue<br/><i>not ours</i>"]
L["cluby-lens"] --> M
FL["cluby-liquidator"] --> M
LR["cluby-leverage-router"] --> M
K["cluby-keeper"] --> L
K --> FL
SDK["cluby-sdk"] --> L
MCP["cluby-mcp"] --> SDK
style M fill:#002C1E,color:#fff
style O fill:#03926B,color:#fff
style SDK fill:#0FAF83,color:#fff
| Repository | What it holds | |
|---|---|---|
| cluby | The monorepo — interface, indexer, deploys, 101 tests | |
| cluby-oracles | A TWAP that verifies its own pool's memory before it will deploy | 10 tests |
| cluby-liquidator | Liquidation with zero capital and a floor it will not sell below | 4 tests |
| cluby-leverage-router | Leveraged open and close in one transaction | 9 tests |
| cluby-lens | Every number the site reads, with pending interest applied | 12 tests |
| cluby-incentives | Rebates that cannot be published unfunded | 16 tests |
| cluby-token-registry | A contract address that changes only on chain | 7 tests |
| cluby-keeper | A watchdog whose every power reduces exposure | |
| cluby-mcp | So an agent can read the protocol directly | |
| cluby-sdk | One implementation of the arithmetic, shared by all of them |
Each of these is a comment in the code, not a blog post.
A tokenized stock can lie about its own balance. Twelve of the 203 tokenized equities on this chain carry a display multiplier that is not one — one holds a single unit and shows you four. Read it as a quantity and you misprice collateral fourfold, and never notice until a liquidation fails to clear.
A Uniswap pool remembers about one minute by default. A thirty-minute TWAP against a sixty-second observation ring is a number that looks like a price. Extending the ring is permissionless, not free, and nobody's job — so it does not get done.
A call into an address with no code reverts with empty data. No reason string, which reads downstream as "this market is broken" rather than "this deploy is broken".
cast send exits 0 on a transaction that mined and reverted. Over the node's per-transaction gas ceiling a transaction is not rejected — it is mined, burns the entire limit, and moves nothing.
cluby.cash · docs · source · @ClubyTech