Protocol

Save and Orca

The two protocols Yoke can call, the exact accounts it is allowed to touch, and how it notices when either one changes.

Save

Save (formerly Solend) is a lending market. Yoke deposits USDC into its main-market USDC reserve and redeems the reserve's collateral tokens. It never opens an obligation in Save, so it never borrows there.

AccountAddress
ProgramSo1endDq2YkqhipRh3WViPa8hdiSpxWy6z3Z6tMCpAo
USDC reserveBgxfHJDzm44T7XG68MYKx7YisTjZu73tVovyZSjJMpmw
Lending market4UpD2fh7xH3VP9QQaXtsS1YY3bxzWhtfpks7FatyKvdY
Reserve USDC vault8SheGtsopRUDzdiD6v6BR9a6bqZ9QwywYQY99Fp5meNf
Collateral token mint993dVFL2uXWYeoXuEBFXR4BijeXdTv4s6BzsCjJZuwqk

Deposits and redemptions are Save's own instructions 4 and 5. Save refreshes the reserve's interest inside both, so neither needs a price account.

Orca

Yoke provides liquidity to Orca's legacy SOL–USDC constant-product pool: it deposits both tokens in the pool's ratio and withdraws both. It never swaps, and never deposits one side alone.

AccountAddress
Program9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP
SOL–USDC poolEGZ7tiLeH62TPV1gL8WwbXGzEPa9zmcpVnnkPKKnrE2U
USDC vault75HgnSvXbWKZBpZHveX68ZzAhDqMzNDS29X6BGLtxMo1
SOL vaultANP74VNsHwSrq9uUSjiSNyNWvf6ZPrKTmE4gHoNd13Lg
LP token mintAPDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9

Deposits and withdrawals are the pool's instructions 2 and 3. Withdrawals pay Orca's owner withdrawal fee in LP tokens.

The sixteen accounts

Every move, borrow and open passes the same sixteen accounts in this order, and the program compares each one with the registry:

#AccountWritten in a move
0Save programNo
1Save program dataNo
2Save USDC reserveYes
3Save lending marketYes, when redeeming
4Save market authorityNo
5Save reserve USDC vaultYes
6Save collateral token mintYes
7Orca programNo
8Orca program dataNo
9Orca poolNo
10Orca pool authorityNo
11Orca USDC vaultYes
12Orca SOL vaultYes
13Orca LP mintYes
14Orca fee accountYes, when withdrawing
15SPL Token programNo

Program IDs and the USDC and SOL mints are compiled into Yoke; the registry can't point an adapter anywhere else.

Version pins

The registry records the slot at which each target program was last deployed, read from its program data account. Every call into a target, and every valuation, checks the slot again. If Save or Orca upgrades, the slot changes and the adapter fails with error 701.

Because health reads both targets, that stops every move, borrow, open and liquidation, not only the ones touching the upgraded target. Repaying never calls a target, and an account with no debt can always release its assets. Supporting the upgraded program means a new registration, which YOKE governance approves by vote (update_adapters). It keeps the same custody mints.

What each step checks

After the call into the target, the adapter reads the account's token balances again and requires:

  • the receipts or tokens received to be at least the step's minimums,
  • the tokens spent to be at most the step's maximums,
  • nothing to have moved from any account other than the expected custody accounts and the target's vaults.

Next

Yoke

One credit account across Save and Orca, on Solana.

Follow on X
© 2026 YokeYoke is software on Solana; every transaction is signed by your own wallet. Borrowing, lending and liquidating can lose money. Read the risks first.