01
What Clubhouse is
Clubhouse turns a coin into a club. A creator launches a club coin, a Club Pass collection and a stock-reward vault in one transaction; every trade of the coin pays a fee, and the club's share of that fee is converted into real tokenized stocks that Club Pass holders claim into accounts they control.
There are no dues and no donations. Trading volume on the club coin is the only fuel: a fixed part of every trade goes to the venue, the platform and a CLUB buyback, and the rest — the club flow — belongs to the founder until the first Club Pass is minted, then to the club's reward pot forever after. Anyone can move money along the loop (Route, Clock In) because every step settles to the club, never to the caller.
Everything described here is on-chain on Robinhood Chain. The Clubhouse interface reads contract state and prepares transactions; it never holds funds, keys or reward entitlements. Where a figure below is set per club or adjustable by the platform, the text says so — the club page and Studio always show the live value.
- Chain
- Robinhood Chain (chain ID 4663)
- Coin venue
- letscash.fun today; Pons is offered in the launch wizard when the venue is enabled on the factory.
- Rewards
- Tokenized stocks bought on canonical Uniswap V3 pools — AAPL, AMZN, NVDA, GOOGL, TSLA, USO, SPY are approved today; each club picks 1–5.
- Who can act
- Trade: anyone. Route and Clock In: anyone (gas only). Claim: anyone may sponsor a claim, but it always lands in the pass's own account. Move assets out: only the pass's current holder.
02
The money loop, end to end
From a single trade to a stock share in a pass account. Seven steps, three of them permissionless.
- 01
A trade happens
Every buy or sell of the club coin on its venue pays the club's trading fee. The fee tier is chosen at launch and locked for the coin's life. - 02
The fee is split
Three slices are fixed shares of trading volume, not of the fee: 0.3% stays with letscash.fun, 0.1% goes to the platform vault and 0.2% goes to the CLUB buyback burner. Whatever remains of the tier is the club flow. - 03
Route / Collect
Fees accrue at the venue until someone presses Route on the club page (the router's collect). Anyone can. The router pulls the accrued ETH, books the platform and buyback slices, and forwards the club flow. - 04
Reward pot
Before the first mint the club flow is credited to the club owner, who can withdraw it. The first successful mint checkpoints that balance and permanently switches the router: from then on the club flow is forwarded to the club's reward vault, where it waits as the reward pot. - 05
Clock In
Once minting is finalized and the club's Clock In policy is ready, anyone can Clock In. A club can require an ETH target, a daily UTC opening, or both; new clubs default to an amount target of 0.01 ETH. One transaction converts the pot into the club's stock basket and records a reward round. - 06
Stock basket
The pot is divided equally across the 1–5 stocks the creator selected. The stocks stay in the vault, reserved for that round. - 07
Per-pass claims
Every eligible Club Pass claims its weighted share of each round into its own on-chain account. Unclaimed shares wait indefinitely; they never expire and cannot be redirected.
The fee split, to scale
The three fixed slices (0.3% venue, 0.1% platform, 0.2% CLUB buyback) are constants in the factory and are written into each club's fee router at launch, so a later platform change cannot touch an existing club. The tier is the creator's choice: the launch wizard offers 1%, 5% and 10% on both venues, giving a club flow of 0.4%, 4.4% and 9.4% of volume respectively.
On Pons the tiers are built differently but land in the same place: every Pons coin carries a 1% base pool fee, of which Pons keeps its protocol share (30%) and the club gets the rest; the 5% and 10% tiers add a creator tax on top that Pons pays to the club in full. The platform and buyback slices are the same fixed constants, and the wizard shows the resulting club flow read live from Pons' config and policy.
The strip on every club page
03
Club Passes
A Club Pass is the club's membership NFT. It carries a reward weight, and it owns an on-chain account that the pass's current holder controls.
Minting phases
A collection has a fixed total supply (up to 10,000) and up to 8 mint phases in order. Each phase sets a start and end, a price in ETH, a per-wallet limit, a cumulative supply cap, and optionally an allowlist. Phases never overlap, caps only rise, and the last cap must equal the total supply. A single transaction can mint up to 50 passes.
Allowlists are Merkle roots. Each entry pairs a wallet with an allowance; if the allowance is lower than the phase's wallet limit, the allowance wins. Proofs are generated when the creator uploads the list and are served to the mint page only when they match the root currently on-chain.
What a mint costs: price × quantity, paid to the creator's proceeds balance, plus a platform service fee per pass (currently 0.0005 ETH for new clubs; the value is stored in the collection at launch and cannot change for that club).
TBA: a creator whose mint has not started may move the whole schedule to a provisional date 30 days out and label it "TBA" in Studio; the real date is set later by editing the phase. A phase that is live keeps its start time; a phase that has ended can no longer be edited. The creator may also freeze the schedule, which makes every remaining term immutable.
Finalizing: once the collection sells out or the last phase ends, anyone can finalize the mint. Finalizing fixes the eligible supply for rewards and unlocks Clock In. The creator may close an under-performing mint early (unless the schedule is frozen). If the last phase ends with zero passes minted, the collection is cancelled and any pre-reward ETH in the vault is refunded to the club owner.
The first mint is a one-way door: it settles the founder's pre-mint fees and switches the fee router to the reward vault permanently.
The account behind every pass
Every Club Pass has a token-bound account (ERC-6551) derived from the canonical registry, the collection address and the pass number. The address is known before it exists on-chain and never changes; the account is deployed the first time a claim is delivered to it (or by the portfolio, if you send from it earlier). Reward claims can only ever be delivered here — a claim never has a "recipient" field.
Owner-controlled means exactly one thing: the wallet that currently owns the pass is the only signer the account accepts. That wallet can send ETH, send stock tokens or call any contract from the account. Nobody else — not the creator, not the platform — can move what is inside.
Transfers carry the account. Selling or transferring a pass hands over control of its account with everything in it, plus the pass's activation, boost level and any unclaimed round shares. Assets do not move to the new owner's wallet; they stay in the same account, now under the new owner's control. The collection refuses a transfer of a pass into its own account, which would lock both forever.
Royalties, artwork and reveal
Collections implement ERC-2981 with a royalty of up to 10%, editable by the club owner. Newer collections can additionally turn on royalty enforcement: while it is on, only allowlisted marketplace contracts may be approved as operators. Direct wallet-to-wallet transfers are never filtered.
Passes show a placeholder image until the creator reveals the collection by setting a base URI; token metadata is then baseURI/<id>.json. After a reveal the creator may freeze metadata, which makes the artwork permanent.
- Standard
- ERC-721 with ERC-2981 royalties; ownership is two-step and cannot be renounced.
- Total supply
- Fixed at launch, up to 10,000.
- Phases
- Up to 8; public or allowlist (Merkle); price, wallet limit, cumulative cap.
- Per transaction
- Up to 50 passes.
- Service fee
- 0.0005 ETH per pass for new clubs, fixed per club at launch.
- Account
- ERC-6551 via the canonical registry; controlled by the pass's current owner.
04
Rewards & claiming
Rewards are pull-based. Clock In records a round; each pass claims its share of that round whenever it likes.
Rounds
A round is one Clock In: the ETH converted, the stocks bought and how much of each, the snapshot block (the block before the Clock In), the number of participating passes and their total weight. Once written, a round never changes. Basket changes, later activations and later boosts affect the next round only.
A pass's share of each stock in a round is amount × weight ÷ totalWeight, capped by what is left in that leg. When every participant of a round has claimed, any rounding dust is released back to the vault's free balance for future rounds.
Weight snapshots
Weights are read at the snapshot block, not at claim time. In an Equal club every minted pass weighs 1×. In a Boost club every pass starts at 1× and boosted passes weigh more. In an Activation club only passes that were active at the snapshot participate — an inactive pass has zero weight and zero share.
This is why a pass activated (or boosted) after a round was opened has no share in that round: the round's participant set and total weight were fixed one block before Clock In. It joins every round opened after its activation lands.
Claiming
A claim delivers one pass's unclaimed share of one round to the pass's account, deploying the account if this is its first delivery. Anyone may pay the gas for a claim; the destination is fixed. Each stock leg is tracked separately, so if one stock's transfer fails (for example a paused token) the other legs are still delivered and the failed leg stays claimable.
| Path | Where | What it does | Limits |
|---|---|---|---|
| claim | All vaults | One pass, one round. | — |
| claimMany | All vaults | A list of (round, pass) pairs; already-claimed and ineligible pairs are skipped instead of reverting. | 20 pairs per transaction |
| claimAllForToken | Newer vaults | Sweeps a window of rounds for one pass with a single account deployment and one transfer per stock. | 120 rounds per transaction |
The club page picks the path for you. On newer vaults it asks the vault for the open rounds and sweeps them in windows of 120; on legacy vaults (clubs created before the sweep existed) it claims round by round in chained batches of 20. Legacy claiming pays a transfer per stock per round, roughly 84k gas per round — a long backlog means several wallet confirmations, which the page walks you through.
05
Activation & Boost
Optional, per club, locked at launch: passes can be required to burn the club coin to earn at all, and can burn more for a permanently larger share.
| Mode | Start weight | Coin burn | Levels |
|---|---|---|---|
| Equal | 1× | None | — |
| Boost | 1× | Optional, per level | 1–4 |
| Activation | 0× | Once, to activate | — |
| Activation + Boost | 0× | Once to activate, then per level | 1–4 |
Base weight is 1× (10,000 basis points in the contracts). It is what every pass in an Equal or Boost club has for free, and what an activated pass has in an Activation club.
Activation burns a fixed amount of the club coin — the activation cost, set by the creator at launch — once per pass. It is permanent, belongs to the pass number, and follows the pass when it is transferred. Until a pass is activated it has zero weight and earns nothing.
Boost levels are a ladder of up to 4 steps, each with a cumulative coin cost and a multiplier strictly above the previous one, up to 5×. Moving up pays only the difference between the target and current cumulative cost. Boosts can only climb — there is no downgrade and no refund — and, like activation, they belong to the pass. In an Activation + Boost club a pass must be active before it can boost.
The burn is real: the manager pulls the approved coins, calls the token's burn and verifies that total supply fell by exactly that amount inside the same transaction. Batch versions exist for holders with several passes.
06
Clock In
The single transaction that turns a club's ETH into stocks and opens a reward round. Anyone can run it.
- Who
- Anyone, from the club page's money loop. The factory owner and designated keepers can also run it with fresh off-chain quotes.
- Policy
- The creator chooses amount only, daily UTC time only, or both. New clubs default to an amount target of 0.01 ETH; the creator can update future rounds from Studio.
- Preconditions
- Minting finalized; the selected amount and/or time conditions ready; the Factory dust floor met; at least one participating pass with weight (in Activation clubs, at least one activated pass); reward conversion not paused.
- Daily schedule
- At the selected UTC time the window opens for the rest of that UTC day. Only one round can open per UTC day, missed days do not create catch-up rounds, and owner/keeper calls cannot bypass it.
- Amount-only cooldown
- Permissionless amount-only calls retain a 6 hours anti-fragmentation cooldown. The owner/keeper quote path is exempt from that cooldown, but never from a configured daily schedule.
- Deadline
- The caller passes a deadline (the interface uses ten minutes); a late transaction reverts instead of trading at a stale price.
What happens on-chain
- 01
The pot is measured
Any ETH forced into the vault outside the router is synced first. If the total is below the minimum, the call reverts and nothing changes. - 02
Weights are snapshotted
Participant count and total weight are read at the previous block from the boost manager (or from the eligible supply in Equal clubs). - 03
The pot is split
Equal ETH per stock in the current basket; a remainder of a few wei goes to the first stock. - 04
Each stock is bought
ETH → WETH → USDG → stock on canonical Uniswap V3 pools, through the platform's swap router. Each leg must return at least the factory's minimum-output floor for that stock; the caller cannot lower it. If any leg fails, the whole Clock In reverts and the ETH stays in the pot. - 05
The round is written
Snapshot block, participants, total weight, and per-stock amounts are recorded. The stocks stay in the vault, reserved for that round's claims.
The stock basket is 1–5 tokens from the factory's approved list (today AAPL, AMZN, NVDA, GOOGL, TSLA, USO, SPY). The creator can change it at any time from Studio; the change applies from the next Clock In, and every earlier round keeps the stocks it bought.
07
CLUB token & buyback-burn
CLUB is the platform token. It is not any club's coin — every club has its own — but every club's trading volume buys and burns it.
0.2% of every club coin's trading volume is booked by that club's fee router as the buyback slice and forwarded, on each Route, to the buyback burner. The burner accepts deposits only from fee routers the factory registered.
executeBuyback is permissionless. When the burner holds at least the minimum (currently 0.001 ETH), anyone can run it. One run spends the balance up to the per-run cap (currently 0.04 ETH), swaps ETH for CLUB on the Uniswap v4 pool, requires at least the factory-set minimum CLUB-per-ETH, and burns every token it bought inside the same transaction — verifying that CLUB's total supply fell by exactly that amount.
ETH in the burner can never be withdrawn. The contract has no owner, no recipient parameter and no withdraw function. Its only outflow is a swap whose output is burned. The factory owner can adjust the minimum, cap and price floor, and can pause execution; a pause stops runs, not deposits.
- Source
- 0.2% of trading volume from every club, regardless of fee tier or venue.
- Run size
- Between 0.001 ETH and 0.04 ETH per run today; factory-owner adjustable.
- Where to watch
- Analytics shows CLUB burned, read live from the burner.
08
For creators (Studio)
Launching a club is one wizard and one transaction. Afterwards, Studio is where the club is run.
Launching a club
- 01
Identity
Name, symbol, description and images. The symbol must be unique across Clubhouse. - 02
Club Token
Pick the venue (letscash.fun today; Pons when enabled), the trading fee tier (1%, 5% or 10% on either venue — on Pons that is the 1% base pool fee plus a creator tax paid to the club in full), token details, and an optional initial buy that lands in your wallet inside the launch transaction. - 03
Club Pass
Total supply (up to 10,000), royalty (up to 10%) and recipient, the stock basket (1–5 of AAPL, AMZN, NVDA, GOOGL, TSLA, USO, SPY), the Clock In policy (amount, daily UTC time, or both), the reward mode with activation cost and boost levels, and the artwork mode: upload later (a generated pass card until you reveal), a single image for every pass, or a metadata folder already on IPFS. - 04
Mint plan
Up to 8 public or allowlist phases with dates, prices, wallet limits and cumulative caps. Allowlist roots and proof files are generated for you. - 05
Review & Launch
Images go to IPFS first; then the coin, the collection, the fee router and the reward vault (plus a boost manager when the mode needs one) are created in one wallet transaction. Cost: the platform creation fee (currently 0 ETH) + the venue's launch fee + your initial buy + gas.
Fees before and after the first mint
Until the first pass is minted, the club flow is yours: press Route and then Claim creator fees on the club page to withdraw it. The first mint checkpoints whatever has accrued (still yours to claim) and switches everything after it to the reward vault, permanently.
Mint proceeds — the price paid for passes — are separate. They accrue in the collection and you can withdraw them from Studio at any time.
Running the mint
In Studio you can edit an upcoming phase freely and a live phase's price, limits, cap and end (its start is fixed once it begins); ended phases are history. Newer collections can also add a future phase or remove one that has not started. You can set the whole schedule to TBA before it starts, and you can freeze it — after which nothing about the schedule can change, including closing early.
Allowlists: upload a wallet list (optionally with per-wallet allowances). The backend builds the Merkle root and pins the proof file to IPFS; you submit the root in the phase update; the mint page uses only the proof set that matches the root on-chain.
Ending it: anyone can finalize once the last phase ends or the collection sells out. You can close early while the schedule is unfrozen and at least one pass exists. Finalizing fixes the eligible supply and unlocks Clock In.
Placeholder, reveal, royalties, basket
- Placeholder & reveal
- Set or change the placeholder and base URI, then reveal. Freeze metadata after a reveal to make artwork permanent.
- Royalties
- Change the receiver and rate (≤ 10%). On newer collections, toggle royalty enforcement and allowlist marketplace operators.
- Stock basket
- Pick 1–5 approved stocks. Applies from the next Clock In; earlier rounds are untouched.
- Reward level names
- Give your boost levels display names. Stored off-chain, no gas.
- Ownership
- Two-step transfer to a new owner from the collection; renouncing is disabled so a club is never orphaned.
Your coin's public page lives on its venue (for letscash.fun: www.letscash.fun/token/…), linked from the club page. Clubhouse itself never custodies the coin's liquidity.
09
For members
Mint or buy a Club Pass, keep it active, claim rounds, and move what you earned wherever you like.
My Clubs
My Clubs lists every Club Pass your wallet holds across all clubs. For each pass you see its account address, the ETH and stocks inside the account, its reward weight (Base, a boost level, or "Inactive · 0×"), and what is claimable — shares waiting in the vault across open rounds, priced above zero.
Stale snapshot notice. The page is served from a short-lived cache. If the backend cannot refresh in time you will see "Showing a cached snapshot from ~Ns ago — refresh for live data". Nothing is wrong on-chain; press refresh, which bypasses the cache.
"Not activated" appears on passes in Activation clubs that have not burned the activation cost yet. Such a pass earns nothing from any round; activate it on the club page and it joins the next round.
Claiming
Claiming happens on the club page, in Your seat. Enter or select up to 20 of your passes; the page finds every open round they are eligible for and sends the fewest transactions the vault allows — one sweep per pass on newer vaults, batches of 20 round claims on legacy vaults. Rounds before a pass was activated are skipped automatically.
Sending assets out of a pass account
- 01
Pick the pass in My Clubs
Each card has Send ETH and Send stock forms for its account. - 02
Enter amount and recipient
Any address — your own wallet, an exchange, another person. The account signs because you own the pass. - 03
Confirm
If the account was never deployed (assets arrived before its first claim), the app deploys it first with one extra confirmation, then sends.
Activate and boost
On the club page, activation and boost purchases ask you to approve the club coin, then burn it. The club page shows the live activation cost and level ladder. Burns are permanent and stay with the pass.
10
Glossary
The words the interface uses, and what they mean on-chain.
- Club
- A club coin, a Club Pass collection, a fee router and a stock-reward vault created together by the factory.
- Club coin
- The club's own tradeable token, launched on letscash.fun or Pons. Its trading fee funds the club.
- Club Pass
- The club's membership NFT (ERC-721). Carries a reward weight and owns a token-bound account.
- CLUB
- The platform token. 0.2% of every club coin's trading volume buys and burns it.
- Club flow
- The part of the trading fee left after the venue, platform and buyback slices — the founder's before the first mint, the reward pot's after.
- Fee router
- The per-club contract that pulls accrued fees from the venue, books the platform and buyback slices, and sends the club flow to the owner (before the first mint) or the vault (after).
- Route / Collect
- The permissionless call that pulls accrued fees from the venue into the club's router and forwards each slice.
- Reward pot
- ETH waiting in the club's vault (pendingETH) for the next Clock In.
- Clock In
- The permissionless call that converts the pot into the stock basket and records a reward round.
- Round
- One Clock In's immutable record: snapshot block, participants, total weight, stocks and amounts.
- Snapshot block
- The block before a Clock In. Weights and participation are read there and never again.
- Weight / Base weight
- A pass's share multiplier. Base is 1×; boosts raise it; an unactivated pass in an Activation club is 0×.
- Activation
- A one-time club-coin burn that gives a pass its base weight in Activation clubs. Permanent, follows the pass.
- Boost level
- One of up to four paid steps with a cumulative coin cost and a multiplier up to 5×. Only climbs.
- Stock basket
- The 1–5 approved stock tokens the pot is split into equally. Changed by the creator, applies to future rounds.
- Token-bound account (TBA)
- The ERC-6551 account every pass owns. Claims land here; only the pass's holder can move assets out.
- Owner-controlled
- Only the pass's current owner can sign for its account. Control transfers with the pass; assets stay put.
- Eligible supply
- The number of passes minted when the mint was finalized. Fixes who can ever participate in rounds.
- Finalize
- Closing the mint (anyone, once sold out or the last phase ended). Unlocks Clock In.
- Phase
- One window of the mint schedule: dates, price, wallet limit, cumulative cap and optional allowlist.
- Allowlist
- A Merkle root of (wallet, allowance) pairs attached to a phase. Proofs are generated when the list is uploaded.
- Service fee
- The platform's per-pass mint fee, fixed per club at launch (0.0005 ETH for new clubs today).
- Buyback burner
- The contract that receives the 0.2% slice, buys CLUB and burns it. Has no withdraw path.
- Venue
- Where the club coin trades: letscash.fun (Uniswap v4 pool) or Pons (bonding curve graduating to Uniswap v4).
- Studio
- The owner-only management page for a club: proceeds, phases, royalties, artwork, basket.
- Robinhood Chain
- The network Clubhouse runs on (chain ID 4663). Explorer: robinhoodchain.blockscout.com.
11
FAQ
Real questions from the club pages, answered from the contracts.
Why do I see 0 in my portfolio?
Why can't I withdraw the buyback ETH?
Why does claiming cost gas per round?
What happens to my rewards if I sell my pass?
Can someone else claim my rewards?
I activated my pass, but the round that just opened gives me nothing. Why?
Who pays for Route and Clock In, and what do they get?
Why is Clock In disabled on a club page?
What if a stock swap fails during Clock In?
Can I undo a boost or get the coins back?
Can the creator change the fee split later?
What's the difference between the club coin and CLUB?
What is the extra 0.0005 ETH when I mint?
Why does the launch wizard say launches are invite-only?
Are the contracts audited and verified?
12
Contract addresses
Chain: Robinhood Chain (4663). Every address links to the explorer.
- Network
- Robinhood Chain · chain ID 4663
- Explorer
- robinhoodchain.blockscout.com
- Deployment
- Factory deployed 2026-08-11 at block 33,731,688; implementation upgraded 2026-08-12.
- Verification
- Per contract, on the explorer — open any address below and check its Contract tab. The factory proxy is source-verified; other contracts are being verified progressively.
Clubhouse contracts
| Contract | Role | Address |
|---|---|---|
| LaunchpadFactory (proxy) | Creates clubs, holds platform config, emergency pauses | 0x46496F00A8f33A9777D356094e27e7EFe6d892d4 |
| LaunchpadFactory implementation | Logic behind the UUPS proxy | 0xd59D70871eDAc465bA5D633052a56a3C08bE20fA |
| PlatformFeeVault | Platform revenue: creation, mint service, token-flow shares | 0x5c10f1C142Fcd02edD892a5213b9E905440CBFB5 |
| ProtocolTokenBuyback | Receives the 0.2% share, buys and burns CLUB | 0x57a126ff88D662084f7218b0C45e2938A20bEb16 |
| StockSwapRouter | ETH → WETH → USDG → stock on canonical Uniswap V3 pools | 0xc302d6d70948428892bd6aA08C6785d6C571b489 |
| ProjectNFT implementation | Club Pass collection clone template | 0xB9f64a4695a6155882D889912cDc4B3957696dBd |
| StockRewardVault implementation | Reward vault clone template | 0x5F49A88587be3163E985815C56F6F0773Ac06D55 |
| RewardBoostManager implementation | Activation & boost clone template | 0x613AF4e5cf60a6E16016d28cb4DB8D0FF57AbbD4 |
| ProjectFeeRouter implementation | Fee split clone template | 0x7dCd3f76f710334A78428137a446FD3F93305585 |
| TokenBoundAccount implementation | ERC-6551 account behind every Club Pass | 0x93fec22E312981CE9915622471Df45f7AB59531a |
External dependencies
| Contract | Role | Address |
|---|---|---|
| CLUB token | The protocol token the buyback burns | 0x86bf9cf2787a8eAdE910A0A31ba787F587613ecc |
| letscash.fun launcher | Default coin venue (token launcher) | 0x5bd1Fbe78a78fe8236fa00CF48fbEBA74ae34661 |
| letscash.fun hook | Approved creator-fee source | 0x75A54357D9C78a2Db19004a5FDc76c50F9242AEC |
| Pons v2 launch factory | Optional second coin venue | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e |
| ERC-6551 Registry | Canonical registry that derives every pass account | 0x000000006551c19487814612e58FE06813775758 |
| Uniswap V4 PoolManager | Holds every club coin's pool and the CLUB pool | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| Uniswap V3 factory | Canonical pools the stock swaps must use | 0x1f7d7550B1b028f7571E69A784071F0205FD2EfA |
| WETH | First hop of every stock swap | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 |
| USDG | Second hop of every stock swap | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 |
Each club's own contracts — its collection, fee router, reward vault and (if any) boost manager — are clones created by the factory. Their addresses are shown on the club page and in Studio. Implementation addresses above change with upgrades; new implementations reach new clubs only, and the factory proxy is the stable entry point.
