{
  "version": "svs.independent-security-review-scope.v1",
  "product": "SVS: Solana Verification System",
  "status": "seeking_independent_review",
  "auditClaim": "No completed third-party audit or public bug bounty is currently claimed.",
  "objective": "Evaluate whether SVS fails closed when a consequential Solana agent action is unauthenticated, replayed, stale, altered, outside policy, missing required approval, or unsupported by matching execution evidence.",
  "reviewBaseline": {
    "baselineRule": "Published package hashes, the pinned reference-workflow commit, and the pinned public registry hash define the public review target. A private-source review must separately name the exact private Git commit supplied to the reviewer.",
    "javascriptSdk": {
      "package": "@svsprotocol/solana",
      "version": "0.6.0",
      "npmShasum": "10b19fb09205fcc43381c403063f373cabe55009"
    },
    "pythonSdk": {
      "package": "svs-solana",
      "version": "0.2.0",
      "wheelSha256": "94da8c2ece278448a358f8c3f36fde47a37f193bbacaccad9b1894bb3a39642c"
    },
    "referenceWorkflow": {
      "repository": "SVS-Protocol/svs-reference-workflow",
      "commit": "e72654f29efc6b66962f191fa78dee87898f0a9a"
    },
    "publicRegistry": {
      "registryHash": "f037bb60f8da15486dc3b2131c7ded6334b0a58ee697217a40d1712322f11d08",
      "profileCount": 4,
      "network": "devnet"
    }
  },
  "publicSurfaces": [
    {
      "id": "javascript_sdk",
      "url": "https://www.npmjs.com/package/@svsprotocol/solana",
      "claim": "Public client, protocol acceptance helpers, registry verification, and typed framework adapters."
    },
    {
      "id": "python_sdk",
      "url": "https://pypi.org/project/svs-solana/",
      "claim": "Thin signed-request and proof-verification client for Python agents."
    },
    {
      "id": "reference_workflow",
      "url": "https://github.com/SVS-Protocol/svs-reference-workflow",
      "claim": "Two-phase pre-execution authorization and post-execution evidence validation with deliberate mismatch rejection."
    },
    {
      "id": "public_registry",
      "url": "https://svsprotocol.com/registry",
      "claim": "Hash-pinned public demo identities, trust signals, registry JSON, trust manifest, and per-agent verification responses."
    },
    {
      "id": "public_verifier",
      "url": "https://svsprotocol.com/verify",
      "claim": "Public explanation and demonstration of proof-shape, fake-badge, and stale-proof checks."
    }
  ],
  "securityClaims": [
    {
      "id": "request_authenticity_and_replay",
      "statement": "Production bot requests require authenticated, fresh, nonce-bound request evidence and reject replay.",
      "evidence": ["docs/security-threat-model.md", "npm run audit:quickcheck"]
    },
    {
      "id": "exact_action_binding",
      "statement": "Authorization and acceptance bind to the exact serialized transaction and reject altered-action probes.",
      "evidence": ["https://github.com/SVS-Protocol/svs-reference-workflow", "npm run audit:quickcheck"]
    },
    {
      "id": "policy_and_approval",
      "statement": "A relying system receives a fail-closed decision when policy or required human approval is incomplete.",
      "evidence": ["docs/verified-agent-standard.md", "npm run audit:quickcheck"]
    },
    {
      "id": "execution_and_registry_evidence",
      "statement": "Post-execution acceptance requires matching action-record and custom receipt-registry evidence on the bound Solana network.",
      "evidence": ["docs/on-chain-receipt-registry.md", "npm run program:receipt-registry:check", "npm run deploy:receipt-registry:check"]
    },
    {
      "id": "portable_independent_verification",
      "statement": "Exported evidence can be checked independently without exposing bot credentials, wallet keys, or private operator tokens.",
      "evidence": ["docs/security-threat-model.md", "npm run audit:quickcheck"]
    }
  ],
  "nonClaims": [
    "SVS does not prove universal personhood or that a wallet signer is a unique biological human.",
    "SVS does not prove that an approved program, token, market, or strategy is economically safe.",
    "A visual badge alone is not proof and must not be accepted without current registry and action evidence.",
    "Official Agent Registry identity and reputation are separate inputs; SVS provides action-level authorization and evidence.",
    "Devnet demonstrations are not represented as mainnet production assurance.",
    "No completed third-party audit, certification, insurance, or public bug bounty is claimed."
  ],
  "contractedPrivateScope": {
    "access": "Time-boxed private repository or source snapshot access under a written review scope.",
    "sourcePinRequired": true,
    "components": [
      "Bot request authentication, nonce replay protection, and credential lifecycle",
      "Policy evaluation, human approval binding, and transaction hash binding",
      "Custom receipt-registry program integration and independent action-record verification",
      "Portable verification-set construction and verifier trust decisions",
      "Registry authority, signer lifecycle, admin audit, and release integrity controls",
      "Deployment configuration and secret-boundary review without receiving production secret values"
    ],
    "excludedMaterial": [
      "Production wallet private keys",
      "API keys and request-signing secrets",
      "Webhook and dashboard admin secrets",
      "Unredacted user or partner data",
      "Unrelated generated evidence archives"
    ]
  },
  "reproducibleChecks": [
    {
      "id": "public_reference_workflow",
      "command": "git clone https://github.com/SVS-Protocol/svs-reference-workflow.git && cd svs-reference-workflow && git checkout e72654f29efc6b66962f191fa78dee87898f0a9a && npm install && npm test",
      "expected": "The public two-phase workflow tests accept the bound action and reject deliberate mismatches."
    },
    {
      "id": "auditor_quickcheck",
      "command": "npm run audit:quickcheck",
      "expected": "Eight deterministic accept/reject scenarios pass without local operator secrets."
    },
    {
      "id": "public_package_boundary",
      "command": "npm run release:packages:check",
      "expected": "Public package metadata, declarations, tarball contents, and secret exclusions pass."
    },
    {
      "id": "receipt_registry",
      "command": "npm run program:receipt-registry:check && npm run deploy:receipt-registry:check",
      "expected": "The custom registry scaffold and deployed program binding checks pass."
    },
    {
      "id": "public_site",
      "command": "npm run site:check",
      "expected": "Public pages, registry artifacts, metadata, mail posture fixtures, and private-boundary checks pass."
    }
  ],
  "expectedDeliverables": [
    "Executive summary with severity-ranked findings",
    "Reproduction steps and impacted trust claim for each finding",
    "Review of explicit non-claims and private/public boundary",
    "Retest status for accepted fixes",
    "Public-safe attestation or report summary only after both reviewer and SVS approve publication"
  ],
  "disclosure": {
    "email": "hello@svsprotocol.com",
    "subjectPrefix": "[security]",
    "publicIssueAllowed": false,
    "sendSecretsByEmail": false,
    "instruction": "Report privately and arrange a secure exchange channel before sending secrets, exploit material, or sensitive evidence."
  }
}
