ai.newnal.illi.account.exchangeCode
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Exchange the one-time code from a client=native sign-in (delivered to the app at …/native/callback?code=…, 60 s, single use) for a session token, sent afterwards as Authorization: Bearer on every call and on /events. The code is bound to the code_challenge the app sent when it started the sign-in; codeVerifier proves it is the same app (PKCE-style S256), which stops a code obtained for another account from being injected into the app.",
"errors": [
{
"name": "InvalidCode"
},
{
"name": "RateLimitExceeded"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"code": {
"maxLength": 128,
"type": "string"
},
"codeVerifier": {
"description": "The random secret (RFC 7636 code verifier: 43-128 characters of A-Z a-z 0-9 - . _ ~) whose base64url(SHA-256) the app sent as code_challenge to /oauth/login or account.parent.startOAuth.",
"maxLength": 128,
"minLength": 43,
"type": "string"
}
},
"required": [
"code",
"codeVerifier"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"app": {
"knownValues": [
"family",
"device"
],
"type": "string"
},
"did": {
"format": "did",
"type": "string"
},
"expiresAt": {
"format": "datetime",
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"token",
"did",
"app",
"expiresAt"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "ai.newnal.illi.account.exchangeCode",
"lexicon": 1
}
Metadata
- DID
-
did:plc:uztm7bi2ce42dez3uu3qafro - CID
-
bafyreibwhx7utm53ejdhqpfizaxdxjbcozknddrfc2e5ahwomgo7fofzri - Indexed At
- 2026-10-23 07:24 UTC
- AT-URI
-
at://did:plc:uztm7bi2ce42dez3uu3qafro/com.atproto.lexicon.schema/ai.newnal.illi.account.exchangeCode
Version History (3 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
ai.newnal.illi.account.parent.startOAuth procedure
Start a parent's OAuth sign-in on the device through the PDN's own page (BFF), for an existing Newnal ID whose credentials are typed on the PDN page. Device-created accounts, and existing ones whose credentials the devi…
-
Issue a server nonce (5 minutes) that a client binds into its attestation before calling account.requestPDNCreationGrant, account.parent.signIn, account.family.signIn or device.requestOnboardingCode. The nonce is an att…