NO CUSTODY
SafeSign/Security Core में seed या private-key custody नहीं।
Documentation transaction security पर केंद्रित है: SafeSign input, Security Core analysis, authorization और वास्तविक integration status.

ये सीमाएँ framework choice से अधिक महत्वपूर्ण हैं।
SafeSign/Security Core में seed या private-key custody नहीं।
Wallet/dApp payload को mutate नहीं करना।
Auto-sign/auto-broadcast नहीं; authorization explicit रहे।
Missing evidence = uncertainty, कभी silent allow नहीं।
Original request preserve करें और readable evidence जोड़ें।
Request और available context लें।
Method, params, typed data, approvals या PSBT normalize करें।
Policy, destination और simulation evidence जोड़ें।
SafeSign में risk/uncertainty दिखाएँ; final authorization user के पास रहे।
Chrome/Brave scaffold मौजूद है जो ethereum.request wrap करता है और continue/reject decision की प्रतीक्षा करता है। Production build pipeline अभी बाकी है।
// 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
}केवल non-sensitive local preferences; keys, seeds, raw signatures या full history कभी persist नहीं।
हर surface अपना वास्तविक implementation boundary बताती है।
Guard — Manifest V3 foundation मौजूद; production build/distribution अलग काम।
Wallet — UI मौजूद; real flows को SafeSign invoke करना चाहिए।
Relay — route/fee/PSBT analysis मौजूद; signing/execution future integration है।
Request सुरक्षित रखें, structured evidence निकालें, unknowns दर्ज करें और signing authority लिए बिना explainable decision लौटाएँ।
Analysis से पहले origin, chain, method, payload hash और intent capture करें।
Facts, provenance, freshness, contradictions और unknowns अलग रखें।
ALLOW, WARN, REVIEW या BLOCK reason codes और reviewed payload hash के साथ लौटाएँ।
Request सुरक्षित रखें, structured evidence निकालें, unknowns दर्ज करें और signing authority लिए बिना explainable decision लौटाएँ।
{
"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:..."
}Review के बाद payload बदलता है तो decision invalid है और नई review जरूरी है।