diff --git a/42.md b/42.md deleted file mode 100644 index 24f7f5d..0000000 --- a/42.md +++ /dev/null @@ -1,109 +0,0 @@ -NIP-42 -====== - -Authentication of clients to relays ------------------------------------ - -`draft` `optional` - -This NIP defines a way for clients to authenticate to relays by signing an ephemeral event. - -## Motivation - -A relay may want to require clients to authenticate to access restricted resources. For example, - - - A relay may request payment or other forms of whitelisting to publish events -- this can naïvely be achieved by limiting publication to events signed by the whitelisted key, but with this NIP they may choose to accept any events as long as they are published from an authenticated user; - - A relay may limit access to `kind: 4` DMs to only the parties involved in the chat exchange, and for that it may require authentication before clients can query for that kind. - - A relay may limit subscriptions of any kind to paying users or users whitelisted through any other means, and require authentication. - -## Definitions - -### New client-relay protocol messages - -This NIP defines a new message, `AUTH`, which relays CAN send when they support authentication and clients can send to relays when they want to authenticate. When sent by relays the message has the following form: - -``` -["AUTH", ] -``` - -And, when sent by clients, the following form: - -``` -["AUTH", ] -``` - -Clients MAY provide signed events from multiple pubkeys in a sequence of `AUTH` messages. Relays MUST treat all pubkeys as authenticated accordingly. - -`AUTH` messages sent by clients MUST be answered with an `OK` message, like any `EVENT` message. - -### Canonical authentication event - -The signed event is an ephemeral event not meant to be published or queried, it must be of `kind: 22242` and it should have at least two tags, one for the relay URL and one for the challenge string as received from the relay. Relays MUST exclude `kind: 22242` events from being broadcasted to any client. `created_at` should be the current time. Example: - -```jsonc -{ - "kind": 22242, - "tags": [ - ["relay", "wss://relay.example.com/"], - ["challenge", "challengestringhere"] - ], - // other fields... -} -``` - -### `OK` and `CLOSED` machine-readable prefixes - -This NIP defines two new prefixes that can be used in `OK` (in response to event writes by clients) and `CLOSED` (in response to rejected subscriptions by clients): - -- `"auth-required: "` - for when a client has not performed `AUTH` and the relay requires that to fulfill the query or write the event. -- `"restricted: "` - for when a client has already performed `AUTH` but the key used to perform it is still not allowed by the relay or is exceeding its authorization. - -## Protocol flow - -At any moment the relay may send an `AUTH` message to the client containing a challenge. The challenge is valid for the duration of the connection or until another challenge is sent by the relay. The client MAY decide to send its `AUTH` event at any point and the authenticated session is valid afterwards for the duration of the connection. - -### `auth-required` in response to a `REQ` message - -Given that a relay is likely to require clients to perform authentication only for certain jobs, like answering a `REQ` or accepting an `EVENT` write, these are some expected common flows: - -``` -relay: ["AUTH", ""] -client: ["REQ", "sub_1", {"kinds": [4]}] -relay: ["CLOSED", "sub_1", "auth-required: we can't serve DMs to unauthenticated users"] -client: ["AUTH", {"id": "abcdef...", ...}] -client: ["AUTH", {"id": "abcde2...", ...}] -relay: ["OK", "abcdef...", true, ""] -relay: ["OK", "abcde2...", true, ""] -client: ["REQ", "sub_1", {"kinds": [4]}] -relay: ["EVENT", "sub_1", {...}] -relay: ["EVENT", "sub_1", {...}] -relay: ["EVENT", "sub_1", {...}] -relay: ["EVENT", "sub_1", {...}] -... -``` - -In this case, the `AUTH` message from the relay could be sent right as the client connects or it can be sent immediately before the `CLOSED` is sent. The only requirement is that _the client must have a stored challenge associated with that relay_ so it can act upon that in response to the `auth-required` `CLOSED` message. - -### `auth-required` in response to an `EVENT` message - -The same flow is valid for when a client wants to write an `EVENT` to the relay, except now the relay sends back an `OK` message instead of a `CLOSED` message: - -``` -relay: ["AUTH", ""] -client: ["EVENT", {"id": "012345...", ...}] -relay: ["OK", "012345...", false, "auth-required: we only accept events from registered users"] -client: ["AUTH", {"id": "abcdef...", ...}] -relay: ["OK", "abcdef...", true, ""] -client: ["EVENT", {"id": "012345...", ...}] -relay: ["OK", "012345...", true, ""] -``` - -## Signed Event Verification - -To verify `AUTH` messages, relays must ensure: - - - that the `kind` is `22242`; - - that the event `created_at` is close (e.g. within ~10 minutes) of the current time; - - that the `"challenge"` tag matches the challenge sent before; - - that the `"relay"` tag matches the relay URL: - - URL normalization techniques can be applied. For most cases just checking if the domain name is correct should be enough. diff --git a/Accept: b/Accept: deleted file mode 100644 index e69de29..0000000 diff --git a/Origin: b/Origin: deleted file mode 100644 index e69de29..0000000 diff --git a/GET b/Trash/GET similarity index 100% rename from GET rename to Trash/GET diff --git a/Host: b/Trash/Host: similarity index 100% rename from Host: rename to Trash/Host: diff --git a/User-Agent: b/Trash/User-Agent: similarity index 100% rename from User-Agent: rename to Trash/User-Agent: diff --git a/db/ginxsom.db b/db/ginxsom.db index d9b3687..06efd6c 100644 Binary files a/db/ginxsom.db and b/db/ginxsom.db differ diff --git a/debug_auth.log b/debug_auth.log deleted file mode 100644 index 07f5a4e..0000000 --- a/debug_auth.log +++ /dev/null @@ -1,1785 +0,0 @@ -AUTH: nostr_validate_request returned: 0, valid: 0, reason: -AUTH: pubkey extracted: -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: -AUTH: pubkey extracted: -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '4ea47c723453762df3f90473ee1d5d8de6456a724116563bf24eaba35ce5cc32' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '0f0ad694efb237aca094aac7670578531921118c8063cc3f362bb1c5516ae488' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: 'c0b4559afe18d2210bd73cff47042d620b423626784cc5e4cf0bdcc0e6d013ef' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Request denied by authorization rules -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: 'c0b4559afe18d2210bd73cff47042d620b423626784cc5e4cf0bdcc0e6d013ef' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' -AUTH: resource_hash: '996e6cfc5322050df76e2d0b2536b7b9483b4c8e28756d7913a693f4c2250d4b' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '802058364873910dc6e8611c2232242484211a18724c1292486b107939de7298' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: '368a3fad122be49471eb18b87dbb61fe65dd71048aced9712c2299abc6390aca' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '79d91386d021284f9e390da6b0797c0f505ed6e5f05a28780c1d05fb2d17bebc' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: 'edba918a6b09d72a3084955bba7ea82057360e2b5378d710a09335e604420049' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '79d91386d021284f9e390da6b0797c0f505ed6e5f05a28780c1d05fb2d17bebc' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '0396b426090284a28294078dce53fe73791ab623c3fc46ab4409fea05109a6db' -AUTH: resource_hash: 'edba918a6b09d72a3084955bba7ea82057360e2b5378d710a09335e604420049' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '87d3561f19b74adbe8bf840682992466068830a9d8c36b4a0c99d36f826cb6cb' -AUTH: resource_hash: '5a5628938aa5fc67b79f5c843c813bf7823f4307935b6eb372f1250c1ccd447d' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '769a740386211c76f81bb235de50a5e6fa463cb4fae25e62625607fc2cfc0f28' -AUTH: resource_hash: '92e62f9708cef7d7f4675250267a35182300df6e1c5b6cf0bd207912d94c9016' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Failed to parse authorization header -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NOSTR event validation failed -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Unsupported event kind for authentication -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Blossom event does not authorize this operation -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: Invalid JSON in authorization -AUTH: pubkey extracted: -AUTH: resource_hash: 'a6c3dfd8af9c4b831fdb05a523a3ea398ba48b5d7213b0adb264aef88fd6bc68' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NIP-42 authentication is disabled -AUTH: pubkey extracted: -AUTH: resource_hash: 'faa99300df27a428d616596942b728a2ba8d43721701da59289a5cb41b2de006' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NIP-42 authentication is disabled -AUTH: pubkey extracted: -AUTH: resource_hash: 'faa99300df27a428d616596942b728a2ba8d43721701da59289a5cb41b2de006' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NIP-42 authentication is disabled -AUTH: pubkey extracted: -AUTH: resource_hash: 'faa99300df27a428d616596942b728a2ba8d43721701da59289a5cb41b2de006' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: nostr_validate_request returned: 0, valid: 0, reason: NIP-42 authentication requires request_url and challenge_id -AUTH: pubkey extracted: -AUTH: resource_hash: 'faa99300df27a428d616596942b728a2ba8d43721701da59289a5cb41b2de006' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' -AUTH: resource_hash: '5fd15187a73dadc96dd154c9bc4a60ba93a6cc42a11a855492d4239e697264cd' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' -AUTH: resource_hash: '7e7ed5792eb1e148dac5cb28341019e8a7a1b1d62f804154ceb8d524e2d3ee86' -AUTH: operation: 'upload' -AUTH: auth_header present: YES -AUTH: returned: 0, valid: 1, reason: Blossom authentication passed -AUTH: pubkey extracted: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' -AUTH: resource_hash: '419d982df06e8f629cf163331d98d4c3d18e9341e0c03dbe14f21392f5ffd028' -AUTH: operation: 'upload' -AUTH: auth_header present: YES diff --git a/AGENTS.md b/docs/AGENTS.md similarity index 100% rename from AGENTS.md rename to docs/AGENTS.md diff --git a/AUTH_API.md b/docs/AUTH_API.md similarity index 100% rename from AUTH_API.md rename to docs/AUTH_API.md diff --git a/BLOSSOM_FLOW.md b/docs/BLOSSOM_FLOW.md similarity index 100% rename from BLOSSOM_FLOW.md rename to docs/BLOSSOM_FLOW.md diff --git a/FASTCGI.md b/docs/FASTCGI.md similarity index 100% rename from FASTCGI.md rename to docs/FASTCGI.md diff --git a/IMPLEMENTATION.md b/docs/IMPLEMENTATION.md similarity index 100% rename from IMPLEMENTATION.md rename to docs/IMPLEMENTATION.md diff --git a/NIP42_INTEGRATION_PLAN.md b/docs/NIP42_INTEGRATION_PLAN.md similarity index 100% rename from NIP42_INTEGRATION_PLAN.md rename to docs/NIP42_INTEGRATION_PLAN.md diff --git a/README_ADMIN_API.md b/docs/README_ADMIN_API.md similarity index 100% rename from README_ADMIN_API.md rename to docs/README_ADMIN_API.md diff --git a/SUBMODULES.md b/docs/SUBMODULES.md similarity index 100% rename from SUBMODULES.md rename to docs/SUBMODULES.md diff --git a/WEB_ADMIN_SPECIFICATION.md b/docs/WEB_ADMIN_SPECIFICATION.md similarity index 100% rename from WEB_ADMIN_SPECIFICATION.md rename to docs/WEB_ADMIN_SPECIFICATION.md diff --git a/admin_specification.md b/docs/admin_specification.md similarity index 100% rename from admin_specification.md rename to docs/admin_specification.md