SafeSign Decision SDK
Contracte client/server per descodificar requests, expressar intenció, adjuntar evidència i retornar ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionSafeSign es construeix com una capa d'integració per a wallets, fintech i aplicacions onchain: descodificar la sol·licitud, afegir context, preservar el payload i exigir una decisió explícita.

El contracte de producte és més estret que l'antic ecosistema. Les integracions han d'exposar decisions i evidència de SafeSign sense barrejar productes de negoci o Office.
Contracte client/server per descodificar requests, expressar intenció, adjuntar evidència i retornar ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionPrimitives local-first reutilitzables a SafeSign, Guard i wallets sense custòdia de claus ni autoritat de firma.
deterministic rules → explainable signalsSuperfície browser que pot interceptar requests compatibles i mostrar SafeSign abans de reenviar l'original intacte.
provider request → explicit continue / rejectPolítiques signades, aprovacions i controls enterprise han d'anar sobre el core i construir-se després d'estabilitzar contracte i auditoria.
signed policy → organization decision constraintsEls compradors enterprise verificaran les afirmacions. Per això separem artefactes actuals de capacitats de producció encara pendents de validació o revisió.
El model ha d'escalar de self-service a enterprise contractual sense crear productes desconnectats per segment.
Avaluació self-service, contractes de referència, anàlisi local i docs. Objectiu: adopció abans del procurement.
EVALUATION / ADOPTIONIntegració per ús o contracte per wallets, fintech i onchain quan les garanties API siguin mesurables.
SDK / API REVENUEPolicy enforcement, private deployment, evidència de procurement, suport i multi-approval formen la capa institucional.
ANNUAL CONTRACT / PRIVATE DEPLOYMENTL'SDK/API haurà de rebre context i payload intacte i retornar evidència estructurada i una recomanació. L'autoritat de firma continua a la wallet integradora.
// 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 integratorEl contracte ha de ser side-effect free: request entra, evidència surt, payload original preservat i signer manté l'autoritat.
Afegeix review al boundary fiable més estret sense reconstruir transport, custody o signing.
Intercepta provider methods abans de confirmar i mostra evidència sense substituir la request original.
Analitza després de construir la request i abans d'invocar signer; keys fora de l'anàlisi.
Executa evidència i policy abans d'enviar el paquet al signer/custody institucional.
Tracta machine intent com input no fiable; exigeix policy gates i human escalation per accions irreversibles o high-value.
Analitza el payload final, no només paràmetres previs, perquè encoding/routing no evitin review.
Reutilitza el model d'evidència per observability i incident triage sense concedir signing authority.
L'evidència desconeguda ha de continuar visible com a desconeguda. L'absència d'anàlisi no pot convertir-se en ALLOW.
Rep la request exacta i l'origin abans de confirmar.
Identifica la família abans d'aplicar lògica genèrica.
Normalitza mètodes, paràmetres, autoritat i destins.
Afegeix context de contracte, policy, freshness i simulació quan existeixi.
Compara l'autoritat reconstruïda amb la intenció declarada.
Retorna ALLOW, WARN, REVIEW o BLOCK amb motius i desconeguts explícits.
Retorna el control a la wallet o signer. L'anàlisi mai signa ni transmet silenciosament.
El contracte ha de ser side-effect free: request entra, evidència surt, payload original preservat i signer manté l'autoritat.
{
"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'evidència desconeguda ha de continuar visible com a desconeguda. L'absència d'anàlisi no pot convertir-se en ALLOW.
L'evidència desconeguda ha de continuar visible com a desconeguda. L'absència d'anàlisi no pot convertir-se en ALLOW.
No endevinis. Preserva la request, mostra el que no està suportat i exigeix review.
unsupported → REVIEWContinua amb evidència estàtica i contextual, indicant clarament que falta simulació.
simulation: unavailable → confidence: partialTracta el desajust entre intenció i autoritat decodificada com evidència de primer nivell.
intent != authority → REVIEW/BLOCK policyLa intel·ligència temporal necessita freshness metadata perquè observacions antigues no semblin actuals.
observedAt + ttl → freshnessLa integració ha de fallar de forma visible, preservar payload, exposar unsupported states i mai convertir analysis failure en approval implícit.