§01
The mechanic
Coil splits one tokenized share of STRC preferred stock into two freely-tradeable tokens that together equal the original.
1 sSTRCx → 1 PT-sSTRCx + 1 YT-sSTRCx
PT (Principal Token) is the right to redeem one share of the underlying for $100 par at maturity (1 November 2026). It pays no dividend.
YT (Yield Token) is the right to every dividend that share pays from now until maturity. It returns nothing at maturity (the principal claim went to PT).
The mechanic is Pendle’s, invented on Ethereum in 2022, currently securing roughly $7B of TVL across LSTs, T-bills, and other yield-bearing assets. Coil applies it to a U.S.-listed preferred stock for the first time.
What you can do with each leg
| Position | How | What you get |
|---|---|---|
| Buy Fixed | Hold PT to maturity | Locked yield = (par − entry) / entry. Today: $94.40 → $100 over 180 days = 12.4% APY. |
| Buy Leveraged | Flash-borrow USDC, swap to STRCx, deposit PT, borrow USDC against it, repay flash. Single tx. | Concentrated dividend exposure × leverage. ~18% APY at 3×, scales with rate. |
| Sell Yield | Sell YT into the YT/USDC pool (when liquid) | Cash today in exchange for forfeiting future dividends |
| Hold both | Don’t split, just hold STRCx | Same as STRCx itself: ~11.5% dividend, principal at risk to STRC price |
§02
Where the yield comes from
The yield is not magic. There’s no farm token, no bootstrap emission. Every dollar of return traces to one of two sources.
Source 1, STRC’s board-set dividend
Strategy Inc (NASDAQ: MSTR) issued STRC, a $100-par perpetual preferred, to fund Bitcoin acquisition. The board sets the cash dividend rate monthly via 8-K filing. The current rate is 11.50% APR, paid bi-monthly on the 1st and 15th. STRCx is Backed Finance’s 1:1 tokenized wrapper of STRC; the dividend manifests on chain as an automatic rebase via Token-2022’s scaledUiAmount extension.
YT holders capture this dividend. PT holders give it up in exchange for a fixed redemption claim at maturity.
Source 2, PT discount-to-par
PT trades below par because future dollars are worth less than present dollars. Today PT-sSTRCx trades at $94.40 against a $100 par redemption. Holding PT to maturity captures the $5.60 gap.
PT yield = (par − entry) / entry × (365 / days_to_maturity)
= ($100 − $94.40) / $94.40 × (365 / 180) ≈ 12.4% APY
The leveraged loop math
Buy Leveraged combines both sources. With $E equity at L× leverage:
Total exposure = $E × L STRCx
Borrow = $E × (L − 1) USDC at 8% APR (coil_lending)
Net APY = (STRC dividend × L) − (borrow rate × (L − 1))
At L=3, 11.5% × 3 − 8% × 2 = 18.5% APY on equity
Capped at 3×: the lending pool enforces 75% LTV against PT collateral. Since PT trades below par, the effective LTV is ~70.8%, at 3.5× the borrow ratio (71.4%) breaches the cap. 3.0× leaves comfortable headroom for slippage.
§03
Why Solana
Pendle’s PT-as-collateral loop runs $7B on Ethereum but only at institutional position sizes, Ethereum’s gas floor makes the same loop unprofitable for retail. A five-leg tx (flash-borrow → swap → wrap → split → deposit-collateral → borrow → repay) costs $25–$200 in ETH gas. On a $5,000 position, that’s 50–400 bps of friction before any yield compounds.
The same loop on Solana fits in a single signature for $0.009 all-in. The fee floor is the product thesis. 11.5% × 3× leverage compounds profitably for a $1k retail position; on Ethereum it requires $50k+.
| Chain | Five-leg loop cost | Min profitable size |
|---|---|---|
| Ethereum (recent gas) | $25 – $200 | ≈ $50,000 |
| Solana | $0.009 | ≈ $50 |
Backed Finance shipping STRCx as a Token-2022 mint with auto-rebasing in April 2026 was the missing piece. Before that, STRC didn’t exist on Solana in a yield-bearing form. After that, the PT/YT split + loop became feasible.
§04
Legal & regulatory framework
The four layers and who’s responsible
| Layer | Issuer / operator | Regulatory regime |
|---|---|---|
| STRC (the underlying preferred) | Strategy Inc (NASDAQ: MSTR) | U.S. SEC-registered preferred stock. Trades on Nasdaq + Robinhood. Subject to standard public-company disclosure (8-K, 10-Q, 10-K). |
| STRCx (the tokenized wrapper) | Backed Finance AG (Switzerland), via xStocks brand | Issued under Liechtenstein TVTG framework. 1:1 collateralized with real STRC held at a regulated EU custodian. STRCx holders have direct legal claim on the underlying. Backed retains permissionedDelegate / freezeAuthority for compliance compulsion. |
| Coil (the protocol) | Open-source Anchor programs on Solana mainnet. No legal entity. | Non-custodial smart contracts. Coil does not issue securities, hold user funds, or represent users to any regulator. PT and YT are derivative claims encoded in code; their classification depends on the user's jurisdiction. |
| The user (you) | Self | Holding STRCx, PT, or YT may be subject to local securities, tax, and reporting law. Backed Finance's STRCx is geo-restricted from U.S. persons by Backed's terms. Coil's smart contracts are permissionless and do not enforce geo-restrictions. |
What this means in practice
STRC itself is a regulated security. When you buy STRC on Robinhood, you’re buying SEC-registered preferred stock from Strategy. Standard rules apply: 1099-DIV for dividends, capital gains on disposal, etc.
STRCx is a Swiss-regulated wrapper. Backed issues STRCx under Liechtenstein’s TVTG (token economy act). They hold the underlying STRC at a custodian, mint STRCx 1:1 against it, and publish proof-of-reserves. Backed retains the on-chain power to clawback / freeze / pause STRCx for compliance compulsion (court order, sanctions, etc.), this is spelled out in their terms and the dapp surfaces it prominently. Backed’s terms restrict U.S. persons from holding STRCx, though enforcement is at the Backed/exchange layer, not at the chain layer.
Coil is open infrastructure. The six Anchor programs (wrapper, splitter, oracle, lending, vault, adapter) are deployed and accessible to any wallet. Coil holds no user funds, every position is a token balance under your own keys. Coil takes no fees. There is no Coil entity, no Coil token, no team treasury.
PT and YT classification is jurisdictional. In most jurisdictions, derivative claims on a regulated security inherit the underlying’s securities classification. PT is economically similar to a zero-coupon bond on STRC; YT is economically similar to a cash-flow strip. Both are likely securities under U.S. law. Coil does not opine on the classification, it’s software.
What Coil deliberately does not do
- No KYC. The protocol is permissionless. If local law requires KYC for derivative trading, that’s on you.
- No custody. Coil never holds user keys or user funds outside of explicit on-chain deposits to its wrapper / splitter / lending vaults, and even those are program-derived addresses with no human signer.
- No proprietary issuance. sSTRCx, PT, and YT are 1:1 derivatives of Backed’s STRCx. Coil mints them on demand; you can always merge PT + YT back to sSTRCx and redeem to STRCx via the wrapper + adapter.
- No price manipulation. The PT oracle is a deterministic linear walk from entry price to par at maturity, not market-tracking. This makes Coil’s lending pool cascade-resistant during liquidations.
- No upgrade keys for runtime authority after multisig migration completes (in progress, see the security page).
If you’re a U.S. person
Backed Finance’s terms restrict STRCx access to non-U.S. persons. Buying STRCx through their primary issuance flow requires accreditation checks that exclude U.S. residents. That said: STRCx trades freely on Solana DEXes (Raydium, Jupiter), and the smart-contract layer doesn’t check passports. If you’re in the U.S. and you acquire STRCx from a secondary venue, you may be in breach of Backed’s terms and exposed to U.S. securities law on the derivative positions you take. Talk to a securities lawyer.
§05
Risk model
Coil is a derivative on a tokenized derivative on a variable-rate corporate preferred funded by Bitcoin. The risk stack is real. We’ve commissioned an external code audit and applied every patch within scope; the full report and status are in the security page.
Counterparty risk, Strategy Inc
STRC is junior debt-equivalent. If Strategy defaults (BTC price collapse + inability to roll convert offerings + dividend suspension), STRC redemption value goes to zero. STRC holders rank ahead of common equity but behind senior debt. The bear case: BTC at $30k for two years + Strategy can’t service dividend = STRC trades at meaningful discount to $100 par. Backed Finance’s STRCx tracks STRC’s actual value.
Counterparty risk, Backed Finance
STRCx is a Backed-issued claim on real STRC held at a custodian. If Backed mismanages reserves, gets sanctioned, or the custodian fails, STRCx breaks the 1:1 peg. Backed retains permanent on-chain authority over STRCx via Token-2022 extensions: permanentDelegate (clawback any account), freezeAuthority (freeze transfers), pausableConfig (pause the entire mint), and scaledUiAmountConfig.authority (change the rebase multiplier). Backed says they’ll only use these for legal compulsion. The dapp surfaces this prominently on Buy Fixed when STRCx is selected.
Coil’s mitigation: the coil_strcon_adapter now refuses new deposits if strcon_vault.amount < wstrcon_mint.supply · i.e. if Backed’s clawback has rendered the adapter undercollateralized, no new user can compound the loss by depositing fresh STRCx. Existing deposits are still subject to the underlying clawback risk.
Smart-contract risk
Six Anchor programs, ~3000 lines of Rust between them. External audit identified 10 critical/high findings. As of 2026-05-10:
| Finding | Status |
|---|---|
| C1, Wrapper insolvency (DRAIN-A, DRAIN-B) | Fixed |
| C2, Cross-user YT yield drain | Documented; v2 fix needs Token-2022 YT migration |
| C3, Maturity-day redemption race | Fixed (solvency invariant on harvest_dividend) |
| C4, Backed permanentDelegate | Adapter circuit breaker + dapp disclosure |
| C5, Single-key authority concentration | Multisig migration in progress |
| C6, withdraw_reserves rug | Fixed (defense-in-depth check) |
| C7, Dead coil_vault stub | Cleaned up; real vault is v2 work |
| C8, Oracle pre-emption | Fixed (governance-locked init) |
| C9, All init_* permissionless | Fixed (governance-locked across 5 programs) |
| C10, Helius API key leaked | Operational rotation in progress |
| H1, PT pricing semantics mismatch | Design pass for v2 |
| H2, AMM init permissionless | Fixed |
Liquidation risk (leveraged positions)
Buy Leveraged and Auto-loop deposit PT collateral and borrow USDC against it. The lending pool enforces 75% LTV; positions that breach LTV can be liquidated by anyone for a 5% liquidation bonus. Positions are at risk if (a) PT oracle price drops materially below entry, unlikely because PT walks toward par deterministically, OR (b) a borrower’s debt accrues past their PT collateral value at the next interest accrual.
Oracle risk
Coil uses Pyth’s Equity.US.STRC/USD feed for the spot price snapshot during dividend harvest. The wrapper validates feed ID + age (≤ 5 min) + verification level + confidence interval (≤ 1.00%) before accepting any update. PT pricing for the lending pool is deterministic (linear walk from entry to par) and does not depend on Pyth, making the lending pool cascade-resistant during oracle outages.
Liquidity risk
The dapp’s lending pool is currently bootstrap-sized ($100 USDC reserves, scales as governance seeds more). Per obligation borrow is capped at 50% of total reserves. AMM pools (Raydium PT/USDC, Meteora YT/USDC) are not yet seeded · Buy Fixed and Buy Leveraged work today; Sell Yield via the YT/USDC pool requires liquidity that will be seeded as the protocol matures.
§06
Architecture
Six Anchor programs deployed on Solana mainnet. All upgrade authorities are currently held by a single deployer keypair (5d17EC...); migration to a Squads multisig is the next operational step.
| Program | Mainnet ID | Responsibility |
|---|---|---|
| coil_strcon_adapter | FZuHa…SmxcW | Bridges Token-2022 STRCx into a legacy SPL wSTRCx mint that the rest of the protocol can speak to. 1:1 conversion in raw atoms. Includes circuit breaker (audit C4). |
| coil_wrapper | GCWiW…aFWP | Mints sSTRCx 1:1 against wSTRCx deposits. Tracks sy_index (yield accumulator) advanced by Pyth-validated harvest_dividend. Solvency invariant blocks insolvent harvests. |
| coil_splitter | EMCoX…oM3F | Splits sSTRCx into PT + YT, merges them back, mints/burns market PDAs. |
| coil_oracle | EJ5Fp…K6ff | Linear-discount PT oracle. Walks PT price from entry to $100 par over the maturity window. Cascade-resistant. |
| coil_lending | DJwFE…RrZ7 | PT-collateralized USDC lending pool. 75% LTV cap, 8% borrow APR, per-obligation borrow cap of 50% of reserves. |
| coil_vault | ECgTv…5Y55 | Hello-world stub from initial deploy. Permanently frozen (upgrade authority = System Program). Dead code; real auto-rebalanced vault is v2 work under a fresh program ID. |
The atomic loop tx
Buy Leveraged composes 8 instructions across 5 programs in a single signature:
1. MarginFi flash-borrow USDC
2. Jupiter swap USDC → STRCx
3. coil_strcon_adapter.wrap (Token-2022 → legacy SPL)
4. coil_wrapper.deposit (mint sSTRCx)
5. coil_splitter.split (mint PT + YT)
6. coil_lending.deposit_collateral (PT)
7. coil_lending.borrow (USDC)
8. MarginFi flash-repay
All atomic, if any leg fails, the whole tx reverts and the user pays only the (sub-cent) tx fee. Tx size fits the 1232-byte v0 message cap by combining a coil-owned LUT (program IDs + market PDAs) with Jupiter’s per-route LUTs.
§07
FAQ
Is Coil custodial?
No. Every PT, YT, sSTRCx, and wSTRCx token is held in your own wallet under your own keys. The protocol’s vaults hold the underlying STRCx and USDC, but those vaults are program-derived addresses (PDAs), no human can sign transfers out of them.
What happens at maturity (1 November 2026)?
You can burn equal amounts of PT + YT to redeem the underlying sSTRCx via the splitter’s redeem_pt instruction. Then redeem sSTRCx through the wrapper for wSTRCx, and unwrap wSTRCx through the adapter for STRCx. From there you can sell on Jupiter or hold the underlying.
If you only hold PT (no YT), redeem_pt still pays out at par from the wrapper’s underlying vault · that’s the PT contract.
Can I exit a position before maturity?
Yes. The splitter’s merge instruction accepts equal PT + YT and returns sSTRCx pre-maturity. The dapp’s Withdraw button on each Buy Fixed position does this end-to-end and (optionally) swaps the resulting STRCx back to USDC via Jupiter in the same tx.
What happens if Strategy cuts the dividend?
YT holders earn less. PT holders are unaffected, PT pays out at par regardless. The leveraged loop’s yield drops in proportion: net APY = (new_dividend × leverage) − (8% × debt). Below ~4% dividend, leveraged loops at 3× turn negative.
Why not deposit into the Raydium / Meteora liquidity pools?
LP positions earn trading fees on YT/USDC swaps. Today those pools aren’t seeded so volume is zero, no fee income. Seeding the pools is governance’s next move ahead of letting non-team users run the leveraged path at scale.
What chain risks exist?
Solana network risk (validator outages have historically lasted hours, not days), Token-2022 program risk (newer than legacy SPL Token, smaller surface but less battle-tested), Jupiter routing risk (multi-hop swaps depend on third-party pools’ solvency), MarginFi flash-loan risk (the non-Coil component the leveraged loop depends on).
Where is the source code?
github.com/xxpumpkingxx/coil. Programs in programs/, dapp in app/, operational scripts in scripts/, security the live security page at /security.
Who audited it?
External code review on 2026-05-08 / -09. Findings and remediation status documented in the security page. Formal audit by a brand-name firm (e.g. OtterSec, Neodyme) is a v2 milestone.