SoroSentinel Emblem
SoroSentinel Protocol 30 Ready
ED25519 SNAPSHOT: VALID
Stellar & Soroban Pre-Signing Security

Deconstruct the envelope
before signature.

SoroSentinel advises before transactions commit to the ledger. It simulates contract calls, exposes stealth signer additions, flags look-alike asset codes, and verifies counterparties against offline cryptographic snapshots — with zero telemetry.

ACTIVE SPECIMEN:
CALIBRATION: STROOP-EXACT
Guard Status FINDINGS_PRESENT SetOptionsOp
Forensic Dissection Layer Invariant 1 & 9 Active
HIGH CAUTION: FINDINGS PRESENT Worst-Case Simulation
Inspected Account: GCEZ...ALICE
Derivation Effect: Added Signer: GA7EVIL... (Weight: 10 / Threshold: 10) [ledger]
01 / The Threat Landscape

Hostile Vectors in Routine Envelopes

Stellar transactions disguise lethal exploits inside standard operations that conventional wallets approve without warning.

G-SIGNER-ADDED

Stealth Key Hijack

An attacker slips a SetOptionsOp operation into an innocent-looking dApp envelope. Once approved, an external public key gains signing weight sufficient to satisfy account thresholds, granting permanent unauthorized control.

G-TRUST-FLAGGED

Look-Alike Asset Mimicry

Anyone on Stellar can issue a coin named USDC, EURC, or AQUA. Wallets displaying only the ticker leave signers accepting unbacked tokens from unverified rogue issuers with zero reserve backing.

G-UNBOUNDED-TIME

Indefinite Validity Replays

Transactions without a strict upper max_time remain valid on the ledger indefinitely until the sequence number increments. SoroSentinel flags unbounded validity before the signature leaves memory.

02 / The Protocol Architecture

Unidirectional Pipeline

Three independent components communicating exclusively through versioned schemas. No internal imports, no shared state.

[ NODE 01 ]

Scan

Sandboxed Rust library and CLI. Analyzes deployed Soroban WASM bytecode with --network none and seccomp memory caps. Flags self-upgrades, cross-calls, and contract creation indicators without code execution.

Rust · Sandboxed Bytecode Triage · SARIF
[ NODE 02 ]

Intel

Threat-intelligence backbone in Go. Ingests Stellar RPC ledgers idempotently, checks SEP-1 home domains, evaluates a deterministic rule table, and publishes cryptographically signed Ed25519 snapshots.

Go · Ledger RPC Ingestion · Ed25519 Signatures
[ NODE 03 ]

Guard

Pre-signing TypeScript SDK running in wallets. Intercepts raw XDR, simulates Soroban calls via RPC, calculates worst-case net balance deltas, and validates against offline snapshots with zero telemetry.

TypeScript · Pre-Signing SDK · Zero Telemetry
03 / The Constitutional Invariants

Governed by Non-Negotiable Law

Security tooling must never hallucinate certainty. SoroSentinel operates under strict mathematical and epistemological invariants.

AXIOM 01

Never Output "Safe"

Absence of data is never reassurance. SoroSentinel strictly outputs findings_present, no_issues_found, partial, or unanalyzable. Unrecognized operations fail loud by design.

AXIOM 02

Zero Telemetry (Snapshot First)

Guard never touches private keys and never sends transactions or counterparty accounts to remote servers. All threat evaluations occur locally against cryptographically verified offline snapshots.

AXIOM 03

Money is Integers (Stroops)

Token balances and fees are calculated as 7-decimal fixed-point integers (stroops). Floating-point arithmetic is strictly prohibited across the entire stack, eliminating precision drift exploits.

AXIOM 04

Deterministic Reproducibility

The same combination of (evidence, as_of, ruleset_version) will always produce the exact same verdict. Wall clocks are never read inside rule evaluation logic.

04 / Developer Studio

Embed in Three Lines of Code

Integrate pre-signing safety into Stellar wallets, CI contract pipelines, or node indexing workflows.

npm: @sorosentinel/guard-core
// SoroSentinel Guard — Wallet Pre-Signing Middleware
import { analyze } from "@sorosentinel/guard-core";

// Intercept the raw transaction envelope before signing
const report = await analyze(envelopeXDR, {
  networkPassphrase: "Public Global Stellar Network ; September 2015",
  rpcUrl: "https://mainnet.stellar.rpc.endpoint",
  snapshotPath: "./snapshots/latest.bin", // 100% offline lookup
});

if (report.status === "findings_present") {
  // Never suppress findings: surface worst-case balance deltas
  wallet.showPreSigningAlert({
    findings: report.findings,
    effects: report.effects,
    notChecked: report.not_checked
  });
} else if (report.status === "no_issues_found") {
  wallet.showCleanPrompt(report.effects);
}