Building on Solana

Leverage your stocks. Show no one your hand.

Borrow USDG against tokenized stock on Solana and spend it from addresses nothing on-chain links back to you. Today the position is public and the money is private. Next, the position itself goes behind a proof.

On a public chain, every position is a confession.

Your position is public.

Collateral, size and liquidation level, readable by anyone watching, including whoever is trading against you.

So is everything it funds.

Every dollar you borrow leaves a trail from your position to what you bought, so your strategy is free to copy.

Privacy shouldn’t cost the trade.

Hiding a position has meant giving up liquidations, lenders or compliance. Solodi Trade keeps all three.

Four steps from a public position to a private trade.

  1. Deposit

    Your stock, your position.

    Your NVDA opens a Solodi Vault position in your name. Public, like any position.

  2. Borrow

    Borrowed dollars join the crowd.

    USDG is borrowed up to 50% LTV. It never touches your wallet; it lands in the privacy pool as your balance and earns there.

  3. Spend

    Spent from addresses nobody can link.

    You, or your agent, pay from fresh addresses funded by zero-knowledge withdrawals, in fixed pieces at hourly rounds so nothing matches your position’s size.

  4. Return

    Repaid without a trace.

    Repay from the pool, or let leftovers flow back. Your position never shows what it did.

NVDA / USDG todaymoves every block
borrow costs
0.97%
parked USDG earns
3.75%
net carry
+2.79%

Solodi Trade supplies USDG to the market, so there is always room to borrow. Stock tokens aren’t available to US persons; the token enforces that, not us. The USDG path is available everywhere.

Stage 2: the position itself, sealed.

A position becomes a note nobody can open. Solvency is proven against a Pyth price the contract already stored, never a price you supply.

Re-proving
A 5% move makes every position re-prove within fifteen minutes. Every position re-proves, so re-proving reveals nothing about who is stressed.
Lapsed positions
A position that stops re-proving is frozen and settled. Nobody opens it. There is no committee and no custodian.
Backstop
A bond per stock that pays first for any loss: 5,000 USDG for a thin market, 25,000 for a deep one, sized for a 60% gap across the stock's cap. Funded from $SOLODI's trading fee, bootstrapped from the team's own funding, and it can't be withdrawn while the caps it backs are in force.
What stays visible
That a position exists, and for how long. Not its size, not its collateral, not its liquidation line.

The design, the solvency circuit with 29 cases proven, and the borrow and claim circuits in skeleton are in the repo. An external review stands between them and mainnet.

Let an agent trade it. Under your caps.

Give your balance to an agent with a kill switch and per-payment, per-session and 24-hour limits enforced off the agent’s machine. It pays for data, inference and any x402 API from rotating addresses. Private on-chain, never from you.

The privacy stack, piece by piece.

Each part is its own package in the repo, tested on its own. The ones marked live run on testnet today.

  • rx402

    testnet live

    Private x402 payments for agents.

    Deposits go into a privacy pool. Short-lived sessions are funded by zero-knowledge withdrawals and pay x402 APIs with signed transfers, then rotate. Spending caps and a kill switch are enforced by an issuer that never shares the pool key with the agent.

  • Stealth

    testnet live

    Merchants are paid at a new address every time.

    Solana stealth addresses (Ed25519 stealth & ZK compression), offered per endpoint through an x402 extension. A settler contract binds each payment to its announcement, so a merchant can always find its revenue from the chain alone, and nobody else can.

  • Issuer

    testnet live

    The pool key stays off the agent’s machine.

    The issuer holds the mnemonic and enforces the real limits: a pause switch, a cap per session and a 24-hour cap. A compromised agent can open sessions up to its allowance and nothing more.

  • Recycler

    testnet live

    Leftover session funds go back into the pool.

    What is left in an old session returns to the pool as a fresh deposit, submitted by the relayer so the owner’s wallet never appears. Merchants can use it to sweep stealth revenue the same way.

  • A2A

    experimental

    Encrypted agent-to-agent messaging on a public chain.

    Encrypted envelopes with key commitment and padding buckets, so neither contents nor message sizes leak.

  • Private jobs

    experimental

    Confidential deliverables for ERC-8183 agent jobs.

    A hook that keeps job specs and deliverables encrypted between client, provider and evaluator.

  • Memory

    experimental

    Encrypted, versioned agent memory, recoverable from the wallet.

    Agents store encrypted state on-chain with key rotation. State is rebuilt from the chain after a crash.

  • Disclosure

    experimental

    Show an auditor exactly what you choose, verified on-chain.

    Owners prove pool activity or message history to a named party without making any of it public.

A drop-in fetch.

Merchants

Your revenue is a competitor’s dashboard.

Get paid at a new address every time, with one middleware line. You can total your revenue; nobody else can.

Inference

Models, paid per request.

An OpenAI- and Anthropic-compatible gateway. No account, no key, a delivery receipt on every response.

TypeScript
import { FileStore, IssuerSessions, Rx402Client } from "@solodi/rx402";// The agent holds only its own key. The issuer holds the pool key// and the limits, and funds each session from a ZK withdrawal.const store = new FileStore(".rx402/wallet.json");const client = new Rx402Client({  publicClient, asset: USDG, store,  policy: { budget: 1_000_000n, maxPayments: 20, maxAgeSeconds: 3600, maxPaymentAmount: 100_000n },  sessions: new IssuerSessions({ url: ISSUER_URL, agentKey, publicClient, asset: USDG, store }),});// Pays the 402 from a fresh address nobody can link to you.const { response } = await client.fetch("https://api.prices.example/quote");console.log(await response.json());
git clone https://github.com/WerelayAgent/solodi-trade
Caps
Per payment, per session, and per 24 hours.
Kill switch
Fails closed. If it can’t be read, nothing is paid.
MCP
Works with Claude, Cursor and any MCP agent.
Sessions
Rebuilt from the chain after a crash.

$SOLODI keeps the operators honest.

Solodi Trade runs on operators anyone can join: relayers, approvers, gateways and, in Stage 2, liquidators. They put $SOLODI behind their work, and lose it when a contract can prove they failed. You never need it to use Solodi Trade: deposits, borrowing and payments are all in USDG.

Bonded.

Every operator bonds $SOLODI. A failure a contract can check, like a relay it signed for and never sent, slashes the bond, and slashed $SOLODI is burned.

Burned.

A share of every private session fee and of the gateway’s margin buys $SOLODI and burns it. So does 1.5% of every $SOLODI trade.

Behind borrowers.

0.8% of every $SOLODI trade funds the backstop: the bond per stock that pays first for any loss on a sealed position.

$SOLODI is live on Solana: So1odiTrade111111111111111111111111111111111. Any other address isn’t ours. Nothing here pays holders: $SOLODI is bonded to be slashed, and bought to be burned. How it works

Running, and checkable.

11

payments in the live run

8

of them stealth

0

failures

Live run on Solana, 23 October 2026.

WhatTypeOn-chain
The poolcontract0x8cdd…BF76
A private session, funded by a zero-knowledge withdrawaltransaction0x3b53…0648
An x402 paymenttransaction0x61e5…a668
A stealth paymenttransaction0x0358…96c3
A new session funded from recycled leftoverstransaction0xe8fc…dbbf
SolodiVault, 13 tests against the live Solodi Vault NVDA/USDG marketcommit59ce4f5

What’s built.

Everything here is in the open repo. What runs, runs on Solana Devnet & Mainnet and answers this page live. The rest is tested against forks of mainnet and waits on review.

  1. 00Testnet

    Now

  2. 01Stage 1 on mainnet

    Public position, private money, under a per-stock cap

  3. 02Stage 2

    Sealed positions, after external review

  4. 03Stage 3

    Hidden asset and leverage, then private perps

Running on Solana Devnet & Mainnet, checked live from this page

  • Privacy poolUSDG pool on Privacy Pools' audited contracts, deployed unchanged.0x8cdd…BF76
  • Approval serviceScreens every deposit and publishes the approved set on-chain.checkingcode
  • RelayerSubmits zero-knowledge withdrawals, so a fresh address needs no gas.checkingcode
  • Inference gatewayModels paid per request from a private session. No account, no logs.checkingcode
  • Stealth settlerPays each merchant at a new one-time address, findable from the chain alone.0xb299…EB31
  • RecyclerReturns leftover session funds to the pool as fresh deposits.0x9727…1055
  • Yield poolThe pool's balance earns the lending rate. A stand-in vault on testnet, where Solodi Vault isn't.0x67cE…279b

Built and tested, not deployed

  • SolodiVaultStage 1: borrow against a stock token straight into the pool. 13 tests against the live NVDA/USDG market.code
  • Solvency circuitProves a sealed position healthy or insolvent exactly as Solodi Vault rounds it. 29 cases, each a real proof.code
  • rx402 SDK and MCP serverAgents deposit, open private sessions and pay x402 APIs. Works in Claude Code with no API key.code
  • Issuer and owner dashboardKeeps the pool key off the agent's machine. Kill switch, spend limits, payment history.code

Designed, in progress

  • Sealed positionsStage 2: the position becomes a note nobody can open, re-proven on every 5% move.design
  • Borrow and claim circuitsBorrowed money leaves as fixed pieces claimed at random times. Skeletons, on a shared library.code
  • $SOLODIOperator bonds and slashing, and the burn. Live on Solana; the fee split is by hand for the first 24–48 hours, then by the splitter.design
  • Internal review33 findings. Every high fixed; the rest fixed, mitigated or documented.report