SafeSign Decision SDK
Contrato cliente/servidor para decodificar requests, expressar intenção, anexar evidência e retornar ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionSafeSign está sendo construído como camada de integração para wallets, fintechs e apps onchain: decodificar o pedido, adicionar contexto, preservar o payload e exigir decisão explícita.

O contrato do produto é mais estreito que a antiga narrativa UTXO. Integrações devem expor decisões e evidências do SafeSign, sem misturar produtos de negócio ou Office.
Contrato cliente/servidor para decodificar requests, expressar intenção, anexar evidência e retornar ALLOW / WARN / REVIEW / BLOCK.
context + payload → evidence + decisionPrimitivas local-first de análise e políticas reutilizáveis em SafeSign, Guard e wallets sem custódia de chaves ou autoridade de assinatura.
deterministic rules → explainable signalsSuperfície browser que envolve requests compatíveis e apresenta SafeSign antes de encaminhar o pedido original intacto.
provider request → explicit continue / rejectPolíticas assinadas, aprovações e controles enterprise ficam acima do core e devem ser construídos após estabilizar contrato e auditoria.
signed policy → organization decision constraintsCompradores enterprise verificarão as afirmações. Por isso a superfície separa artefatos atuais de capacidades de produção que ainda exigem validação ou revisão independente.
O modelo deve escalar de self-service a enterprise contratual sem criar produtos desconectados para cada segmento.
Avaliação self-service, contratos de referência, análise local e docs para adoção antes do procurement.
EVALUATION / ADOPTIONIntegração por uso ou contrato para wallets, fintechs e produtos onchain quando garantias da API forem mensuráveis.
SDK / API REVENUEPolicy enforcement, private deployment, evidência para procurement, suporte e multi-approval formam a camada institucional.
ANNUAL CONTRACT / PRIVATE DEPLOYMENTO SDK/API deverá receber contexto e payload intacto, retornando evidência estruturada e recomendação. A autoridade de assinatura permanece na 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 integratorO contrato deve ser side-effect free: request entra, evidência sai, payload preservado e signer continua authoritative.
Adicione review no boundary confiável mais estreito sem reconstruir transport, custody ou signing.
Intercepte provider methods antes da confirmação e mostre evidência sem substituir o request original.
Analise após construir o request e antes de invocar signer; keys ficam fora da análise.
Execute evidência e policy antes de enviar o pacote ao signer/custody existente.
Trate machine intent como input não confiável; exija policy gates e human escalation para ações irreversíveis ou high-value.
Analise o payload final, não só parâmetros prévios, para que encoding/routing não contornem review.
Reutilize o evidence model para observability e incident triage sem conceder signing authority.
Evidência desconhecida deve continuar claramente desconhecida. Falha de análise nunca vira ALLOW silencioso.
Receba o request exato e origin antes da confirmação.
Identifique a família antes de aplicar lógica genérica.
Normalize métodos, parâmetros, autoridade e destinos.
Adicione contexto de contrato, policy, freshness e simulação quando disponível.
Compare a autoridade reconstruída com a intenção declarada.
Retorne ALLOW, WARN, REVIEW ou BLOCK com razões e unknowns explícitos.
Devolva controle à wallet ou signer. A análise nunca assina ou transmite silenciosamente.
O contrato deve ser side-effect free: request entra, evidência sai, payload preservado e signer continua 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"
}Evidência desconhecida deve continuar claramente desconhecida. Falha de análise nunca vira ALLOW silencioso.
Evidência desconhecida deve continuar claramente desconhecida. Falha de análise nunca vira ALLOW silencioso.
Não adivinhe. Preserve o request, exponha o que não é suportado e exija review.
unsupported → REVIEWContinue com evidência estática e contextual, deixando a falta de simulação explícita.
simulation: unavailable → confidence: partialTrate divergência entre intenção e autoridade decodificada como evidência principal.
intent != authority → REVIEW/BLOCK policyInteligência temporal precisa de freshness metadata para que observações antigas não pareçam atuais.
observedAt + ttl → freshnessIntegração deve falhar visivelmente, preservar payload, expor unsupported states e nunca transformar analysis failure em approval implícito.