wallet_policy.json
2641 bytes
{
"addressing": {
"address_prefix": "SPACE",
"address_rule": "SPACE-SHA256(canonical public JWK)[:32]",
"address_version": 1,
"chain_specific_replay_protection": "signed spends bind chain_id and payload version",
"mainnet_gap": "final public mainnet address version and migration policy require review"
},
"chain_id": "spacecash-devnet-1",
"custody": {
"current_model": "non_custodial_browser_devnet",
"custodial_operations_allowed": false,
"development_candidate_keys": "unsafe_for_custody",
"hardware_wallet_support": "not_implemented",
"production_custody_status": "not_approved"
},
"encrypted_backup": {
"backup_rotation_status": "manual_user_export_only",
"cipher": "AES-256-GCM",
"envelope_type": "spacecash-encrypted-wallet-backup",
"kdf": "PBKDF2-SHA256-250000",
"minimum_passphrase_length": 12,
"private_key_material": "private JWK is allowed only inside encrypted browser backup JSON",
"server_backup_storage_allowed": false,
"wallet_export_version": 1
},
"id": "spacecash-devnet-wallet-policy-v1",
"mainnet_gaps": [
"recovery phrase or deterministic recovery standard",
"final address version and migration policy",
"backup rotation and verification workflow",
"lost-key and compromised-key operating procedures",
"hardware wallet or custody plan",
"legal and operational custody review"
],
"manual_gate": {
"id": "wallet_recovery_custody_policy_complete",
"reason": "Production recovery, address versioning, backup rotation, hardware/custody, and operating procedures still require approval.",
"status": "not_complete"
},
"mode": "local signed devnet",
"policy_hash": "239750DE7AC4374A298EED8124925E8193B8D16FA966E0D6FBB256B873F422C8",
"recovery": {
"compromised_key_policy": "create a new wallet, stop using the compromised key, and record operational review before production",
"current_recovery_method": "encrypted browser wallet backup JSON",
"lost_key_policy": "no server recovery for lost browser private keys",
"recovery_phrase_standard": "not_implemented",
"user_backup_verification_status": "manual_export_import_flow_only"
},
"scope": "Defines the current wallet recovery and custody boundary. It is not a production custody approval.",
"signing": {
"algorithm": "ECDSA P-256",
"payload_format": "canonical JSON",
"registered_public_key_required_for_signed_spends": true,
"server_private_key_required": false,
"server_private_key_storage_allowed": false
},
"version": 1
}