SafeSign Decision SDK
Contratto client/server per decodificare richieste supportate, esprimere intent, allegare evidenze e restituire ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionSafeSign viene costruito come livello di integrazione per wallet, fintech e app onchain: decodificare la richiesta, aggiungere contesto, preservare il payload e richiedere una decisione esplicita.

Il contratto prodotto è più ristretto del vecchio ecosistema. Le integrazioni devono esporre decisioni ed evidenze SafeSign senza importare prodotti business o Office.
Contratto client/server per decodificare richieste supportate, esprimere intent, allegare evidenze e restituire ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionPrimitive local-first riutilizzabili in SafeSign, Guard e integrazioni wallet senza custodia di chiavi o autorità di firma.
deterministic rules → explainable signalsSuperficie browser che avvolge richieste supportate e presenta SafeSign prima di inoltrare l'originale invariato.
provider request → explicit continue / rejectPolicy firmate, approvazioni e controlli enterprise stanno sopra il core e vanno costruiti dopo aver stabilizzato contratto e audit boundary.
signed policy → organization decision constraintsGli acquirenti enterprise verificheranno le affermazioni. La superficie separa quindi gli artefatti attuali dalle capacità production ancora da validare o revisionare.
Il modello deve scalare dal self-service all'enterprise contrattuale senza creare prodotti scollegati per ogni segmento.
Valutazione self-service, contratti di riferimento, analisi locale e documentazione per favorire adozione prima del procurement.
EVALUATION / ADOPTIONIntegrazione usage-based o contrattuale per wallet, fintech e prodotti onchain quando le garanzie API saranno misurabili.
SDK / API REVENUEPolicy enforcement, private deployment, evidenze procurement, support commitments e multi-approval formano il livello istituzionale.
ANNUAL CONTRACT / PRIVATE DEPLOYMENTL'SDK/API dovrà ricevere contesto e payload invariato, restituendo evidenze strutturate e una raccomandazione. L'autorità di firma resta al wallet integratore.
// Target interface — illustrative, not a published package
const review = await safeSign.review({
origin,
chainId,
method,
payload, // preserved unchanged
expectedIntent, // optional user/app intent
});
review.decision // ALLOW | WARN | REVIEW | BLOCK
review.evidence // structured, explainable signals
review.payload // same signing payload supplied by integratorIl contratto deve essere side-effect free: request in, evidence out, payload preservato e signer authoritative.
Aggiungi review nel boundary affidabile più stretto senza ricostruire transport, custody o signing.
Intercetta provider methods prima della conferma e mostra evidenza senza sostituire la richiesta originale.
Analizza dopo request construction e prima del signer; le key restano fuori dall'analisi.
Esegui evidence e policy prima di inoltrare il pacchetto a signer/custody esistenti.
Tratta machine intent come input non affidabile; richiedi policy gates ed escalation umana per azioni irreversibili o high-value.
Analizza il payload finale, non solo parametri iniziali, per evitare bypass via encoding/routing.
Riusa l'evidence model per observability e incident triage senza concedere signing authority.
L'evidenza sconosciuta deve restare visibilmente sconosciuta. L'assenza di analisi non deve mai diventare ALLOW.
Ricevi la richiesta esatta e origin prima della conferma.
Identifica la famiglia prima di applicare logica generica.
Normalizza metodi, parametri, autorità e destinazioni.
Aggiungi contesto contract, policy, freshness e simulazione quando disponibile.
Confronta l'autorità ricostruita con l'intento dichiarato.
Restituisci ALLOW, WARN, REVIEW o BLOCK con motivazioni e unknowns espliciti.
Restituisci il controllo a wallet o signer. L'analisi non firma né trasmette silenziosamente.
Il contratto deve essere side-effect free: request in, evidence out, payload preservato e signer authoritative.
{
"requestType": "eip712",
"origin": "https://app.example",
"chainId": 1,
"method": "eth_signTypedData_v4",
"intent": { "action": "swap", "asset": "USDC" },
"payload": "<original wallet payload>"
}{
"decision": "REVIEW",
"confidence": "partial",
"authority": [{ "type": "token_spend", "scope": "unlimited" }],
"evidence": [{ "signal": "new_spender", "severity": "high" }],
"unknowns": ["future_execution_state"],
"payloadIntegrity": "unchanged"
}L'evidenza sconosciuta deve restare visibilmente sconosciuta. L'assenza di analisi non deve mai diventare ALLOW.
L'evidenza sconosciuta deve restare visibilmente sconosciuta. L'assenza di analisi non deve mai diventare ALLOW.
Non indovinare. Preserva la richiesta, mostra ciò che non è supportato e richiedi review.
unsupported → REVIEWContinua con evidenza statica e contestuale, rendendo esplicita l'assenza della simulazione.
simulation: unavailable → confidence: partialTratta il mismatch tra intento e autorità decodificata come evidenza primaria.
intent != authority → REVIEW/BLOCK policyL'intelligence time-sensitive richiede freshness metadata per evitare che osservazioni vecchie sembrino attuali.
observedAt + ttl → freshnessL'integrazione deve fallire visibilmente, preservare payload integrity, esporre unsupported states e non trasformare analysis failure in approval implicita.