NO CUSTODY
Keine Seed- oder Private-Key-Custody.
Die Dokumentation fokussiert Transaction Security: SafeSign-Eingang, Security-Core-Analyse, Autorisierung und tatsächlichen Integrationsstatus.

Diese Grenzen sind wichtiger als die Framework-Wahl.
Keine Seed- oder Private-Key-Custody.
Payload von Wallet/dApp nicht mutieren.
Kein Auto-Sign oder Auto-Broadcast; Autorisierung bleibt explizit.
Fehlende Evidence = Unsicherheit, niemals Silent Allow.
Originalen Request erhalten und verständliche Evidence ergänzen.
Request und verfügbaren Context empfangen.
Method, Params, Typed Data, Approvals oder PSBT normalisieren.
Policy, Destination und Simulation ergänzen.
Risiko/Unsicherheit in SafeSign zeigen; Nutzer autorisiert final.
Ein Chrome/Brave-Scaffold existiert, wrappt ethereum.request und wartet auf Continue/Reject. Production-Build-Pipeline ist noch nötig.
// browser/page context — conceptual integration boundary
const original = ethereum.request.bind(ethereum)
ethereum.request = async (request) => {
const decision = await reviewWithSafeSign(request)
if (decision !== "continue") throw new Error("User rejected")
return original(request) // forward unchanged
}Nur nicht-sensitive lokale Einstellungen; niemals Keys, Seeds, Raw Signatures oder vollständige Historie.
Jede Oberfläche nennt ihre reale Implementierungsgrenze.
Guard — Manifest-V3-Basis existiert; Production Build/Distribution separat.
Wallet — UI existiert; reale Flows müssen SafeSign aufrufen.
Relay — Route/Fee/PSBT-Analyse existiert; Signing/Execution zukünftig.
Request erhalten, strukturierte Evidenz ableiten, Unknowns protokollieren und eine erklärbare Entscheidung liefern, ohne Signaturhoheit zu übernehmen.
Origin, Chain, Methode, Payload-Hash und Intention vor Analyse erfassen.
Fakten, Provenance, Freshness, Widersprüche und Unknowns getrennt halten.
ALLOW, WARN, REVIEW oder BLOCK mit Reason Codes und geprüftem Payload-Hash zurückgeben.
Request erhalten, strukturierte Evidenz ableiten, Unknowns protokollieren und eine erklärbare Entscheidung liefern, ohne Signaturhoheit zu übernehmen.
{
"origin":"https://app.example",
"chainId":1,
"method":"eth_signTypedData_v4",
"payloadHash":"sha256:...",
"intent":"swap 1 ETH"
}{
"decision":"REVIEW",
"reasonCodes":["AUTHORITY_EXCEEDS_INTENT"],
"unknowns":["spender_reputation"],
"payloadHash":"sha256:..."
}Ändert sich der Payload nach der Review, ist die Entscheidung ungültig und neue Review erforderlich.