{"chain":"solana","cluster":"mainnet-beta","version":"0.1-design","summary":"How Vaultfire accountability bonds, partnership bonds, and trust receipts map to Solana agent/payment workflows. Two options: native Solana program (Option A) or cross-chain bridge with Solana-side proof of EVM bond status (Option B).","status":"design","statusNote":"No Solana bond contract is deployed today. EVM bonds on Base are live. This document is the surface for Solana partners to review before we build.","primitives":{"accountabilityBond":{"status":"live-on-base","baseContract":"0xfA15Ee28939B222B0448261A22156070f0A7813C","purpose":"Agent posts USDC bond. If the agent misbehaves and a slashing claim is verified, the bond is slashed and partial restitution flows to the harmed counterparty.","baseAbiUrl":"https://theloopbreaker.com/api/x402/abis"},"partnershipBond":{"status":"live-on-base","purpose":"Two agents post mutual collateral when entering a partnership. Either side can claim against the other if the partnership terms are breached."},"trustReceipt":{"status":"live-on-base","purpose":"A signed, hashed record of an agent action — the off-chain payload anchored on-chain via the TrustAttestation contract."}},"optionA_nativeSolanaProgram":{"status":"planned","idea":"Port AccountabilityBond to a Solana program (Anchor). Bond escrow as PDA; slashing logic as on-program instruction.","components":{"program":{"name":"vaultfire-accountability-bond-sol","pdas":{"bondVault":"seeds = [\"bond\", agentPubkey] — holds the bonded SOL or USDC-SPL","bondState":"seeds = [\"state\", agentPubkey] — stores amount, status, slashCount"},"instructions":[{"name":"initBond","args":["amount: u64","asset: enum{SOL,USDC_SPL}"]},{"name":"topUpBond","args":["amount: u64"]},{"name":"submitSlashClaim","args":["evidenceHash: [u8;32]","reason: string"]},{"name":"resolveSlashClaim","args":["claimId: u64","verdict: enum{Uphold,Reject}"]},{"name":"withdrawBond","args":["after coolingPeriod"]}],"audit":"planned — same scope as Coinbase-grade audit done for Base contracts"},"tokens":{"primary":"USDC-SPL (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)","secondary":"native SOL (for tiny bonds and tests)"}},"deliveryTimelineNote":"Honest estimate: 4-6 weeks engineering + 4-6 weeks audit. Will not commit a hard date here."},"optionB_crossChainBridgeProof":{"status":"design-ready","idea":"Bond stays on Base (already deployed and used). A Solana-side agent proves its bond status by posting a Memo-program tx whose memo is a signed attestation tying its Solana pubkey to its Base agent address + current bond amount + timestamp.","flow":[{"step":1,"actor":"agent","action":"Calls /api/agent/trust?chain=base&address=0x... to fetch current Base bond status from the AccountabilityBond contract."},{"step":2,"actor":"agent","action":"Constructs an attestation payload: { solPubkey, baseAddress, bondAmount, bondAsset, timestamp, nonce }. Canonicalize (JCS) and hash (SHA-256)."},{"step":3,"actor":"agent","action":"Signs the hash with the Base wallet (EIP-191 personal_sign). Constructs a Solana tx with one MemoProgram instruction whose memo is JSON.stringify({ hash, sig })."},{"step":4,"actor":"agent","action":"Signs and broadcasts the Solana tx with the Solana wallet. The resulting Solana signature is the receipt anchor."},{"step":5,"actor":"verifier","action":"GET /api/solana/receipt?signature=<sig> → extract memo. Recover EIP-191 signer from sig. Assert recovered signer === baseAddress. Re-fetch Base bond status to confirm live."}],"verifierEndpoints":{"base":"/api/agent/trust?chain=base&address=0x...","solanaReceipt":"/api/solana/receipt?signature=..."},"advantages":["Zero new Solana contract code — ships today","Bond capital stays in the audited Base contract","Solana provenance is a thin layer on top of MemoProgram"],"limitations":["Slashing still happens on Base; Solana-side counterparty must file slash claim on Base","Requires verifier to fetch both chains (one extra RPC hop)","Not a true Solana-native bond — design label, not aspirational claim"]},"receiptAnchorPattern":{"status":"live-design","liveEndpoint":"/api/solana/receipt","purpose":"Anchor any off-chain payload (action result, trust attestation, slashing evidence) onto Solana for ~$0.0001 per anchor.","steps":["Compute hash = sha256(canonicalize(payload))","Build Solana tx with single MemoProgram instruction; memo = hash","Sign + broadcast with your own wallet","Verifiers re-hash the payload off-chain and compare to memo"],"memoProgramId":"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr","verifierEndpoint":"/api/solana/receipt?signature=<sig>"},"currentlyLive":{"scan":"/api/solana/scan?address=<base58>","health":"/api/solana/health","receipt":"/api/solana/receipt?signature=<base58>","trustCrossChain":"/api/agent/trust?chain=solana&address=<base58>","indexer":"/api/solana/index","cronTick":"/api/solana/cron"},"nextSteps":["Ship Option B (cross-chain bridge proof) — design complete, no new contracts needed","Pilot with one partner (Solana Fund / Kenneth) to validate the verifier flow","Scope and quote Option A (native Solana program) if pilot demand justifies a full audit"],"truthNotes":["No Solana smart contract authored by Vaultfire is deployed today.","All Solana endpoints listed under currentlyLive are read-only RPC fan-outs.","$150 Alchemy credit is being burned by the indexer cron + organic traffic; no other partnership claimed."],"contact":"ghostkey316@proton.me","generatedAt":"2026-06-12T12:04:21.726Z"}