Skip to content

CPPI On Solana

Issuer: MoonUp · Document version: 1.0 · Date: April 2026 · Classification: Public

Executive Summary

Portfolio insurance as a discipline emerged from traditional asset management in the 1980s as a response to a recurring tension in wealth preservation: investors want to participate in market upside while limiting their exposure to catastrophic drawdowns. Classical CPPI, developed by Fischer Black and Robert Jones at Goldman Sachs (1987), offered an analytically rigorous answer — a rules-based framework that dynamically allocates between a risky growth asset and a risk-free reserve in proportion to the distance between the current portfolio value and a pre-defined floor.

The arrival of programmable on-chain settlement infrastructure transforms CPPI from a strategy that requires periodic manual rebalancing — or expensive delegation to a fund manager — into one that can be executed continuously, transparently, and autonomously. Every allocation decision is visible on-chain. Every rebalancing event is recorded immutably. Every dollar of yield earned in the protective leg is earned by the holder, not a counterparty.

MoonUp's CPPI product brings this structural discipline to self-custodied on-chain portfolios. The strategy runs continuously in the background, monitoring positions approximately every ten minutes and executing rebalances on-chain when the allocation has drifted meaningfully from its target. Layered above the rules engine is the AI Guardian — an agentic system that observes macroeconomic, sectorial, and single-name signals in real time and adjusts the strategy's aggressiveness parameter before drift has had a chance to accumulate. The result is a strategy that is simultaneously rule-governed and adaptive.

This white paper describes the full architecture of MoonUp's CPPI product: the mathematical framework, the basket design, the AI Guardian's role and boundaries, the lifecycle of a position, and the risk considerations that any investor should understand before committing capital.

1. Background and Motivation

1.1 The Problem CPPI Solves

Every investor who seeks capital growth faces a version of the same problem. The assets most likely to generate meaningful long-run returns — equities, growth-oriented tokens, commodity-linked instruments — are also the assets most exposed to severe short-term drawdowns. Sitting entirely in safe assets solves the downside problem but creates a different one: the opportunity cost of not being invested in growth compounds over time.

Most retail and wealth-management solutions to this problem are blunt instruments: fixed-weight portfolios that rebalance on a calendar schedule, stop-loss orders that liquidate entirely if a price threshold is crossed, or option strategies that are expensive, opaque, and expire. CPPI occupies a different class. It does not rebalance on a schedule — it rebalances in response to the distance between the current portfolio value and the floor. In strong markets, this means staying heavily allocated to growth assets. In falling markets, it means systematically rotating into the protective leg before losses breach the declared floor. The allocation is a continuous function of market conditions, not a periodic guess about what the right allocation should be.

1.2 Why On-Chain Execution Changes the Calculus

In traditional finance, CPPI is typically implemented through a fund wrapper. The investor delegates execution to a manager, who may rebalance daily or weekly. Execution costs, management fees, and the opacity of the fund structure all reduce the strategy's effective performance. The investor rarely has visibility into whether the rebalance that day moved the allocation by 3% or 30%, or why.

On-chain execution removes these frictions in structurally important ways:

  • Settlement is continuous. Swaps execute on-chain within block confirmation time — measured in seconds on modern Layer-2 networks — rather than at end-of-day NAV.
  • State is public. Every allocation, every rebalance, and every fee paid is on-chain and independently verifiable.
  • Custody remains with the user. Capital is never transferred to a counterparty or fund manager. The user's wallet holds the underlying tokens at all times.
  • Yield is direct. Capital held in the protective leg earns yield from on-chain instruments — lending protocols, tokenised treasuries, reinsurance tranches — accruing directly to the position without a fund management layer extracting a margin.

MoonUp's CPPI product is built on these structural properties. It is not a fund. It is a continuously running strategy engine operating on a self-custodied wallet.

2. Strategy Architecture

2.1 Core Variables

The CPPI strategy operates on three interdependent variables at all times.

Floor \(F\)

The floor is the minimum portfolio value the investor has declared they want to protect. It is expressed as a percentage of current portfolio value at the time it is set:

\[F = f \times V\]

where \(f\) is the floor percentage chosen by the user (between 50% and 95%) and \(V\) is the total portfolio value at the time of the instruction. The floor is not fixed in dollar terms — if the user raises or lowers \(f\), \(F\) is recalculated against the current \(V\), not the inception value. This means a rising portfolio compounds the floor, giving the investor progressively stronger downside protection as wealth grows.

The floor is a target, not a guarantee

The floor is a structural protection objective. It is not a guaranteed stop-loss. In fast-moving markets, the gap between two monitoring cycles creates a window in which portfolio value may move below \(F\) before the next rebalance fires. This risk is described in detail in Section 9.

Cushion \(C\)

The cushion is the capital available for investment in growth assets — the difference between the current portfolio value and the floor:

\[C = V - F\]

The cushion is the live risk budget of the strategy. As markets rise, \(V\) increases and \(C\) widens, giving the system more capacity to allocate to the equity basket. As markets fall, \(C\) narrows and the system shifts capital to the yield-generating basket. If \(C\) reaches zero, the floor has been breached and the position pauses automatically.

Equity Allocation \(E\)

The target allocation to the equity basket is the product of the multiplier and the cushion:

\[E = m \times C\]

where \(m\) is the multiplier — a parameter that controls the aggressiveness of the strategy. A multiplier of 4 on a cushion of $2,000 sets a target equity allocation of $8,000. The remaining capital:

\[Y = V - E\]

flows to the yield-generating basket.

The multiplier is not user-configurable. It is managed dynamically by the AI Guardian system (Section 3) in response to real-time risk signals. A higher multiplier maximises time-in-market during favourable regimes; a lower multiplier reduces equity exposure ahead of deteriorating conditions.

2.2 Rebalancing Logic

The system evaluates every active position approximately every ten minutes. It computes the current values of \(V\), \(F\), \(C\), and the implied target \(E\). If the actual equity allocation has drifted from \(E\) by more than a configured threshold, a rebalance is triggered — two on-chain swaps execute simultaneously to bring both the equity leg and the yield-generating leg back to target.

Not every evaluation results in a trade. The drift threshold exists to avoid excessive transaction costs from minor market fluctuations. A rebalance fires only when the deviation is economically material.

In addition to drift-based triggers, rebalances also fire on: basket recomposition events, scheduled periodic re-anchoring, significant volatility regime changes, floor breach detection, and AI Guardian multiplier adjustments. Full trigger taxonomy is described in Section 7.

2.3 Parameter Summary

Parameter User-configurable Range / notes
Floor % (\(f\)) Yes 50% – 95% of current portfolio value
Multiplier (\(m\)) No Dynamically set by AI Guardian
Drift threshold No Managed by MoonUp investment engine
Monitoring interval No Approximately 10 minutes, server-side
Basket selection Yes (at position open) One of four equity baskets
Basket token weights No Managed by MoonUp investment engine

3. The AI Guardian

3.1 What It Is

The AI Guardian is MoonUp's agentic AI system — an autonomous, continuously operating agent that monitors market conditions, reasons over incoming signals, and acts on behalf of the user without requiring explicit instruction. It is architecturally distinct from the rules-based polling engine: where the rebalancing engine fires on quantitative drift conditions, the AI Guardian acts on qualitative and contextual intelligence.

The Guardian's primary function within CPPI is multiplier management. By adjusting \(m\) ahead of deteriorating conditions — before significant drift has accumulated — the Guardian allows the strategy to reduce equity exposure proactively rather than reactively. In practice, this means the system moves away from growth assets before market stress propagates into price action, rather than waiting for the cushion to compress.

The Guardian operates in real time. It does not wait for the next ten-minute polling cycle to act. Multiplier adjustments initiated by the Guardian take effect immediately and are recorded in the position's event history with the rationale.

3.2 Signal Taxonomy

The AI Guardian monitors signals across four categories:

Category Signal types
Macro Central bank decisions, inflation prints, sovereign credit events, liquidity regime shifts, global risk appetite indicators
Sectorial Earnings seasons, regulatory rulings, thematic rotation signals, sector-wide repricing events
Single-name Material news on individual tokens or equities within the active basket — guidance revisions, M&A activity, litigation, fraud disclosures, executive transitions
Price action Unusual intraday moves, volatility spikes, momentum breaks, correlation regime changes, on-chain liquidity gaps

The Guardian does not apply fixed thresholds to these signals. It interprets them in the context of the user's active position — the basket composition, the current cushion level, the recent multiplier history — and makes a judgment about whether the signal warrants a change, an alert, or no action.

3.3 Autonomous Actions

The AI Guardian takes three categories of autonomous or advisory action:

1. Multiplier adjustment

The Guardian lowers \(m\) during periods of elevated risk, reducing the target equity allocation \(E\) before the next drift rebalance would otherwise fire. When conditions normalise, it raises \(m\) to restore equity exposure. Each adjustment is recorded as a REBALANCED event with trigger source SYSTEM and reason ai_guardian. The user receives an in-app notification with the Guardian's reasoning in plain language.

2. News and event alerts

When the Guardian identifies a material macro, sectorial, or single-name event relevant to an active basket, it surfaces an in-app alert with a concise summary of the signal and an explanation of its potential impact on the position. This is informational — no action is required from the user, though the user may choose to adjust their floor or close the position in response.

3. Sector rotation recommendations

If the Guardian identifies a sustained structural rotation away from the equity basket currently held, it surfaces a basket-switch recommendation as an actionable prompt. The recommendation includes the Guardian's reasoning, the suggested alternative basket, and an estimated impact on the current position. Basket changes are always advisory — they require explicit user confirmation and are never executed autonomously.

3.4 Agentic Boundaries

The AI Guardian operates within defined constraints that cannot be overridden:

  • It does not switch the user between equity baskets without explicit confirmation.
  • It does not modify the user-defined floor \(f\).
  • It does not close or pause the position except through the standard floor-breach logic.
  • It does not guarantee protection against flash crashes or liquidity gaps between execution cycles.
  • It does not have access to funds outside the CPPI position it is monitoring.

These boundaries exist to ensure that the Guardian augments user decision-making rather than replacing it on consequential actions. The user retains full authority over capital allocation decisions above the level of intra-strategy multiplier management.

4. Equity Baskets

Each CPPI position is anchored to one of four equity baskets. The basket defines the universe of growth assets the strategy will hold and rebalance within. Users invest in the basket as a unit — token selection and weighting within the basket are managed by MoonUp's investment engine, not by the user.

4.1 AI Growth

Tokenised exposure to artificial intelligence and semiconductor infrastructure — large-cap technology companies driving AI compute, model deployment, and software integration. This basket is suited to investors with a multi-year structural conviction on AI as an investable theme. It carries the highest expected short-term volatility of the four baskets, which means the CPPI cushion will compress and expand more rapidly. The floor mechanism is particularly well-suited to managing the drawdown profile of this basket.

4.2 World Equities

Broad global equity exposure through tokenised stocks spanning multiple geographies and sectors. Lower concentration risk than the thematic baskets. Suited to investors seeking diversified market participation with capital protection. Lower expected volatility relative to AI Growth and Defense means the cushion typically stays wider for longer during moderate market declines, preserving equity exposure.

4.3 Commodities

Tokenised exposure to commodity-linked assets across energy, metals, and materials. Commodities are cyclical and often exhibit low or negative correlation with equity markets, making this basket a natural complement for investors who already carry equity exposure in their broader portfolio. Seasonality and geopolitical sensitivity mean rebalancing may fire more frequently than for other baskets.

4.4 Defense

Tokenised aerospace and defense sector exposure. Historically resilient in risk-off environments due to the visibility of government contract revenue. Subject to sharp discrete moves around geopolitical events and procurement cycle news, making the floor's protective function particularly relevant.

4.5 Basket Weight Architecture

All equity baskets share a three-layer weight representation:

Weight type Nature Description
Target weight % Static snapshot Strategic allocation % set by the investment engine at the most recent basket review. Changes only on recomposition events.
Effective weight % Live time-series Drifts continuously as constituent token prices move between rebalances. Displayed live in the UI.
Lots Live time-series Units of each token currently held. Updated after every rebalance. The execution unit for on-chain swaps.

Basket weights are surfaced in the UI refreshed at approximately fifteen-minute intervals.

5. The Yield-Generating Basket

The yield-generating basket is the protective leg of every CPPI position, regardless of which equity basket is selected. It is system-defined, fixed in structure for a given version, and shared across all four equity basket variants.

5.1 Purpose

Capital in the yield-generating basket is not idle. It earns a return while standing ready to be redeployed into the equity basket when conditions improve. This means the cost of protection — the opportunity cost of holding non-growth assets — is partially offset by the yield generated in the protective leg.

5.2 Composition

The yield-generating basket is a dynamically weighted blend across four asset categories:

Category Examples Role in basket
DeFi yield Lending protocol tokens, liquidity provision receipts Higher-yield, on-chain native income
Reinsurance RWA Tokenised reinsurance tranches Uncorrelated yield; real-world anchor
US Bond ETF (tokenised) Tokenised short/medium-duration Treasuries Low-volatility, dollar-denominated foundation
Other RWA Tokenised money-market funds, credit instruments Diversified real-world yield

The weight blend across categories is reviewed and updated by MoonUp periodically, in response to the yield environment, correlation properties relative to the equity baskets, and on-chain liquidity conditions. Composition changes do not interrupt a live CPPI position — the system adapts automatically at the next rebalance event.

The yield-generating basket uses the same three-layer weight architecture (target, effective, lots) as the equity baskets.

6. Position Lifecycle and User Controls

6.1 Opening a Position

To open a CPPI position, the user specifies three parameters:

  1. Equity basket — one of AI Growth, World Equities, Commodities, or Defense
  2. Floor percentage — between 50% and 95% of initial capital
  3. Capital amount — the total to deploy

On confirmation, the system synchronously: 1. Calls the investment engine to compute the exact allocation split given \(V\), \(f\), and the current \(m\) 2. Executes two on-chain swaps — one to build the equity basket position, one to build the yield-generating basket position 3. Begins monitoring the position on the ten-minute cycle

The position transitions to ACTIVE within seconds of on-chain swap confirmation.

Only one active CPPI per equity basket per wallet is permitted. This constraint prevents inadvertent double-exposure to the same thematic basket and keeps the portfolio view unambiguous.

6.2 Managing an Active Position

Adjusting the floor

The floor percentage can be raised or lowered at any time. Changes take effect immediately: the system calls the investment engine synchronously and executes the resulting rebalancing swaps before returning a confirmation to the user.

  • Raising the floor (e.g. 80% → 85%): reduces \(C\) → capital moves from equity basket to yield-generating basket. Effective de-risking.
  • Lowering the floor (e.g. 80% → 70%): increases \(C\) → capital moves from yield-generating basket to equity basket. Effective increase in growth exposure.

The change and resulting rebalance are logged in the event history with full before/after state.

Adding capital (upsize)

Additional capital can be deposited at any time. The system recomputes the allocation using the existing \(f\) and \(m\) against the new, larger \(V\), and tops up both baskets accordingly. The event is logged as UPSIZED.

Withdrawing capital (downsize)

A partial withdrawal can be requested at any time. The system unwinds the proportional share from both baskets. If the requested withdrawal would reduce \(V\) to at or below \(F\) — making \(C \leq 0\) — the operation is rejected. The user must lower the floor percentage first to create adequate headroom. Withdrawn funds settle to the user's wallet within on-chain confirmation time. The event is logged as DOWNSIZED.

Closing

A full close unwinds both the equity leg and the yield-generating leg through on-chain swaps. Proceeds are returned to the user's wallet. The position transitions to CLOSED and is removed from active monitoring. Closed positions remain fully visible in history. Closing is irreversible — restarting the strategy requires opening a new position, which will be created on the latest algorithm version.

6.3 Position States and Event History

State Description
ACTIVE Position is live and being monitored
PAUSED Floor has been breached; all capital has moved to yield-generating basket; monitoring suspended
CLOSED Position has been fully unwound

Every state change and rebalance event is permanently recorded:

Event Trigger Recorded data
CREATED User opened position Initial allocation, floor %, multiplier, version
REBALANCED Drift / volatility / basket change / AI Guardian Reason, new allocation split
CUSHION_ADJUSTED User changed floor % Old and new floor %, resulting allocation change
UPSIZED User added capital Amount added, new allocation
DOWNSIZED User withdrew capital Amount withdrawn, new allocation
PAUSED Floor breached Reason, final allocation at pause time
CLOSED User closed position Final state snapshot

Each event records a timestamp, trigger source (user or system), and a full snapshot of the instruction received from the investment engine.

6.4 Recovering from a Floor Breach

When a floor breach is detected, the position pauses automatically. From a PAUSED state, the user has two options:

  • Resume — set a new floor percentage that creates a positive cushion against the current (reduced) portfolio value, and reactivate monitoring.
  • Close — fully unwind and receive proceeds.

MoonUp does not automatically resume a paused position. The decision to re-enter the strategy, and at what floor level, remains with the user.

7. Rebalancing Engine

7.1 Monitoring Architecture

The rebalancing engine runs server-side on a continuous ten-minute cycle. It evaluates all active positions regardless of whether the user has the application open. Each evaluation cycle computes the current \(V\), \(F\), \(C\), and the implied target \(E = m \times C\) for each position, and tests each position against the full set of rebalance trigger conditions.

7.2 Trigger Taxonomy

Trigger Description
Drift Actual equity allocation has diverged from \(E\) by more than the configured drift threshold
Basket recomposition The investment engine has updated constituent weights in the equity or yield-generating basket
Scheduled Periodic forced rebalance to re-anchor allocation, independent of drift
Volatility Significant change in volatility regime adjusts the target allocation
Floor breach \(C \leq 0\); position transitions to PAUSED
AI Guardian Multiplier adjustment initiated by the Guardian outside the drift cycle

7.3 Execution Flow

When a rebalance is triggered:

  1. The investment engine returns exact lot quantities for both the equity and yield-generating baskets
  2. Two sets of on-chain swaps execute simultaneously — one for each leg
  3. If a swap fails, it is retried at the next polling cycle; partial execution is recorded in the event history
  4. The position's allocation snapshot and rebalanced timestamp are updated

All user-initiated changes — floor adjustments, upsizes, downsizes — trigger an immediate synchronous rebalance, bypassing the ten-minute cycle entirely. The effect is on-chain within block confirmation time.

7.4 Transaction Costs

Rebalancing involves on-chain swaps, which incur network gas fees and, where DEX routing is used, trading fees. The UI presents estimated execution costs before any user-initiated action is confirmed. Automated rebalances on the polling cycle do not present confirmations to the user; their costs are reflected in the position's net performance.

8. Governance and Versioning

8.1 Algorithm Versioning

Each CPPI position is stamped with the version of the MoonUp investment algorithm in use at the time it was opened. The position runs on that version for its entire active lifetime. Algorithm improvements — tighter drift thresholds, updated volatility models, improved basket construction methodology — are released as new versions. Existing positions are not migrated automatically.

8.2 Upgrade Path

Users are notified when a materially improved algorithm version becomes available. To adopt the new version, the user closes their existing position and opens a new one. The new position begins on the current version.

This design reflects a deliberate principle: a position opened with a specific risk profile should behave consistently throughout its life. Imposing a mid-flight algorithm change on a live position — even an improvement — would violate the investor's reasonable expectation of strategy continuity.

8.3 Non-User-Configurable Parameters

The following parameters are managed exclusively by MoonUp:

Parameter Description
Basket token selection Which tokens comprise each basket
Token weights Percentage allocation within each basket
Multiplier (\(m\)) Dynamically adjusted by AI Guardian
Drift threshold Deviation tolerance before rebalance triggers
Rebalance scheduling Periodic forced rebalance cadence
Volatility model How volatility signals feed into rebalance decisions
Lot sizing Exact token quantities on each rebalance
Floor breach detection System-side enforcement; no user monitoring required
Swap routing DEX selection, slippage management, execution routing
Yield-generating basket composition Which yield instruments comprise the protective leg

9. Risk Considerations

MoonUp's CPPI product is designed to manage downside risk structurally. It does not eliminate risk. Investors should understand the following limitations before deploying capital.

9.1 The floor is a target, not a guarantee

The CPPI floor is a structural protection objective. Because the system monitors positions approximately every ten minutes and on-chain prices move continuously, there is a window between monitoring cycles during which portfolio value can fall below the floor before the next rebalance fires. In conditions of extreme intraday volatility — sharp, sustained moves within a single polling interval — the actual portfolio value at the time of breach detection may be meaningfully below the floor amount. This is an inherent property of any time-based monitoring system applied to continuous markets.

9.2 Multiplier and leverage risk

The equity allocation target \(E = m \times C\) can, for high multipliers and wide cushions, produce an equity allocation that constitutes a large proportion of the total portfolio. In fast-declining markets, this means the cushion can compress rapidly — faster than the polling cycle can respond. The AI Guardian mitigates this by reducing \(m\) proactively, but it operates on imperfect information and cannot guarantee timely response to all adverse conditions.

9.3 On-chain execution risk

All rebalancing is executed through on-chain swaps. These transactions are subject to network congestion, smart contract risk, DEX liquidity depth, and slippage. A failed swap in a fast-moving market may mean the rebalance is partially executed or delayed to the next cycle. MoonUp retries failed swaps but does not guarantee execution at any specific price.

9.4 Smart contract risk

The strategy interacts with multiple on-chain protocols — DEXs for execution, lending protocols and tokenised instruments in the yield-generating basket. Each protocol introduces smart contract risk. MoonUp reviews the protocols used in basket construction, but on-chain protocol risk cannot be fully eliminated.

9.5 Liquidity risk

Tokenised equities and commodity-linked instruments may exhibit thin liquidity, particularly outside primary market hours or during stress events. Large rebalances in illiquid conditions may incur significant slippage, reducing the effective floor protection.

9.6 Gas cost exposure

Rebalancing events incur gas fees. In periods of high network congestion, the cost of a rebalance may be material relative to the amount being moved, particularly for smaller positions. Users should factor transaction cost drag into their expected net returns.

9.7 No assurance of yield

The yield-generating basket is designed to earn a return while holding the protective leg. Yield rates on the instruments within the basket — lending protocols, tokenised treasuries, reinsurance tranches — fluctuate with market conditions. There is no guaranteed yield rate on the protective leg.

10. Reference Parameters

Parameter Value Notes
Floor range 50% – 95% As a % of current portfolio value at the time of instruction
Multiplier Dynamic (AI Guardian) Adjusted continuously; no fixed range
Active CPPIs per wallet Maximum 4 One per equity basket
Monitoring interval ~10 minutes Server-side; independent of app session
Position data refresh (UI) 5 minutes Live portfolio value and allocation
Basket weight refresh (UI) 15 minutes Effective weights and lots
Minimum capital TBD
Supported chains TBD Follows MoonUp wallet chain support
Version changes Requires close + reopen Existing positions run on their original version

Disclaimer

Note

This document is provided for informational purposes only. It describes the architecture and mechanics of MoonUp's CPPI product as of the date stated above. Product specifications are subject to change. Nothing in this document constitutes financial advice, an offer to sell, or a solicitation to buy any financial instrument. Past performance of any strategy or instrument described herein is not indicative of future results. Investors should conduct their own due diligence and consult appropriate professional advisors before deploying capital.


MoonUp — Institutional on-chain wealth infrastructure.