NO CUSTODY
Ez seed edo private-key custody.
Dokumentazioa transaction security-ra fokuratzen da: SafeSign sarrera, Security Core analisia, authorization eta integration status erreala.

Muga hauek framework-a baino garrantzitsuagoak dira.
Ez seed edo private-key custody.
Ez aldatu wallet/dApp payload-a.
Ez auto-sign edo auto-broadcast; authorization explicitua.
Evidence falta = uncertainty, ez silent allow.
Original request mantendu eta evidence ulergarria gehitu.
Supported request eta context jaso.
Method, params, typed data, approvals edo PSBT normalizatu.
Policy, destination eta simulation evidence gehitu.
Risk/uncertainty SafeSign-en erakutsi; user-ak authorization mantendu.
Chrome/Brave source scaffold-a dago; ethereum.request wrap egiten du eta continue/reject itxaroten du. Production build pipeline falta da.
// 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
}Sensitive ez diren local preferences soilik; inoiz ez keys, seeds, raw signatures edo history osoa.
Surface bakoitzak bere implementation boundary dauka.
Guard — Manifest V3 foundation dago; production build/distribution aparte.
Wallet — UI dago; real flows SafeSign-etik pasa behar dira.
Relay — route/fee/PSBT analysis dago; signing/execution future integration da.
Request-a mantendu, evidence egituratu, unknowns gorde eta signing authority hartu gabe decision explainable itzuli.
Origin, chain, method, payload hash eta intent hartu analysis aurretik.
Facts, provenance, freshness, contradictions eta unknowns bereizita mantendu.
ALLOW/WARN/REVIEW/BLOCK + reason codes + reviewed payload hash itzuli.
Request-a mantendu, evidence egituratu, unknowns gorde eta signing authority hartu gabe decision explainable itzuli.
{
"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:..."
}Payload review ondoren aldatzen bada, decision baliogabea da eta review berria behar da.