What is Keystone Core?

One deposit. One share token. Three strategies working together.

Keystone Core is the entry and exit point. Deposit USDC (or SOL, jitoSOL, JupSOL), receive ksCORE, and Core routes capital across Keystone Alpha, Keystone Neutral, and Keystone Defense per the risk profile you select. The keeper rebalances allocations back to profile targets when drift exceeds the threshold. Each fund manages its own on-chain logic independently.


Risk Profiles

Profile
Alpha
Neutral
Defense
Character

Conservative

10%

60%

30%

Carry-heavy. Low directional beta. Stable yield with a crash floor.

Balanced (default)

20%

55%

25%

Full-cycle. Bull participation with a meaningful bear floor.

Growth

35%

40%

25%

Higher SOL exposure. Maximum Sharpe-efficient directional weight.

Not sure which to pick? Historical Simulation → shows backtested returns and drawdowns for each profile across Jan 2023 – Apr 2026.


The Three Strategies

Strategy
Role
How it works

Directional

Active SOL exposure scaling with trend. ATH-relative jitoSOL/USDC mix; idle USDC lent on Marginfi.

Carry

Delta-neutral. Earns funding and basis via Jupiter Perps. Flips to reverse-basis when funding inverts. Net SOL = zero.

Dislocations & Stress

JupSOL baseline. Deploys into mispricings, distressed opportunities, and negative-funding longs during market stress.

They operate as one system. Core handles routing — you don't manage them individually.


How It Works

Deposit:

Withdraw:

You only ever hold ksCORE. The ksALPHA / ksNEUTRAL / ksDEFENSE shares are held in Core's own token accounts and burned on your behalf — all atomically in one transaction.

ksCORE starts at 1.00 USDC and rises as the underlying funds earn. The keeper rebalances allocations back to target weights when drift exceeds drift_threshold_bps (default: 5%) and the rebalance interval has elapsed.


Accepted Deposit Tokens

Token
Path

USDC

deposit — direct, no swap

SOL / wSOL

deposit_with_swap — Jupiter: SOL → USDC

JupSOL

deposit_jupsol — PDA-signed Jupiter swap, then routed

Any other token

deposit_with_swap — Jupiter: token → USDC

All non-USDC inputs convert to USDC at Core before routing. Funds receive USDC only.


Access Control

One portfolio at a time. Your wallet can only be active in one risk profile at a time. The moment you deposit, the contract records which portfolio you're in. Any attempt to deposit into a different risk profile is rejected on-chain until you fully withdraw and your balance reaches zero. This applies across all deposit and withdrawal paths — USDC, JupSOL, swaps, everything.

To switch risk profiles: fully withdraw → wait for balance to reach zero → deposit into the new profile. There is no migration shortcut.

CoreGate. Once the admin enables the CoreGate on each fund, direct access to Alpha, Neutral, and Defense is blocked at the contract level. Only the Core program's authority PDA can call fund deposit/withdraw — users can't bypass Core's routing logic even if they try.


Instructions

Instruction
Who
What

initialize_portfolio

Admin

Creates portfolio state with immutable risk_profile and default targets/bounds

register_fund_atas

Admin

Creates fund share token accounts owned by Core

set_core_gate

Admin

Enables/disables the CoreGate on a fund. Pass the core_authority PDA for the Core portfolio this fund belongs to. Call once per fund after deploy.

deposit

User

Routes USDC to funds, mints ksCORE

deposit_jupsol

User

JupSOL → USDC (Jupiter, PDA-signed), then routed

deposit_with_swap

User

Any token → USDC (Jupiter, user-signed), then routed

withdraw

User

Burns ksCORE, redeems USDC from funds

withdraw_with_swap

User

Redeem to USDC then Jupiter swap to chosen output

rebalance

Anyone

Restores target allocations when drift / interval conditions are met

update_params

Admin

Caps, rebalance tuning, targets within profile bounds

toggle_emergency

Admin

De-risk target override

pause_portfolio

Admin

Halt deposits and routing


Program Reference

Parameter
Value

Program ID (Devnet)

rDd3hjjEdH2xJWH9RnQupX7ZTPxrzmBZhL76eS8dW8c

Program ID (Mainnet)

Pending audit

Share token

ksCORE

Fees

None at Core level — charged by funds


Next: Deposit → · Withdraw → · Historical Simulation →

Last updated