myc

Self-custodial remote signer for Radroots apps
git clone https://radroots.dev/git/myc.git
Log | Files | Refs | README | LICENSE

nip46_work.v1.json (3106B)


      1 {
      2   "schema": "radroots.myc.nip46-work.v1",
      3   "contract_version": 1,
      4   "prerequisites": ["nip46_verification.v1", "nip46_replay.v1", "nip46_authorization.v1"],
      5   "decryption": {
      6     "event_binding": "exact_verified_transport_receiver_client_and_encryption_context",
      7     "operation_id": "sha256_domain_and_verified_event_id",
      8     "operation_id_domain": "radroots.myc.nip46.decrypt.operation.v1\\0",
      9     "correlation_id": "sha256_domain_and_verified_event_id",
     10     "correlation_id_domain": "radroots.myc.nip46.decrypt.correlation.v1\\0",
     11     "provider_role": "transport",
     12     "nip04_capability": "nip04_decrypt",
     13     "nip44_capability": "nip44_decrypt_v2",
     14     "plaintext_authority": "independently_verified_exact_provider_operation_result",
     15     "provider_result_binding": {
     16       "algorithm": "sha256",
     17       "domain": "radroots.myc.provider.operation_binding.v1\\0",
     18       "field_order": [
     19         "role",
     20         "instance",
     21         "provider",
     22         "operation_id",
     23         "correlation_id",
     24         "absolute_deadline_unix_ms",
     25         "expected_identity",
     26         "capability",
     27         "peer_or_empty",
     28         "nip44_version_or_zero",
     29         "input_or_empty"
     30       ],
     31       "utf8_and_byte_framing": "u64_be_length_then_exact_bytes",
     32       "operation_id_encoding": "exact_32_bytes",
     33       "correlation_id_encoding": "exact_32_bytes",
     34       "deadline_encoding": "u64_be",
     35       "nip44_version_encoding": "one_u8_zero_when_absent"
     36     },
     37     "alternate_plaintext_to_work_path": "forbidden"
     38   },
     39   "method_inventory": [
     40     "connect",
     41     "get_public_key",
     42     "get_session_capability",
     43     "sign_event",
     44     "nip04_encrypt",
     45     "nip04_decrypt",
     46     "nip44_encrypt",
     47     "nip44_decrypt",
     48     "ping",
     49     "switch_relays",
     50     "logout"
     51   ],
     52   "custom_methods": "unsupported_v1",
     53   "work_classes": {
     54     "connect": "typed_connection_admission_input",
     55     "local": ["get_public_key", "get_session_capability", "ping", "switch_relays", "logout"],
     56     "provider": {
     57       "role": "user",
     58       "sign_event_input": [
     59         "canonical_unsigned_json",
     60         "valid_optional_event_id",
     61         "exact_configured_user_author"
     62       ],
     63       "mappings": {
     64         "sign_event": "sign_event",
     65         "nip04_encrypt": "nip04_encrypt",
     66         "nip04_decrypt": "nip04_decrypt",
     67         "nip44_encrypt": "nip44_encrypt_v2",
     68         "nip44_decrypt": "nip44_decrypt_v2"
     69       }
     70     }
     71   },
     72   "authorization": {
     73     "durable_request_record_exactly_bound": true,
     74     "non_connect_requires_active_client_bound_connection": true,
     75     "expiry_checked_at_injected_observation_time": true,
     76     "required_permission_api": "radroots_nostr_connect::server::required_permission",
     77     "granted_permission_required": true,
     78     "connect_secret_authority": "forbidden",
     79     "client_metadata_authority": "none"
     80   },
     81   "sqlite": {
     82     "transaction_parameter": "forbidden",
     83     "provider_execution_while_transaction_open": "forbidden",
     84     "work_construction_phase": "after_durable_request_admission_returns"
     85   },
     86   "nonclaims": [
     87     "provider_execution",
     88     "response_commit",
     89     "outbox_creation",
     90     "relay_publication"
     91   ]
     92 }