ai.newnal.illi.account.parent.signIn

illi-service.newnal.id

Documentation

Sign a parent account in to ILLI from the device without a screen: the device presents the parent's scoped deviceApp app password (which it keeps) and its attestation; the Service Agent Node opens the delegated session, joins the account to the service sphere on first use and returns the device-app session. Used at first connection and at every re-login.

main procedure

Sign a parent account in to ILLI from the device without a screen: the device presents the parent's scoped deviceApp app password (which it keeps) and its attestation; the Service Agent Node opens the delegated session, joins the account to the service sphere on first use and returns the device-app session. Used at first connection and at every re-login.

Input

Encodingapplication/json
appPassword string Required

No description available.

attestation string Required

Device attestation: production = an Android key-attestation statement whose certificate chain roots at Newnal's RKP CA and whose challenge is the nonce from account.getAttestationNonce, as a compact JWS with the x5c certificate chain; PoC = mock:device:<secret>.

deviceId string Required

No description available.

maxLength: 64 bytes
did stringdid Required

A decentralized identifier (DID).

slot integer Optional

No description available.

minimum: 1maximum: 2

Output

Encodingapplication/json
deviceStatus string Optional

No description available.

Known values: registered, awaitingLink, active, unlinked, retired
did stringdid Required

A decentralized identifier (DID).

expiresAt stringdatetime Optional

An RFC 3339 formatted timestamp.

handle stringhandle Required

An AT Protocol handle (e.g., alice.bsky.social).

token string Optional

The device-app session token for native clients; web clients receive it as the illi_session cookie.

Errors

InvalidAppPassword
WrongScope
InvalidAttestation
DeviceRevoked
ParentLimitReached
ParentAlreadyLinked
RateLimitExceeded
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "description": "Sign a parent account in to ILLI from the device without a screen: the device presents the parent's scoped deviceApp app password (which it keeps) and its attestation; the Service Agent Node opens the delegated session, joins the account to the service sphere on first use and returns the device-app session. Used at first connection and at every re-login.",
  "errors": [
    {
      "name": "InvalidAppPassword"
    },
    {
      "name": "WrongScope"
    },
    {
      "name": "InvalidAttestation"
    },
    {
      "name": "DeviceRevoked"
    },
    {
      "name": "ParentLimitReached"
    },
    {
      "name": "ParentAlreadyLinked"
    },
    {
      "name": "RateLimitExceeded"
    }
  ],
  "input": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "appPassword": {
          "type": "string"
        },
        "attestation": {
          "description": "Device attestation: production = an Android key-attestation statement whose certificate chain roots at Newnal's RKP CA and whose challenge is the nonce from account.getAttestationNonce, as a compact JWS with the x5c certificate chain; PoC = mock:device:<secret>.",
          "type": "string"
        },
        "deviceId": {
          "maxLength": 64,
          "type": "string"
        },
        "did": {
          "format": "did",
          "type": "string"
        },
        "slot": {
          "maximum": 2,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "deviceId",
        "did",
        "appPassword",
        "attestation"
      ],
      "type": "object"
    }
  },
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "deviceStatus": {
          "knownValues": [
            "registered",
            "awaitingLink",
            "active",
            "unlinked",
            "retired"
          ],
          "type": "string"
        },
        "did": {
          "format": "did",
          "type": "string"
        },
        "expiresAt": {
          "format": "datetime",
          "type": "string"
        },
        "handle": {
          "format": "handle",
          "type": "string"
        },
        "token": {
          "description": "The device-app session token for native clients; web clients receive it as the illi_session cookie.",
          "type": "string"
        }
      },
      "required": [
        "did",
        "handle"
      ],
      "type": "object"
    }
  },
  "type": "procedure"
}

Lexicon Garden

@