Repository navigation
Conversation
Grid already rejects uncompressed keys on passkey challenge, session refresh and OAuth verify, and needs an uncompressed key on wallet export. The spec still accepted either form on challenge and refresh, had no pattern on OAuth verify or export, and described a deprecated uncompressed-key flow that no longer works. Pin each request to the one form its endpoint accepts, in lowercase hex. The sandbox OAuth nonce is sha256 of the exact clientPublicKey string, so lowercase keeps the client's hash and Grid's matching. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
Contributor
|
This PR does not match any of the 3 configured review trigger rules. |
|
The latest updates on your projects. Learn more about Vercel for GitHub. 3 Skipped Deployments
|
Contributor
|
…e guides Grid no longer seals a session signing key to an uncompressed clientPublicKey, so the guides' decrypt steps and 04-prefixed login examples no longer work. The client key pair is now always a signing key sent compressed in lowercase hex, and its private key is the session signing key. - client-keys: step 1 generates a signing key and emits the compressed form; the old ECDH samples move to a wallet export key pair section; the receive and decrypt steps are gone, so signing is now step 2. - authentication, sessions, sandbox and concepts pages: session responses carry no key material; passkey and refresh examples send a compressed key. - Refresh payloadToSign examples show the session-creation payload Grid returns today. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Grid's handlers already require a compressed
clientPublicKeyon passkey challenge, session refresh and OAuth verify, and an uncompressed one on wallet export. The spec disagreed. Challenge and refresh accepted either form. OAuth verify and export had no pattern. The docs still described a deprecated flow that sends an uncompressed key, which Grid now rejects.The spec now also requires lowercase hex. The sandbox OAuth
nonceis sha256 of the exactclientPublicKeystring the client sends. Standard libraries emit lowercase, and Grid forwards its canonical lowercase encoding, so lowercase keeps the client's hash and Grid's matching.What changed
clientPublicKeyPOST /auth/credentials/{id}/challengeAuthCredentialChallengeRequest^0[23][0-9a-f]{64}$, length 66POST /auth/sessions/{id}/refreshAuthSessionRefreshRequest^0[23][0-9a-f]{64}$, length 66POST /auth/credentials/{id}/verify(OAuth)OauthCredentialVerifyRequestFields^0[23][0-9a-f]{64}$, length 66POST /internal-accounts/{id}/exportInternalAccountExportRequest^04[0-9a-f]{128}$, length 130encryptedSessionSigningKey.clientPublicKeystring exactly as sent. The OAuth verify curl examples now send a compressed key.payloadToSignexamples show today's session-creation payload. The export examples keep the uncompressed key.openapi.yamlandmintlify/openapi.yamlwithmake build.make lintpasses with 0 errors.Compatibility
This is a stricter contract. An uppercase key, or the wrong form for the endpoint, now gets a
400at request validation. Wrong-form keys were already rejected by the handlers, so the new behavior is the uppercase rejection.🤖 Generated with Claude Code