Demo on a mainnet fork: the real Upside program, the real Voltr and Phoenix programs, live Phoenix prices; only the USDC is test money. Nothing here is real money. What that means
upside

Transparency

uMSTRLive

What backs the token, where the keeper’s lines are, and every action it has taken. Read straight from the keeper’s own records.

Last snapshot 12 s ago
Leverage bandin band
Leverage 1.92xband 1.8–2.3x · hard delever 2.6x
1.92x
uMSTR realised leverage 1.92x; realised leverage = notional ÷ NAV; the keeper rebalances outside the band
1.80x2.00x2.30x2.60x
Venue equity / notionalbetween floor and ceiling
Margin 26.9% of notionalfloor 17.9% · target 25% · ceiling 32.1%
26.9%
uMSTR equity / notional 26.9%; venue equity ÷ notional; top-up below the floor, withdraw above the ceiling, liquidation at the venue's maintenance
17.9%25%32.1%17.9%

Action ladder

At what underlying move does each keeper action fire, from the latest snapshot and this token's policy.

external index
−20%
−13%
−7%
+7%
+13%
+20%
$102.01
$102.95
$112.09
$118.04
$142.56
$142.72
$132.59
If the price falls
  1. Margin floor 17.9% of notional−11.0% · $118.04
    Top up collateral from idle
  2. Band edge 2.30x−15.5% · $112.09
    Rebalance down to target (any hour)
  3. Hard delever 2.60x−22.4% · $102.95
    Emergency delever to target, market order
  4. Liquidation (est.)−23.1% · $102.01
    Phoenix liquidates the account; the stop and top-ups sit well before this
If the price rises
  1. Band edge 1.80x+7.5% · $142.56
    Rebalance up to target (external session only)
  2. Margin ceiling 32.1% of notional+7.6% · $142.72
    Withdraw excess collateral to idle

Computed from realised leverage 1.915x and venue equity at 26.9% of notional at mark $132.59, holding everything else fixed. Margin distances follow this token's own policy: lower tiers post more collateral, so a 2x token has further to fall than a 3x one (D27). Liquidation is where equity reaches the 5.0% maintenance margin Phoenix requires on notional (registry value, Q13); the on-chain stop and the keeper's top-ups are designed to act well before it. Estimates for reading, not for trading.

Leverage over time

Realised leverage against the band, the target and the hard-delever line. Markers are keeper actions; hover for reason, before/after and fill.

Realised leverageBand 1.8x2.3xHard delever 2.6xRebalanceEmergency delever

Margin over time

Venue equity (collateral plus unrealised PnL) as a share of notional, against the floor, target and ceiling. Distances do not depend on leverage. Top-ups and withdrawals are the keeper's margin loop; the stop is refreshed after every rebalance.

Venue equity / notionalFloor 17.9% – ceiling 32.1%Top-upWithdraw excessStop set

Buffers and capacity

Idle USDC pays instant redemptions and Jupiter sells; collateral sits at Phoenix; the cap bounds TVL against Phoenix depth.

Idle USDC in vault2,500 of 5,161 USDC · 48.4%
Collateral at Phoenix (share of NAV)2,497 USDC · equity 26.9% of notional
Pending redemptionsnone
Cap used$5,161.47 of $250.0K
LP supply
5,000 uMSTR
Token price
1.032293 USDC
Unrealised PnL
164.25 USDC
Funding (annualised)

Session

How the underlying is being priced right now.

external indexExternal index live

The underlying exchange is open. Phoenix marks track the external index, and the keeper cranks NAV every 20–30 s. Expansion and defensive rebalances both run.

Mark
$132.59
Index
$132.37
Pool price
no pool
Premium to NAV
Realised vs target
1.915x / 2.0x

Keeper liveness

Heartbeats, halted flag and per-loop status. Two keepers on different RPCs are the target.

  • keeper-stagingv0.1.0 · surfpool#0 · heartbeat 9 s ago
    stream dAAPL:band dAAPL:stop dAAPL:tick dGOLD:band dGOLD:stop dGOLD:tick dMSTR:band dMSTR:stop dMSTR:tick dNVDA:band dNVDA:stop dNVDA:tick dSPCX:band dSPCX:stop dSPCX:tick uAAPL:band uAAPL:stop uAAPL:tick uGOLD:band uGOLD:stop uGOLD:tick uMSTR:band uMSTR:stop uMSTR:tick uNVDA:band uNVDA:stop uNVDA:tick uSPCX:band uSPCX:stop uSPCX:tick dAAPL:crank dAAPL:guard dGOLD:crank dGOLD:guard dMSTR:crank dMSTR:guard dNVDA:crank dNVDA:guard dSPCX:crank dSPCX:guard dUS100:band dUS100:stop dUS100:tick dUS500:band dUS500:stop dUS500:tick uAAPL:crank uAAPL:guard uGOLD:crank uGOLD:guard uMSTR:crank uMSTR:guard uNVDA:crank uNVDA:guard uSPCX:crank uSPCX:guard uUS100:band uUS100:stop uUS100:tick uUS500:band uUS500:stop uUS500:tick dAAPL:inflow dAAPL:margin dAAPL:redeem dGOLD:inflow dGOLD:margin dGOLD:redeem dMSTR:inflow dMSTR:margin dMSTR:redeem dNVDA:inflow dNVDA:margin dNVDA:redeem dSPCX:inflow dSPCX:margin dSPCX:redeem dUS100:crank dUS100:guard dUS500:crank dUS500:guard dWTIOIL:band dWTIOIL:stop dWTIOIL:tick uAAPL:inflow uAAPL:margin uAAPL:redeem uGOLD:inflow uGOLD:margin uGOLD:redeem uMSTR:inflow uMSTR:margin ✗ 3uMSTR:redeem uNVDA:inflow uNVDA:margin uNVDA:redeem uSPCX:inflow uSPCX:margin uSPCX:redeem uUS100:crank uUS100:guard uUS500:crank uUS500:guard uWTIOIL:band uWTIOIL:stop uWTIOIL:tick dAAPL:harvest ✗ 1dGOLD:harvest ✗ 1dMSTR:harvest ✗ 1dNVDA:harvest ✗ 1dSPCX:harvest dUS100:inflow dUS100:margin dUS100:redeem dUS500:inflow dUS500:margin dUS500:redeem dWTIOIL:crank dWTIOIL:guard uAAPL:harvest ✗ 1uGOLD:harvest ✗ 1uMSTR:harvest ✗ 1uNVDA:harvest uSPCX:harvest ✗ 1uUS100:inflow uUS100:margin uUS100:redeem uUS500:inflow uUS500:margin uUS500:redeem uWTIOIL:crank uWTIOIL:guard dUS100:harvest ✗ 1dUS500:harvest ✗ 1dWTIOIL:inflow dWTIOIL:margin dWTIOIL:redeem uUS100:harvest uUS500:harvest uWTIOIL:inflow uWTIOIL:margin uWTIOIL:redeem dWTIOIL:harvest uWTIOIL:harvest ✗ 1

Alerts · 1 open

Raised by the keeper, resolved when the condition clears.

  • warning
    TICK_FAILED · uMSTR15 Sep 14:42 UTC
    uMSTR: tick failed: fetch failed
  • warning
    CRANK_STALE · uMSTR15 Sep 16:03 UTC → resolved 42 s ago
    uMSTR: last crank 103s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 16:00 UTC → resolved 3 min ago
    uMSTR: last crank 91s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:55 UTC → resolved 9 min ago
    uMSTR: last crank 91s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:48 UTC → resolved 15 min ago
    uMSTR: last crank 91s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:43 UTC → resolved 17 min ago
    uMSTR: last crank 92s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:35 UTC → resolved 29 min ago
    uMSTR: last crank never during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:28 UTC → resolved 36 min ago
    uMSTR: last crank 104s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:24 UTC → resolved 40 min ago
    uMSTR: last crank never during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:19 UTC → resolved 46 min ago
    uMSTR: last crank never during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 15:14 UTC → resolved 51 min ago
    uMSTR: last crank never during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 14:59 UTC → resolved 53 min ago
    uMSTR: last crank never during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 14:13 UTC → resolved 1.5 h ago
    uMSTR: last crank 123s ago during an external session
  • warning
    CRANK_STALE · uMSTR15 Sep 14:04 UTC → resolved 2.0 h ago
    uMSTR: last crank never during an external session

Event log

Every action planned, sent or observed for this token, newest first.

TimeKindStatusReasonLeverageAmountFill / markSlipTx
15 Sep 15:39 UTCWithdraw excess marginfailedsimulation failed for withdraw_excess: {"InstructionError":["2",{"Custom":"6007"}]} :: Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV invoke [2] | Program log: Instruction: withdraw | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV consumed 12448 of 1346741 compute units | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV failed: custom program error: 0x1777 | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 consumed 65407 of 1399700 compute units | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 failed: custom program error: 0x17771.90x → —108.20 USDC
15 Sep 15:38 UTCWithdraw excess marginfailedsimulation failed for withdraw_excess: {"InstructionError":["2",{"Custom":"6007"}]} :: Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV invoke [2] | Program log: Instruction: withdraw | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV consumed 12448 of 1346740 compute units | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV failed: custom program error: 0x1777 | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 consumed 65408 of 1399700 compute units | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 failed: custom program error: 0x17771.90x → —108.50 USDC
15 Sep 15:36 UTCWithdraw excess marginfailedsimulation failed for withdraw_excess: {"InstructionError":["2",{"Custom":"6007"}]} :: Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV invoke [2] | Program log: Instruction: withdraw | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV consumed 12448 of 1346739 compute units | Program CJxBPN83j7YvHDuLCaq9Ddrp9QHqVAAU9TXQGPRBpAtV failed: custom program error: 0x1777 | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 consumed 65409 of 1399700 compute units | Program vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8 failed: custom program error: 0x17771.91x → —104.95 USDC