Transparency
dMSTRLocal
What backs the token, where the keeper’s lines are, and every action it has taken. Read straight from the keeper’s own records.
Action ladder
At what underlying move does each keeper action fire, from the latest snapshot and this token's policy.
- Band edge 1.80x−3.5% · $125.52Rebalance up to target (external session only)
- Margin ceiling 32.1% of notional−5.4% · $123.15Withdraw excess collateral to idle
- Band edge 2.30x+4.6% · $136.08Rebalance down to target (any hour)
- Margin floor 17.9% of notional+6.0% · $137.98Top up collateral from idle
- Hard delever 2.60x+8.4% · $141.02Emergency delever to target, market order
- Liquidation (est.)+20.8% · $157.18Phoenix liquidates the account; the stop and top-ups sit well before this
Computed from realised leverage 1.998x and venue equity at 25.0% of notional at mark $130.13, 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 3.5% 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.
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.
Buffers and capacity
Idle USDC pays instant redemptions and Jupiter sells; collateral sits at Phoenix; the cap bounds TVL against Phoenix depth.
- LP supply
- 5,000 dMSTR
- NAV per token
- 0.999768 USDC
- Unrealised PnL
- 3.03 USDC
- Funding (annualised)
- —
Session
How the underlying is being priced right now.
The underlying exchange is closed. Phoenix prices the market from its own order flow, bounded to 1/max-leverage from the last external print. NAV marks to that price. Only defensive rebalances run; NAV shows "internal pricing".
- Mark
- $130.13
- Index
- none (no external print)
- Pool price
- no pool
- Premium to NAV
- —
- Realised vs target
- 1.998x / 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 14 s agostream ✓dMSTR:band ✓dMSTR:stop ✓dMSTR:tick ✓dNVDA:band ✓dNVDA:stop ✓dNVDA:tick ✓dTSLA:band ✓dTSLA:stop ✓dTSLA:tick ✗ 1uMSTR:band ✓uMSTR:stop ✓uMSTR:tick ✓uNVDA:band ✓uNVDA:stop ✓uNVDA:tick ✓uTSLA:band ✓uTSLA:stop ✓uTSLA:tick ✓dMSTR:crank ✓dMSTR:guard ✓dNVDA:crank ✓dNVDA:guard ✓dTSLA:crank ✓dTSLA:guard ✓dUS100:band ✓dUS100:stop ✓dUS100:tick ✓dUS500:band ✓dUS500:stop ✓dUS500:tick ✓uMSTR:crank ✓uMSTR:guard ✓uNVDA:crank ✓uNVDA:guard ✓uTSLA:crank ✓uTSLA:guard ✓uUS100:band ✓uUS100:stop ✓uUS100:tick ✓uUS500:band ✓uUS500:stop ✓uUS500:tick ✗ 1dMSTR:inflow ✓dMSTR:margin ✓dMSTR:redeem ✓dNVDA:inflow ✓dNVDA:margin ✓dNVDA:redeem ✓dTSLA:inflow ✓dTSLA:margin ✓dTSLA:redeem ✓dUS100:crank ✓dUS100:guard ✓dUS500:crank ✓dUS500:guard ✓uMSTR:inflow ✓uMSTR:margin ✓uMSTR:redeem ✓uNVDA:inflow ✓uNVDA:margin ✓uNVDA:redeem ✓uTSLA:inflow ✓uTSLA:margin ✓uTSLA:redeem ✓uUS100:crank ✓uUS100:guard ✓uUS500:crank ✓uUS500:guard ✓dMSTR:harvest ✗ 1dNVDA:harvest ✗ 1dTSLA:harvest ✗ 1dUS100:inflow ✓dUS100:margin ✓dUS100:redeem ✓dUS500:inflow ✓dUS500:margin ✓dUS500:redeem ✓uMSTR:harvest ✗ 1uNVDA:harvest ✗ 1uTSLA:harvest ✗ 1uUS100:inflow ✓uUS100:margin ✓uUS100:redeem ✓uUS500:inflow ✓uUS500:margin ✓uUS500:redeem ✓dUS100:harvest ✗ 1dUS500:harvest ✗ 1uUS100:harvest ✗ 1uUS500:harvest ✗ 1
- keeper-ahaltedv0.1.0 · test · heartbeat 15 min ago (stale)
Alerts
Raised by the keeper, resolved when the condition clears.
- warningTICK_FAILED · dMSTR12 Sep 22:30 UTC → resolved 29 min agodMSTR: tick failed: Hawkeye return data expected at least 8 bytes, got 0
- warningDEPTH_UNAVAILABLE · dMSTR12 Sep 22:30 UTC → resolved 30 min agodMSTR: order-book depth unreadable; expansion is refused and defensive slices use the fallback depth
- warningTICK_FAILED · dMSTR12 Sep 22:18 UTC → resolved 41 min agodMSTR: tick failed: phoenix /exchange/markets -> 429
- warningDEPTH_UNAVAILABLE · dMSTR12 Sep 22:08 UTC → resolved 48 min agodMSTR: order-book depth unreadable; expansion is refused and defensive slices use the fallback depth
- warningTICK_FAILED · dMSTR12 Sep 21:59 UTC → resolved 60 min agodMSTR: tick failed: phoenix /exchange/markets -> 429
Event log
Every action planned, sent or observed for this token, newest first.
| Time | Kind | Status | Reason | Leverage | Amount | Fill / mark | Slip | Tx |
|---|---|---|---|---|---|---|---|---|
| 12 Sep 23:01 UTC | Crank | confirmed | crank: receipt 78s old, session impact | 2.00x → — | — | — | — | 3oWz…CfXp |
| 12 Sep 22:59 UTC | Crank | confirmed | first crank for dMSTR | 2.00x → — | — | — | — | 3y1Y…x3ay |
| 12 Sep 22:59 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:36 UTC | Crank | confirmed | crank: receipt 124s old, session impact | 2.00x → — | — | — | — | 28Cu…YrvZ |
| 12 Sep 22:34 UTC | Crank | confirmed | crank: receipt 135s old, session impact | 2.00x → — | — | — | — | 2Pd3…ny4p |
| 12 Sep 22:34 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:32 UTC | Crank | confirmed | crank: receipt 206s old, session impact | 2.00x → — | — | — | — | 2Gn9…wcTc |
| 12 Sep 22:30 UTC | Crank | confirmed | crank: receipt 95s old, session impact | 2.00x → — | — | — | — | 35vL…f5Cs |
| 12 Sep 22:30 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:28 UTC | Crank | confirmed | crank: receipt 158s old, session impact | 2.00x → — | — | — | — | 679X…vmwD |
| 12 Sep 22:25 UTC | Crank | confirmed | crank: receipt 122s old, session impact | 2.00x → — | — | — | — | 4SbL…DHrD |
| 12 Sep 22:25 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:23 UTC | Crank | confirmed | crank: receipt 228s old, session impact | 2.00x → — | — | — | — | 2xEu…rEXd |
| 12 Sep 22:19 UTC | Crank | confirmed | crank: receipt 265s old, session impact | 2.00x → — | — | — | — | RCnB…Udnp |
| 12 Sep 22:19 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:15 UTC | Crank | confirmed | crank: receipt 97s old, session impact | 2.00x → — | — | — | — | 5yLH…oWh1 |
| 12 Sep 22:13 UTC | Crank | confirmed | first crank for dMSTR | 2.00x → — | — | — | — | 4PcC…u7US |
| 12 Sep 22:13 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:08 UTC | Crank | confirmed | crank: receipt 106s old, session impact | 2.01x → — | — | — | — | 2hNW…jiVy |
| 12 Sep 22:06 UTC | Crank | confirmed | crank: receipt 159s old, session impact | 2.01x → — | — | — | — | Nwmd…zNJM |
| 12 Sep 22:06 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 22:04 UTC | Crank | confirmed | attempt 1: Solana error #-32002; Decode this error by running `npx @solana/errors decode -- -32002 'X19jb2RlPS0zMjAwMiZsb2dzPSU1QlByb2dyYW0lMjBDb21wdXRlQnVkZ2V0MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJTIwaW52b2tlJTIwJTVCMSU1RCUyQyUyMFByb2dyYW0lMjBDb21wdXRlQnVkZ2V0MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJTIwc3VjY2VzcyUyQyUyMFByb2dyYW0lMjBDb21wdXRlQnVkZ2V0MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJTIwaW52b2tlJTIwJTVCMSU1RCUyQyUyMFByb2dyYW0lMjBDb21wdXRlQnVkZ2V0MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJTIwc3VjY2VzcyUyQyUyMFByb2dyYW0lMjBDSnhCUE44M2o3WXZIRHVMQ2FxOURkcnA5UUhxVkFBVTlUWFFHUFJCcEF0ViUyMGludm9rZSUyMCU1QjElNUQlMkMlMjBQcm9ncmFtJTIwbG9nJTNBJTIwSW5zdHJ1Y3Rpb24lM0ElMjBjcmFuayUyQyUyMFByb2dyYW0lMjBDSnhCUE44M2o3WXZIRHVMQ2FxOURkcnA5UUhxVkFBVTlUWFFHUFJCcEF0ViUyMGNvbnN1bWVkJTIwODIzMSUyMG9mJTIwMTM5OTcwMCUyMGNvbXB1dGUlMjB1bml0cyUyQyUyMFByb2dyYW0lMjBDSnhCUE44M2o3WXZIRHVMQ2FxOURkcnA5UUhxVkFBVTlUWFFHUFJCcEF0ViUyMGZhaWxlZCUzQSUyMGN1c3RvbSUyMHByb2dyYW0lMjBlcnJvciUzQSUyMDB4MTc3MyU1RCZhY2NvdW50cz1udWxsJnVuaXRzQ29uc3VtZWQ9ODUzMW4mbG9hZGVkQWNjb3VudHNEYXRhU2l6ZT1udWxsJnJldHVybkRhdGE9JTVCb2JqZWN0JTIwT2JqZWN0JTVEJmlubmVySW5zdHJ1Y3Rpb25zPW51bGwmcmVwbGFjZW1lbnRCbG9ja2hhc2g9bnVsbCZmZWU9bnVsbCZwcmVCYWxhbmNlcz1udWxsJnBvc3RCYWxhbmNlcz1udWxsJnByZVRva2VuQmFsYW5jZXM9bnVsbCZwb3N0VG9rZW5CYWxhbmNlcz1udWxsJmxvYWRlZEFkZHJlc3Nlcz1udWxs'` | 2.01x → — | — | — | — | 4Fxz…SKzk |
| 12 Sep 22:01 UTC | Crank | confirmed | crank: receipt 239s old, session impact | 2.01x → — | — | — | — | 4xKR…K7cw |
| 12 Sep 22:01 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |
| 12 Sep 21:57 UTC | Crank | confirmed | first crank for dMSTR | 2.01x → — | — | — | — | tJiD…bWXs |
| 12 Sep 21:57 UTC | Crank | skipped | the adaptor cannot place a conditional stop yet (#8); there is no keeper-independent backstop until it can, so keeper uptime is the only protection | — | — | — | — | — |