openapi: 3.1.0
info:
  version: 2.40.11
  title: Ledger
  description: |-
    Minka Ledger enables organizations to securely publish and transfer money and balances on the Web.
    It is a unified transaction model for expressing money and balances so that companies can talk to each other using a common language with a small set of primitives.
    Money and balances published through Minka ledgers can be moved securely to any other connected ledger in real time using digital signatures.

    ## Resources
    * [Minka](https://www.minka.io/)
    * [Minka Ledger Documentation](https://docs.minka.io/ledger/)
servers:
  - url: http://localhost:3000/v2
    description: LOCAL
security:
  - {}
  - BearerAuth: []
tags:
  - name: Anchor
    x-subtitle: 'Discover payment details from simple identifiers: phone numbers, emails, QR codes, and more.'
    description: |-
      An anchor associates a user-friendly identifier like a phone number, email, or account number with payment information. At its simplest, an anchor maps a phone number to an account number. Anchors can also carry richer data including source and target details, amounts, and custom fields, providing everything a client needs to construct a payment intent from a single lookup.

      Anchors are pure data — they don't hold balances or move money. Other systems query anchors to resolve identifiers and assemble payments. Common use cases include alias directories that map phone numbers or emails to payment credentials, and QR code generation where scanning a code retrieves all the details needed to pay.

      Anchor forwarding enables federation: if a lookup finds no match locally, it can fall back to a remote service, and new anchors can be replicated across directories.
  - name: Bridge
    x-subtitle: Connect external services to process payments and react to ledger changes.
    description: |-
      A bridge registers an external service and manages connectivity to it, storing the service's base URL, authentication credentials, and communication settings.

      Bridges can participate in two flows. For payment processing, the ledger calls the bridge to coordinate balance movements through a two-phase commit protocol, ensuring both sides stay in sync. Through effects, the bridge receives notifications when ledger data changes, enabling integrations like fraud monitoring, analytics, and data synchronization.

      Each bridge declares which flows it participates in through traits, such as `debits`, `credits`, or `effects`, and can filter which operations it handles.

      To participate in payment processing, the bridge must be assigned to a wallet. To receive event notifications, an effect must be configured to route events to it.
  - name: Circle
    x-subtitle: Group signers together to simplify access control.
    description: |-
      A circle groups multiple signers together. Instead of granting permissions to each signer individually, policies can reference a circle to grant access to the entire group at once.

      For example, you can create a "compliance" circle with all compliance officers and grant the entire group read access to transaction records through a single policy.
  - name: Domain
    x-subtitle: Organize ledger records into separate namespaces.
    description: |-
      A domain defines a namespace for isolating records within a ledger. Each domain has its own scope for access rules, and records in child domains inherit access rules from their ancestors.

      Domain enforcement activates after the first domain is created. Before that, all records exist in the root domain and handles are not constrained. Once active, new records must belong to an existing domain.

      A record's domain can be assigned in two ways: implicitly from the record handle (e.g., `account:1001@bank.com` resolves to domain `bank.com`) or explicitly through the `custom.domain` field in a proof. When both are present, the proof value takes precedence. Domains cannot be changed after a record is created.

      Domains support hierarchy — a child domain references a parent via its `domain` field, and access rules cascade from parent to child. Records created before domain enforcement remain in the root domain and are not automatically migrated.
  - name: Effect
    x-subtitle: Subscribe to ledger changes and receive notifications when they happen.
    description: |-
      An effect declares a subscription to ledger changes. When a matching change occurs, the ledger delivers a notification to the configured endpoint. Each effect specifies a signal to watch and optional filters to narrow which changes trigger a notification.

      For example, an effect can subscribe to payment completions on a specific wallet, and the ledger will deliver a webhook to your service each time it happens.
  - name: Intent
    x-subtitle: Create payment requests that move balances between wallets.
    description: |-
      A payment intent is a request to move balances in the ledger. Each intent contains one or more claims, where each claim describes a specific movement such as transferring funds between wallets, issuing new balances, or collecting fees.

      The ledger processes all claims within an intent atomically — either every claim succeeds or none do. When source or target wallets have bridges assigned, those bridges participate in a two-phase commit protocol coordinated by the DTC (Distributed Transaction Coordinator). Each bridge must prepare the intent claims before the ledger commits them. When no bridges are involved, the intent is prepared and committed immediately.

      Only transfer claims trigger bridge participation. Issue and destroy claims are resolved by the ledger without contacting bridges.

      Each intent has a unique handle for idempotency and retrieval, and can carry custom data like invoice numbers or payment descriptions.
  - name: Ledger
    x-subtitle: Manage ledger instances and their global settings.
    description: A ledger is an isolated workspace for a payment network. Each ledger has its own records, policies, signers, and configuration. A server-managed signer is generated automatically to handle system-level operations.
  - name: OAuth
    x-subtitle: Exchange client credentials for an access token.
    description: The ledger supports standard OAuth 2.0 authentication using the Client Credentials Grant. Applications can exchange a client ID and secret for a signed JWT, providing a simple alternative to cryptographic key management for API access.
  - name: Policy
    x-subtitle: Define rules that control how the ledger behaves.
    description: |-
      A policy defines a set of rules that control ledger behavior. Different policy types handle different concerns, and they are the primary mechanism for configuring what is allowed, required, or automated in a ledger instance.

      Policies cover a wide range of behaviors:

      - Access policies control who can perform actions on records
      - Status policies require multiple approvals before a status change
      - Labels policies validate which labels are allowed on a record
      - Layout policies define record templates that pre-fill fields
      - Schedule policies trigger scheduled actions like report generation
      - Processing policies delegate record operations to bridges via aspects
      - Authentication policies configure OAuth2 access for signers
      - Custom policies are a way to store external rules in ledger

      New policy types are added over time as the ledger evolves.
  - name: Report
    x-subtitle: Generate reports from ledger data for auditing, compliance, and reconciliation.
    description: |-
      A report generates structured data from the ledger. Report types like reconciliation or billing are defined by schemas, and each report is configured with parameters like date ranges and filters.

      Use reports to extract ledger data for auditing, compliance, or integration with external systems.
  - name: Schema
    x-subtitle: Define validation rules and structure for ledger records.
    description: |-
      A schema defines validation rules for ledger records using JSON Schema format. Schemas enforce constraints on the `custom` and `data` fields of records at creation and update time.

      Schema enforcement activates per resource type after the first schema is created for that type. Before that, records of that type are untyped and accept any structure. Once a schema exists, all new records of that type must reference a valid schema.

      Existing untyped records are not affected until their next update — at that point they must conform to a valid schema or the update is rejected.
  - name: Signer
    x-subtitle: Manage digital identities that authorize ledger operations.
    description: |-
      A signer represents a digital identity in the ledger. Every operation requires authorization from a signer, establishing who is acting and ensuring accountability.

      The recommended approach is to generate a key pair locally and register only the public key with the ledger. This allows the server to verify requests signed by the corresponding private key, without the private key ever leaving the client. If a private key is included in the request, it must be encrypted client-side — the server stores it as-is and cannot decrypt it.

      System-managed signers such as `system` have their keys generated and encrypted by the server automatically.

      Each signer can authenticate through one or more factors like cryptographic key pairs for direct signing or client credentials for OAuth tokens. Signers can also carry metadata like security constraints or links to external identity systems.
  - name: Symbol
    x-subtitle: Define units of exchange like currencies, points, or any countable value.
    description: |-
      A symbol defines a unit of exchange such as a currency, loyalty points, or any other countable value. Every balance in the ledger is denominated in a symbol.

      All amounts and balances are stored as integers in the smallest unit of the symbol. The `factor` field defines the conversion: multiply a decimal amount by the factor to get the integer value. For example, with a factor of `100`, the amount `$15.50` is stored as `15.50 × 100 = 1550`. To display the value, divide: `1550 ÷ 100 = 15.50`.

      The owner of a symbol controls its supply by issuing new units. Once issued, balances move between wallets under the ledger's access rules.
  - name: Request Journaling
    x-subtitle: View logs of all incoming and outgoing requests to the ledger.
    description: |-
      Request journaling produces read-only entries that log API activity. Journaling is enabled by setting `request.journalingEnabled` to `true` in the [ledger configuration](/ledger/reference/api/ledger#configuration).

      Each entry captures:

      - **source** — the caller identity (e.g., `signer:admin` or `bridge:my-bridge`)
      - **target** — the ledger that received the request (e.g., `ledger:my-ledger`)
      - **record** — the resource involved (e.g., `wallet:my-wallet`)
      - **action** — the action performed (e.g., `create`, `update`, `drop`)
      - **params** — the full request (method, URL, headers, body)
      - **result** — the full response (status code, headers, body)

      All entries are signed by the ledger for authenticity and can be used for auditing, monitoring, or debugging. Journal entries are read-only — they cannot be created, updated, or deleted through the API.
  - name: Wallet
    x-subtitle: Model anything that carries a balance.
    description: |-
      A wallet holds balances of one or more symbols. Each wallet is identified by a user-defined handle such as a phone number, email, or account number, chosen to suit the use case.

      Wallets can model bank accounts, loyalty programs, subscriptions, loans, or any other concept that carries a balance.
externalDocs:
  description: Documentation
  url: https://docs.minka.io/ledger/
paths:
  /anchors:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createAnchor
      summary: Create anchor
      x-subtitle: Link a user-friendly identifier like a phone number or email to payment details.
      description: |-
        Anchors are pure data — they do not hold balances or trigger
        balance movements. They can be forwarded to other ledgers through
        bridge processing policies.

        Amounts are stored as integers scaled by the symbol's factor.

        When forwarding is configured, this request may be validated or
        proxied through a bridge before being committed locally. See
        [Anchor Forwarding](/ledger/moving-money/anchor-forwarding) for
        details.

        Broadcasts the `anchor-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.anchor
              .init()
              .data({
                handle: "tel:+1234567890",
                target: {
                  handle: "svgs:1001001234@tesla-bank.com",
                  custom: { // Target-specific metadata
                    name: "John Doe",
                  },
                },
                symbol: "usd",
                custom: { // Anchor-level metadata
                  title: "Personal phone alias",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created anchor:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor create
      requestBody:
        description: Anchor body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-anchor-record'
            examples:
              create-anchor-request:
                $ref: '#/components/examples/create-anchor-request'
      responses:
        '201':
          description: Created anchor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-record'
              examples:
                create-anchor-response:
                  $ref: '#/components/examples/create-anchor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listAnchors
      summary: List anchors
      x-subtitle: Query anchors with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to search the directory of user-friendly
        identifiers like phone numbers, emails, or account numbers.
        Filter by wallet, target, source, or symbol to find the
        payment details associated with a specific identifier.

        When forwarding is configured with the `proxy` strategy, results
        are fetched from the bridge instead of the local database. With
        `fallback`, the bridge is only queried when no local results
        match. See
        [Anchor Forwarding](/ledger/moving-money/anchor-forwarding).

        Supported filters:

        - `data.wallet` — wallet address
        - `data.target` — target address
        - `data.source` — source address
        - `data.symbol` — symbol address
        - `data.schema` — anchor schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.payload` — custom payload
        - `data.custom.paymentId` — custom payment ID
        - `data.custom.<field>` — other custom fields (may be slower on large datasets)
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.anchor.list()

            console.log(
              "Retrieved anchors list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/anchor-filter'
      responses:
        '200':
          description: Anchors page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-paged-list'
              examples:
                list-anchors-response:
                  $ref: '#/components/examples/list-anchors-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readAnchor
      summary: Get anchor
      x-subtitle: Retrieve an anchor by its handle or LUID.
      description: |-
        When forwarding is configured with the `fallback` strategy, the
        bridge is queried if the anchor is not found locally. With
        `proxy`, the bridge is always queried. See
        [Anchor Forwarding](/ledger/moving-money/anchor-forwarding).
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.anchor.read("tel:+1234567890")

            console.log(
              "Retrieved anchor details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor show <HANDLE>
      responses:
        '200':
          description: Anchor corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-record'
              examples:
                read-anchor-response:
                  $ref: '#/components/examples/read-anchor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateAnchor
      summary: Update anchor
      x-subtitle: Submit a new version of an anchor.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        When forwarding is configured, this request may be validated or
        proxied through a bridge before being committed locally. See
        [Anchor Forwarding](/ledger/moving-money/anchor-forwarding).

        Broadcasts the `anchor-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current anchor data
            const { response: anchorResponse } = await sdk.anchor.read("tel:+1234567890")

            // Relink the phone alias to a different account
            const { response: updatedResponse } = await sdk.anchor
              .from(anchorResponse.data)
              .data({
                target: {
                  handle: "svgs:2002002345@tesla-bank.com",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated anchor:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor update [options] <HANDLE>
      requestBody:
        description: Anchor body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-anchor-record'
            examples:
              update-anchor-request:
                $ref: '#/components/examples/update-anchor-request'
      responses:
        '200':
          description: Updated Anchor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-record'
              examples:
                update-anchor-response:
                  $ref: '#/components/examples/update-anchor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropAnchor
      summary: Delete anchor
      x-subtitle: Permanently remove an anchor from the ledger.
      description: |-
        Permanently removes the anchor record. If anchor forwarding is
        configured, the deletion may be validated or proxied through the
        assigned bridge before being committed.

        The [change history](/ledger/reference/api/anchor/list-anchor-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/anchor/drop-anchor-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `anchor-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.anchor
              .with("tel:+1234567890")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped anchor:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor drop <HANDLE>
      requestBody:
        description: Anchor drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-anchor-request:
                $ref: '#/components/examples/drop-anchor-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-anchors-response:
                  $ref: '#/components/examples/drop-anchor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signAnchor
      summary: Add anchor proof
      x-subtitle: Submit a signed proof to an anchor record.
      description: |-
        Appends a signed proof to the anchor record. The proof must be
        signed against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        When forwarding is configured, this request may be validated or
        proxied through a bridge. See
        [Anchor Forwarding](/ledger/moving-money/anchor-forwarding).

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `anchor-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current anchor data
            const { response: anchorResponse } = await sdk.anchor.read("tel:+1234567890")

            const { response: signedResponse } = await sdk.anchor
              .from(anchorResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed anchor:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-anchor-request:
                $ref: '#/components/examples/sign-anchor-request'
      responses:
        '200':
          description: Anchor corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-record'
              examples:
                sign-anchor-response:
                  $ref: '#/components/examples/sign-anchor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: dropAnchorPost
      summary: Delete anchor
      x-subtitle: Permanently remove an anchor from the ledger.
      description: |-
        POST alternative to `DELETE /anchors/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.anchor
              .with("tel:+1234567890")
              .drop()
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    reason: "Account closed by customer request",
                  },
                },
              ])
              .send()

            console.log(
              "Dropped anchor:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Anchor drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-anchor-post-request:
                $ref: '#/components/examples/drop-anchor-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-anchor-post-response:
                  $ref: '#/components/examples/drop-anchor-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkAnchorAccess
      summary: Check anchor access
      x-subtitle: Evaluate what actions a signer can perform on this anchor.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.anchor
              .with("tel:+1234567890")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Anchor access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-anchor-access-request:
                $ref: '#/components/examples/check-anchor-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-anchor-access-response:
                  $ref: '#/components/examples/check-anchor-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listAnchorChanges
      summary: List anchor changes
      x-subtitle: Retrieve the change history of an anchor by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.anchor
              .with("tel:+1234567890")
              .change
              .list()

            console.log(
              "Retrieved anchor changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor changes list [options] <HANDLE>
      responses:
        '200':
          description: anchor changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-change-paged-list'
              examples:
                list-anchor-changes-response:
                  $ref: '#/components/examples/list-anchor-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /anchors/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readAnchorChange
      summary: Get anchor change
      x-subtitle: Retrieve a change record for an anchor by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Anchor
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.anchor
              .with("tel:+1234567890")
              .change
              .read(1)

            console.log(
              "Retrieved anchor change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka anchor changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: anchor change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-change-record'
              examples:
                read-anchor-change-response:
                  $ref: '#/components/examples/read-anchor-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createBridge
      summary: Create bridge
      x-subtitle: Register a remote service as a bridge that can receive ledger events.
      description: |-
        A bridge declares a remote service and the capabilities it supports
        through traits: `debits`, `credits`, `statuses`, `anchors`,
        `domains`, and `effects`. Traits can include filters to limit
        which requests the bridge receives. See
        [Trait Filters](/ledger/reference/api/bridge#trait-filters) for
        available filter fields per trait.

        To participate in payment processing, the bridge must be assigned
        to a wallet. To receive event notifications, an effect must be
        configured to route events to it.

        Security rules define how outbound requests are authenticated —
        either OAuth 2.0 client credentials or custom headers.

        Broadcasts the `bridge-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .init()
              .data({
                handle: "tesla-bank-bridge",
                schema: "rest",
                config: {
                  server: "https://tesla-bank.com/api/v2"
                },
                secure: [],
                custom: {
                  description: "Bridge to Tesla Bank API"
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created bridge:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge create
      requestBody:
        description: Bridge body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-bridge-record'
            examples:
              create-bridge-request:
                $ref: '#/components/examples/create-bridge-request'
      responses:
        '201':
          description: Created bridge
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-record'
              examples:
                create-bridge-response:
                  $ref: '#/components/examples/create-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listBridges
      summary: List bridges
      x-subtitle: Query bridges with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review integration points with external
        services and network participants. Audit trait configurations,
        verify security settings, or check bridge statuses.

        Supported filters:

        - `data.schema` — bridge schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.bridge.list()

            console.log(
              "Retrieved bridges list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Bridges page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-paged-list'
              examples:
                list-bridges-response:
                  $ref: '#/components/examples/list-bridges-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readBridge
      summary: Get bridge
      x-subtitle: Retrieve a bridge by its handle or LUID.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.bridge.read("tesla-bank-bridge")

            console.log(
              "Retrieved bridge details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge show <HANDLE>
      responses:
        '200':
          description: Bridge corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-record'
              examples:
                read-bridge-response:
                  $ref: '#/components/examples/read-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateBridge
      summary: Update bridge
      x-subtitle: Submit a new version of a bridge.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `bridge-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current bridge data
            const { response: bridgeResponse } = await sdk.bridge.read("tesla-bank-bridge")

            const { response: updatedResponse } = await sdk.bridge
              .from(bridgeResponse.data)
              .data({
                config: {
                  server: "https://tesla-bank.com/api/v3",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated bridge:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge update [options] <HANDLE>
      requestBody:
        description: Bridge body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-bridge-record'
            examples:
              update-bridge-request:
                $ref: '#/components/examples/update-bridge-request'
      responses:
        '200':
          description: Updated bridge
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-record'
              examples:
                update-bridge-response:
                  $ref: '#/components/examples/update-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropBridge
      summary: Delete bridge
      x-subtitle: Permanently remove a bridge from the ledger.
      description: |-
        The bridge cannot be deleted while it is referenced by wallets,
        effects, forwarding configurations, or unfinished intents.
        Remove all dependencies before deleting the bridge.

        The [change history](/ledger/reference/api/bridge/list-bridge-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/bridge/drop-bridge-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `bridge-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped bridge:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge drop <HANDLE>
      requestBody:
        description: Bridge drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-bridge-request:
                $ref: '#/components/examples/drop-bridge-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-bridge-response:
                  $ref: '#/components/examples/drop-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signBridge
      summary: Add bridge proof
      x-subtitle: Submit a signed proof to a bridge record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `bridge-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current bridge data
            const { response: bridgeResponse } = await sdk.bridge.read("tesla-bank-bridge")

            const { response: signedResponse } = await sdk.bridge
              .from(bridgeResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed bridge:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-bridge-response:
                $ref: '#/components/examples/sign-bridge-response'
      responses:
        '200':
          description: Bridge corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-record'
              examples:
                sign-bridge-response:
                  $ref: '#/components/examples/sign-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/activate:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: activateBridge
      deprecated: true
      summary: Activate bridge
      x-subtitle: Retry failed or pending event deliveries for a bridge.
      description: |-
        **Kept for backward compatibility.** Use `POST /bridges/{id}/events/retry` instead,
        which is the preferred endpoint going forward.

        Retries bridge event deliveries that have failed or are still scheduled but not delivered.

        For each affected event to be delivered, any existing scheduled jobs are cancelled and a new delivery is queued
        with the retry backoff reset to its initial value. Use the `maxAge` parameter to limit
        retries to events whose last delivery attempt was created within the past N minutes
        (default: 60, max: 48 hours enforced server-side). Set `maxAge` to 0 to retry all
        events for the bridge regardless of age.

        **Required access action:** `activate`
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .activate({
                maxAge: 60, // Maximum age in minutes of failed events to retry
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Activated bridge:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge activate <HANDLE>
      requestBody:
        description: Body of options to use when activating a bridge
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activate-bridge-record'
            examples:
              activate-bridge-request:
                $ref: '#/components/examples/activate-bridge-request'
      responses:
        '202':
          description: Bridge activation request accepted
          content:
            text/plain:
              examples:
                activate-bridge-response:
                  $ref: '#/components/examples/activate-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/events/retry:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: retryBridgeEvents
      summary: Retry bridge events
      x-subtitle: Retry failed or pending event deliveries for a bridge.
      description: |-
        Retries bridge event deliveries that have failed or are still scheduled but not delivered.

        For each affected event to be delivered, any existing scheduled jobs are cancelled and a new delivery is queued
        with the retry backoff reset to its initial value. Use the `maxAge` parameter to limit
        retries to events whose last delivery attempt was created within the past N minutes
        (default: 60, max: 48 hours enforced server-side). Set `maxAge` to 0 to retry all
        events for the bridge regardless of age.

        **Required access action:** `retry-event`
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .events.retry({
                maxAge: 60, // Maximum age in minutes of failed events to retry
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Bridge event retry initiated:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge events retry <HANDLE>
      requestBody:
        description: Body of options to use when retrying bridge events
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activate-bridge-record'
            examples:
              retry-bridge-events-request:
                $ref: '#/components/examples/activate-bridge-request'
      responses:
        '202':
          description: Bridge event retry request accepted
          content:
            text/plain:
              examples:
                retry-bridge-events-response:
                  $ref: '#/components/examples/activate-bridge-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: dropBridgePost
      summary: Delete bridge
      x-subtitle: Permanently remove a bridge from the ledger.
      description: |-
        POST alternative to `DELETE /bridges/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .drop()
              .hash()
              .sign([{
                keyPair,
                custom: {
                  reason: "Bridge is no longer needed"
                }
              }])
              .send()

            console.log(
              "Dropped bridge:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Bridge drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-bridge-post-request:
                $ref: '#/components/examples/drop-bridge-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-bridge-post-response:
                  $ref: '#/components/examples/drop-bridge-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkBridgeAccess
      summary: Check bridge access
      x-subtitle: Evaluate what actions a signer can perform on this bridge.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Bridge access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-bridge-access-request:
                $ref: '#/components/examples/check-bridge-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-bridge-access-response:
                  $ref: '#/components/examples/check-bridge-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listBridgeChanges
      summary: List bridge changes
      x-subtitle: Retrieve the change history of a bridge by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .change
              .list()

            console.log(
              "Retrieved bridge changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge changes list [options] <HANDLE>
      responses:
        '200':
          description: Bridge changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-change-paged-list'
              examples:
                list-bridge-changes-response:
                  $ref: '#/components/examples/list-bridge-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /bridges/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readBridgeChange
      summary: Get bridge change
      x-subtitle: Retrieve a change record for a bridge by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Bridge
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.bridge
              .with("tesla-bank-bridge")
              .change
              .read(1)

            console.log(
              "Retrieved bridge change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka bridge changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: bridge change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bridge-change-record'
              examples:
                read-bridge-change-response:
                  $ref: '#/components/examples/read-bridge-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createCircle
      summary: Create circle
      x-subtitle: Define a new group of signers that can be referenced in access policies.
      description: |-
        After creation, add signers to the circle using the circle signer
        endpoints. Policies can then reference the circle to grant
        permissions to all its members at once.

        Broadcasts the `circle-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.circle
              .init()
              .data({
                handle: "admin",
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created circle:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle create
      requestBody:
        description: Circle body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-circle-record'
            examples:
              create-circle-request:
                $ref: '#/components/examples/create-circle-request'
      responses:
        '201':
          description: Created circle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-record'
              examples:
                create-circle-response:
                  $ref: '#/components/examples/create-circle-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listCircles
      summary: List circles
      description: |-
        Use this endpoint to review security groups in the system,
        audit group configurations, or find circles referenced in
        access policies.

        Supported filters:

        - `data.schema` — circle schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      x-subtitle: Query circles with filtering, sorting, and pagination.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.circle.list()

            console.log(
              "Retrieved circles list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Circles page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-paged-list'
              examples:
                list-circles-response:
                  $ref: '#/components/examples/list-circles-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readCircle
      summary: Get circle
      x-subtitle: Retrieve a circle by its handle or LUID.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.circle.read("admin")

            console.log(
              "Retrieved circle details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle show <HANDLE>
      responses:
        '200':
          description: Circle corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-record'
              examples:
                read-circle-response:
                  $ref: '#/components/examples/read-circle-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateCircle
      summary: Update circle
      x-subtitle: Submit a new version of a circle.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `circle-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current circle data
            const { response: circleResponse } = await sdk.circle.read("admin")

            const { response: updatedResponse } = await sdk.circle
              .from(circleResponse.data)
              .data({
                custom: {
                  description: "Administrative access circle",
                }
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated circle:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle update [options] <HANDLE>
      requestBody:
        description: Circle body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-circle-record'
            examples:
              update-circle-request:
                $ref: '#/components/examples/update-circle-request'
      responses:
        '200':
          description: Updated circle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-record'
              examples:
                update-circle-response:
                  $ref: '#/components/examples/update-circle-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signCircle
      summary: Add circle proof
      x-subtitle: Submit a signed proof to a circle record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `circle-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current circle data
            const { response: circleResponse } = await sdk.circle.read("admin")

            const { response: signedResponse } = await sdk.circle
              .from(circleResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed circle:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-circle-request:
                $ref: '#/components/examples/sign-circle-request'
      responses:
        '200':
          description: Circle corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-record'
              examples:
                sign-circle-response:
                  $ref: '#/components/examples/sign-circle-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/signers:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: assignCircleSigners
      summary: Add circle signer
      x-subtitle: Assign a signer to a circle so they inherit the group's access permissions.
      description: |-
        The signer immediately inherits all access permissions granted to
        the circle through policies.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminSigners = sdk.circle.with("admin").signer

            const { response } = await adminSigners
              .init()
              .data({
                circle: "admin",
                signer: "jane@tesla-bank.com",
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Assigned signer to circle:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle assign <HANDLE> [signer]
      requestBody:
        description: Circle signer body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-circle-signer-record'
            examples:
              assign-circle-signers-request:
                $ref: '#/components/examples/assign-circle-signers-request'
      responses:
        '200':
          description: Assigned circle signer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-signer-record'
              examples:
                assign-circle-signers-response:
                  $ref: '#/components/examples/assign-circle-signers-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listCircleSigners
      summary: List circle signers
      x-subtitle: Retrieve all signers assigned to a circle.
      description: |-
        Use this endpoint to review which signers are members of a
        circle and inherit its group-based access permissions.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminSigners = sdk.circle.with("admin").signer

            const { response } = await adminSigners.list()

            console.log(
              "Retrieved circle signers:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle signers [options] <HANDLE>
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Circle signers page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-signer-paged-list'
              examples:
                list-circle-signers-response:
                  $ref: '#/components/examples/list-circle-signers-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/signers/{link}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/link'
    get:
      operationId: readCircleSignersLink
      summary: Get circle signer
      x-subtitle: Retrieve a circle signer by its handle or LUID.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminSigners = sdk.circle.with("admin").signer

            const { response } = await adminSigners.read("jane@tesla-bank.com")

            console.log(
              "Retrieved circle-signer link details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      responses:
        '200':
          description: Circle signer link
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-signer-record'
              examples:
                read-circle-signers-link-response:
                  $ref: '#/components/examples/read-circle-signers-link-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropCircleSignersLink
      summary: Remove circle signer
      x-subtitle: Remove a signer from a circle, revoking their group-based access.
      description: |-
        The signer immediately loses all access permissions granted
        through this circle.

        A [POST alternative](/ledger/reference/api/circle/drop-circle-signers-link-post)
        is available for clients that cannot send request bodies with
        DELETE requests.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminSigners = sdk.circle.with("admin").signer

            const { response } = await adminSigners
              .with("jane@tesla-bank.com")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped circle-signer link:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle unlink <HANDLE> [signer]
      requestBody:
        description: Circle signer drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-circle-signers-link-request:
                $ref: '#/components/examples/drop-circle-signers-link-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-circle-signers-link-response:
                  $ref: '#/components/examples/drop-circle-signers-link-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/signers/{link}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/link'
    post:
      operationId: dropCircleSignersLinkPost
      summary: Remove circle signer
      description: |-
        POST alternative to `DELETE /circles/{id}/signers/{link}` for
        clients that cannot send request bodies with DELETE requests.
        Behavior is identical.
      x-subtitle: Remove a signer from a circle, revoking their group-based access.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminSigners = sdk.circle.with("admin").signer

            const { response } = await adminSigners
              .with("jane@tesla-bank.com")
              .drop()
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    reason: "User no longer requires administrative access",
                  },
                },
              ])
              .send()

            console.log(
              "Dropped circle-signer link:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Circle signer drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-circle-signers-link-post-request:
                $ref: '#/components/examples/drop-circle-signers-link-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-circle-signers-link-post-response:
                  $ref: '#/components/examples/drop-circle-signers-link-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkCircleAccess
      summary: Check circle access
      x-subtitle: Evaluate what actions a signer can perform on this circle.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.circle
              .with("admin")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Circle access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-circle-access-request:
                $ref: '#/components/examples/check-circle-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-circle-access-response:
                  $ref: '#/components/examples/check-circle-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listCircleChanges
      summary: List circle changes
      x-subtitle: Retrieve the change history of a circle by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.circle
              .with("admin")
              .change
              .list()

            console.log(
              "Retrieved circle changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle changes list [options] <HANDLE>
      responses:
        '200':
          description: Circle changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-change-paged-list'
              examples:
                list-circle-changes-response:
                  $ref: '#/components/examples/list-circle-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /circles/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readCircleChange
      summary: Get circle change
      x-subtitle: Retrieve a change record for a circle by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Circle
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.circle
              .with("admin")
              .change
              .read(1)

            console.log(
              "Retrieved circle change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka circle changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: Circle change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/circle-change-record'
              examples:
                read-circle-change-response:
                  $ref: '#/components/examples/read-circle-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createDomain
      summary: Create domain
      x-subtitle: Register a new namespace for data separation in the ledger.
      description: |-
        Domain enforcement activates after the first domain is created on
        a ledger. Once active, only existing domain handles are accepted
        when creating new records. This transition is permanent.

        To create a subdomain, set the `domain` field to the parent
        domain's handle. Access rules defined on parent domains are
        inherited by all descendants.

        Broadcasts the `domain-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.domain
              .init()
              .data({
                handle: "tesla-bank.com",
                custom: {
                  bankName: "Tesla Bank",
                  bankBic: "TSLAUS33"
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created domain:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain create
      requestBody:
        description: Domain body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-domain-record'
            examples:
              create-domain-request:
                $ref: '#/components/examples/create-domain-request'
      responses:
        '201':
          description: Created domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-record'
              examples:
                create-domain-response:
                  $ref: '#/components/examples/create-domain-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listDomains
      summary: List domains
      x-subtitle: Query domains with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review how organizations and network
        participants are structured, audit the namespace hierarchy, or
        find domains by parent.

        Supported filters:

        - `data.schema` — domain schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — parent domain
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.domain.list()

            console.log(
              "Retrieved domains list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Domains page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-paged-list'
              examples:
                list-domains-response:
                  $ref: '#/components/examples/list-domains-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-handle-identifier'
    get:
      operationId: readDomain
      summary: Get domain
      x-subtitle: Retrieve a domain by its handle or LUID.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.domain.read("tesla-bank.com")

            console.log(
              "Retrieved domain details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain show <HANDLE>
      responses:
        '200':
          description: Domain corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-record'
              examples:
                read-domain-response:
                  $ref: '#/components/examples/read-domain-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateDomain
      summary: Update domain
      x-subtitle: Submit a new version of a domain.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `domain-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current domain data
            const { response: domainResponse } = await sdk.domain.read("tesla-bank.com")

            const { response: updatedResponse } = await sdk.domain
              .from(domainResponse.data)
              .data({
                custom: {
                  bankName: "Tesla Bank International",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated domain:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain update [options] <HANDLE>
      requestBody:
        description: Domain body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-domain-record'
            examples:
              update-domain-request:
                $ref: '#/components/examples/update-domain-request'
      responses:
        '200':
          description: Updated domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-record'
              examples:
                update-domain-response:
                  $ref: '#/components/examples/update-domain-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-handle-identifier'
    post:
      operationId: signDomain
      summary: Add domain proof
      x-subtitle: Submit a signed proof to a domain record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `domain-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current domain data
            const { response: domainResponse } = await sdk.domain.read("tesla-bank.com")

            const { response: signedResponse } = await sdk.domain
              .from(domainResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed domain:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-domain-request:
                $ref: '#/components/examples/sign-domain-request'
      responses:
        '200':
          description: Domain corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-record'
              examples:
                sign-domain-response:
                  $ref: '#/components/examples/sign-domain-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkDomainAccess
      summary: Check domain access
      x-subtitle: Evaluate what actions a signer can perform on this domain.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.domain
              .with("tesla-bank.com")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Domain access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-domain-access-request:
                $ref: '#/components/examples/check-domain-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-domain-access-response:
                  $ref: '#/components/examples/check-domain-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-handle-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listDomainChanges
      summary: List domain changes
      x-subtitle: Retrieve the change history of a domain by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.domain
              .with("tesla-bank.com")
              .change
              .list()

            console.log(
              "Retrieved domain changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain changes list [options] <HANDLE>
      responses:
        '200':
          description: Domain changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-change-paged-list'
              examples:
                list-domain-changes-response:
                  $ref: '#/components/examples/list-domain-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /domains/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-handle-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readDomainChange
      summary: Get domain change
      x-subtitle: Retrieve a change record for a domain by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Domain
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.domain
              .with("tesla-bank.com")
              .change
              .read(1)

            console.log(
              "Retrieved domain change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka domain changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: Domain change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-change-record'
              examples:
                read-domain-change-response:
                  $ref: '#/components/examples/read-domain-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createEffect
      summary: Create effect
      x-subtitle: Register an event subscription that delivers notifications to an external endpoint.
      description: |-
        The effect begins delivering events immediately after creation.
        Each event matching the declared signal and optional filter is
        delivered asynchronously to the configured endpoint.

        Delivery actions include `webhook` for direct HTTP delivery and
        `bridge` to route events through a bridge's security and retry
        mechanisms. Failed deliveries are retried automatically with
        exponential backoff.

        Filters use a MongoDB-style query syntax on the event data,
        allowing granular control over which events trigger delivery.

        Broadcasts the `effect-created` signal.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { EventSignal } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .init()
              .data({
                handle: "intent-created",
                signal: EventSignal.IntentCreated,
                action: {
                  bridge: "tesla-bank-bridge",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created effect:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect create
      requestBody:
        description: Effect body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-effect-record'
            examples:
              create-effect-request:
                $ref: '#/components/examples/create-effect-request'
      responses:
        '201':
          description: Created effect
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-record'
              examples:
                create-effect-response:
                  $ref: '#/components/examples/create-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listEffects
      summary: List effects
      x-subtitle: Query effects with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review configured event subscriptions,
        identify which effects are listening for a specific signal, or
        audit event routing configuration across your ledger.

        Supported filters:

        - `data.schema` — effect schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.effect.list()

            console.log(
              "Retrieved effects list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Effects page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-paged-list'
              examples:
                list-effects-response:
                  $ref: '#/components/examples/list-effects-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readEffect
      summary: Get effect
      x-subtitle: Retrieve an effect by its handle or LUID.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.effect.read("intent-created")

            console.log(
              "Retrieved effect details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect show <HANDLE>
      responses:
        '200':
          description: Effect corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-record'
              examples:
                read-effect-response:
                  $ref: '#/components/examples/read-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateEffect
      summary: Update effect
      x-subtitle: Submit a new version of an effect.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `effect-updated` signal.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current effect data
            const { response: effectResponse } = await sdk.effect.read("intent-created")

            // Add a filter to only receive intents in USD
            const { response: updatedResponse } = await sdk.effect
              .from(effectResponse.data)
              .data({
                filter: {
                  "intent.data.claims.symbol.handle": "usd"
                }
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated effect:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect update [options] <HANDLE>
      requestBody:
        description: Effect body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-effect-record'
            examples:
              update-effect-request:
                $ref: '#/components/examples/update-effect-request'
      responses:
        '200':
          description: Updated effect
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-record'
              examples:
                update-effect-response:
                  $ref: '#/components/examples/update-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropEffect
      summary: Delete effect
      x-subtitle: Permanently remove an effect from the ledger.
      description: |-
        Stops event delivery and permanently removes the effect record.
        Events that were already delivered are not affected.

        The [change history](/ledger/reference/api/effect/list-effect-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/effect/drop-effect-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `effect-dropped` signal.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .with("intent-created")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped effect:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect drop <HANDLE>
      requestBody:
        description: Effect drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-effect-request:
                $ref: '#/components/examples/drop-effect-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-effect-response:
                  $ref: '#/components/examples/drop-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signEffect
      summary: Add effect proof
      x-subtitle: Submit a signed proof to an effect record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `effect-proofs-added` signal.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current effect data
            const { response: effectResponse } = await sdk.effect.read("intent-created")

            // Add an approval proof to the effect
            const { response: signedResponse } = await sdk.effect
              .from(effectResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "approved",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed effect:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-effect-request:
                $ref: '#/components/examples/sign-effect-request'
      responses:
        '200':
          description: Effect corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-record'
              examples:
                sign-effect-response:
                  $ref: '#/components/examples/sign-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/activate:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: activateEffect
      deprecated: true
      summary: Activate effect
      x-subtitle: Retry failed or pending event deliveries for an effect.
      description: |-
        **Kept for backward compatibility.** Use `POST /effects/{id}/events/retry` instead,
        which is the preferred endpoint going forward.

        Retries effect event deliveries that have failed or are still scheduled but not delivered.

        For each affected event to be delivered, any existing scheduled jobs are cancelled and a new delivery is queued
        with the retry backoff reset to its initial value. Use the `maxAge` parameter to limit
        retries to events whose last delivery attempt was created within the past N minutes
        (default: 60, max: 48 hours enforced server-side). Set `maxAge` to 0 to retry all
        events for the effect regardless of age.

        **Required access action:** `activate`
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .with("intent-created")
              .activate({
                maxAge: 60, // Maximum age in minutes of failed events to retry
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Activated effect:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect activate <HANDLE> [--maxAge <MINUTES>]
      requestBody:
        description: Body of options to use when activating an effect
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activate-effect-record'
            examples:
              activate-effect-request:
                $ref: '#/components/examples/activate-effect-request'
      responses:
        '202':
          description: Effect activation request accepted
          content:
            text/plain:
              examples:
                activate-effect-response:
                  $ref: '#/components/examples/activate-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/events/retry:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: retryEffectEvents
      summary: Retry effect events
      x-subtitle: Retry failed or pending event deliveries for an effect.
      description: |-
        Retries effect event deliveries that have failed or are still scheduled but not delivered.

        For each affected event to be delivered, any existing scheduled jobs are cancelled and a new delivery is queued
        with the retry backoff reset to its initial value. Use the `maxAge` parameter to limit
        retries to events whose last delivery attempt was created within the past N minutes
        (default: 60, max: 48 hours enforced server-side). Set `maxAge` to 0 to retry all
        events for the effect regardless of age.

        **Required access action:** `retry-event`
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .with("intent-created")
              .events.retry({
                maxAge: 60, // Maximum age in minutes of failed events to retry
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Effect event retry initiated:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect events retry <HANDLE>
      requestBody:
        description: Body of options to use when retrying effect events
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activate-effect-record'
            examples:
              retry-effect-events-request:
                $ref: '#/components/examples/activate-effect-request'
      responses:
        '202':
          description: Effect event retry request accepted
          content:
            text/plain:
              examples:
                retry-effect-events-response:
                  $ref: '#/components/examples/activate-effect-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: dropEffectPost
      summary: Delete effect
      x-subtitle: Permanently remove an effect from the ledger.
      description: |-
        POST alternative to `DELETE /effects/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .with("intent-created")
              .drop()
              .hash()
              .sign([{
                keyPair,
                custom: {
                  reason: "Effect is no longer needed"
                }
              }])
              .send()

            console.log(
              "Dropped effect:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Effect drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-effect-post-request:
                $ref: '#/components/examples/drop-effect-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-effect-post-response:
                  $ref: '#/components/examples/drop-effect-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkEffectAccess
      summary: Check effect access
      x-subtitle: Evaluate what actions a signer can perform on this effect.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.effect
              .with("intent-created")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Effect access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-effect-access-request:
                $ref: '#/components/examples/check-effect-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-effect-access-response:
                  $ref: '#/components/examples/check-effect-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listEffectChanges
      summary: List effect changes
      x-subtitle: Retrieve the change history of an effect by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.effect
              .with("intent-created")
              .change
              .list()

            console.log(
              "Retrieved effect changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect changes list [options] <HANDLE>
      responses:
        '200':
          description: effect changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-change-paged-list'
              examples:
                list-effect-changes-response:
                  $ref: '#/components/examples/list-effect-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /effects/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readEffectChange
      summary: Get effect change
      x-subtitle: Retrieve a change record for an effect by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Effect
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.effect
              .with("intent-created")
              .change
              .read(1)

            console.log(
              "Retrieved effect change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka effect changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: effect change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/effect-change-record'
              examples:
                read-effect-change-response:
                  $ref: '#/components/examples/read-effect-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createIntent
      summary: Create intent
      x-subtitle: Submit a payment intent to move balances between wallets.
      description: |-
        The intent starts in `pending` status and enters the DTC flow. If
        source or target wallets have bridges assigned, each bridge must
        prepare the claim before the ledger commits it. Without bridges,
        the intent transitions through the full lifecycle almost instantly
        since there is no coordination with external systems.

        Status policies can customize the lifecycle by defining quorum
        requirements for each transition or introducing additional
        statuses.

        Intents cannot be updated after creation. Use proofs to advance
        the intent through its lifecycle or to record bridge responses.

        The handle must be unique within the ledger and can be used as a
        client-side idempotency key.

        Broadcasts the `intent-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { ClaimAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.intent
              .init()
              .data({
                handle: "transfer-" + Date.now(), // Generate unique handle
                claims: [
                  {
                    action: ClaimAction.Transfer,
                    amount: 500,
                    source: {
                      handle: "svgs:1001001212@tesla-bank.com",
                      custom: {
                        name: "John Doe",
                        idType: "nidn",
                        idNumber: "123456789",
                        entityType: "individual"
                      }
                    },
                    symbol: {
                      handle: "usd"
                    },
                    target: {
                      handle: "tran:1001001234@nova-bank.com",
                      custom: {
                        name: "Jane Smith",
                        idType: "nidn",
                        idNumber: "987654321",
                        entityType: "individual"
                      }
                    }
                  }
                ],
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created intent:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent create [options]
      requestBody:
        description: Intent body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-intent-record'
            examples:
              create-intent-request:
                $ref: '#/components/examples/create-intent-request'
      responses:
        '201':
          description: Created intent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-record'
              examples:
                create-intent-response:
                  $ref: '#/components/examples/create-intent-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listIntents
      summary: List intents
      x-subtitle: Query intents with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to track payment status or investigate failed
        or stuck payments. For historical data exports and
        reconciliation, use reports instead.

        Supported filters:

        - `meta.status` — lifecycle state
        - `data.claims.action` — claim type (`transfer`, `issue`, `destroy`, `limit`)
        - `data.claims.source.handle` — source address
        - `data.claims.target.handle` — target address
        - `data.claims.symbol.handle` — symbol
        - `data.claims.amount` — claim amount (supports range operators)
        - `data.schema` — intent schema
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { IntentStatus } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.intent.list({
              "meta.status": IntentStatus.Completed
            })

            console.log(
              "Retrieved intents list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/intent-filter'
      responses:
        '200':
          description: Intents page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-paged-list'
              examples:
                list-intents-response:
                  $ref: '#/components/examples/list-intents-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readIntent
      summary: Get intent
      x-subtitle: Retrieve an intent by its handle or LUID.
      description: |-
        The response includes the current DTC status and all proofs
        collected so far, which can be used to track processing
        progress.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.intent.read("transfer-1712345678901")

            console.log(
              "Retrieved intent details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent show <HANDLE>
      responses:
        '200':
          description: Intent corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-record'
              examples:
                read-intent-response:
                  $ref: '#/components/examples/read-intent-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signIntent
      summary: Add intent proof
      x-subtitle: Submit a signed proof to an intent record.
      description: |-
        Appends a signed proof to the intent record. The proof must be
        signed against the record's current hash — see
        [About Proofs](/ledger/structuring-data/about-proofs) for how
        signing and validation work.

        Proofs drive the intent through its DTC lifecycle. Each proof
        carries a status that may trigger a state transition:

        `pending` → `prepared` → `committed` → `completed`

        If a bridge reports a failure, the intent transitions through
        `failed` → `aborted` → `rejected`.

        Status policies can introduce additional statuses into the
        lifecycle.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `intent-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current intent data
            const { response: intentResponse } = await sdk.intent.read("transfer-1712345678901")

            // Add a bridge proof to advance the intent through DTC
            const { response: signedResponse } = await sdk.intent
              .from(intentResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "prepared", // DTC phase: prepared, committed, or aborted
                    moment: new Date().toISOString(),
                    handle: "bridge-entry-handle", // Bridge entry that processed this intent
                    coreId: "external-txn-id-456", // External transaction reference
                  }
                }
              ])
              .send()

            console.log(
              "Signed intent:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/intent-proof'
            examples:
              sign-intent-request:
                $ref: '#/components/examples/sign-intent-request'
      responses:
        '200':
          description: Intent corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-record'
              examples:
                sign-intent-response:
                  $ref: '#/components/examples/sign-intent-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkIntentAccess
      summary: Check intent access
      x-subtitle: Evaluate what actions a signer can perform on this intent.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.intent
              .with("transfer-1712345678901")
              .access.check({
                data: {
                  action: AccessAction.Read,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Intent access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-intent-access-request:
                $ref: '#/components/examples/check-intent-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-intent-access-response:
                  $ref: '#/components/examples/check-intent-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listIntentChanges
      summary: List intent changes
      x-subtitle: Retrieve the change history of an intent by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.intent
              .with("transfer-1712345678901")
              .change
              .list()

            console.log(
              "Retrieved intent changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent changes list [options] <HANDLE>
      responses:
        '200':
          description: intent changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-change-paged-list'
              examples:
                list-intent-changes-response:
                  $ref: '#/components/examples/list-intent-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /intents/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readIntentChange
      summary: Get intent change
      x-subtitle: Retrieve a change record for an intent by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Intent
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.intent
              .with("transfer-1712345678901")
              .change
              .read(1)

            console.log(
              "Retrieved intent change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka intent changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: intent change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/intent-change-record'
              examples:
                read-intent-change-response:
                  $ref: '#/components/examples/read-intent-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledgers:
    post:
      operationId: createLedger
      summary: Create ledger
      x-subtitle: Create a new ledger instance with its own records, policies, and configuration.
      description: |-
        A server-managed signer is generated automatically to sign
        system-level operations within the ledger.

        The `config` object controls ledger behavior including intent
        expiry, access control strategy, and domain resolution. See
        [Configuration](/ledger/reference/api/ledger#configuration) for
        all available options and their defaults.

        Broadcasts the `ledger-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction, AccessRecord, LedgerConfigKey } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.ledger
              .init()
              .data({
                handle: "instant-payments",
                signer: "system",
                custom: {
                  title: "Instant Payments Ledger",
                },
                config: {
                  [LedgerConfigKey.IntentExpiryThresholdMinutes]: 60,
                },
                // Open access for demo purposes - restrict in production
                access: [
                  { action: AccessAction.Any, record: AccessRecord.Any },
                ],
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created ledger:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger create [handle]
      requestBody:
        description: Ledger record with handle, signer, configuration, and optional access rules.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-ledger-record'
            examples:
              create-ledger-request:
                $ref: '#/components/examples/create-ledger-request'
      responses:
        '201':
          description: The created ledger record with its assigned LUID, status, and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-record'
              examples:
                create-ledger-response:
                  $ref: '#/components/examples/create-ledger-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listLedgers
      summary: List ledgers
      x-subtitle: Query ledger instances with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to see all available workspaces, review their
        statuses, or find a ledger to switch to.

        Supported filters:

        - `meta.status` — record status
        - `meta.labels` — record labels
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
            })

            const { response } = await sdk.ledger.list()

            console.log(
              "Retrieved ledgers list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Paginated list of ledger records matching the query filters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-paged-list'
              examples:
                list-ledgers-response:
                  $ref: '#/components/examples/list-ledgers-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledger:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    get:
      operationId: readLedger
      summary: Get ledger
      x-subtitle: Retrieve the current ledger by its handle or LUID.
      description: |-
        Returns the ledger configuration, status, and metadata. The
        ledger is resolved from the `x-ledger` header or the URL
        subdomain. If both are provided, they must match. See
        [Configuration](/ledger/reference/api/ledger#configuration) for
        details on the config fields returned.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.ledger.read()

            console.log(
              "Retrieved ledger details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger show
      responses:
        '200':
          description: The ledger record with its current configuration, status, and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-record'
              examples:
                read-ledger-response:
                  $ref: '#/components/examples/read-ledger-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateLedger
      summary: Update ledger
      x-subtitle: Submit a new version of the ledger.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Configuration changes take effect immediately. See
        [Configuration](/ledger/reference/api/ledger#configuration) for
        all available options.

        Broadcasts the `ledger-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { LedgerConfigKey } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current ledger data
            const { response: ledgerResponse } = await sdk.ledger.read()

            const { response: updatedResponse } = await sdk.ledger
              .from(ledgerResponse.data)
              .data({
                config: {
                  [LedgerConfigKey.IntentExpiryThresholdMinutes]: 70,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated ledger:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger update [options]
      requestBody:
        description: Updated ledger record with the fields to change. Include `data.parent` with the current hash to prevent conflicts.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-ledger-record'
            examples:
              update-ledger-request:
                $ref: '#/components/examples/update-ledger-request'
      responses:
        '200':
          description: The updated ledger record with its new configuration and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-record'
              examples:
                update-ledger-response:
                  $ref: '#/components/examples/update-ledger-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    post:
      operationId: dropLedgerPost
      summary: Delete ledger
      x-subtitle: Permanently remove a ledger and all its data using a POST-compatible endpoint.
      description: |-
        **Warning:** This permanently deletes the ledger and all its
        records, including all change history. No audit trail is
        preserved. This action is irreversible and the data cannot be
        recovered.

        POST alternative to `DELETE /ledger` for clients that cannot send
        request bodies with DELETE requests. Behavior is identical.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.ledger
              .drop()
              .init()
              .hash()
              .sign([{
                keyPair,
                custom: {
                  reason: "Ledger decommissioned"
                }
              }])
              .send()

            console.log(
              "Dropped ledger:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Ledger drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-ledger-post-request:
                $ref: '#/components/examples/drop-ledger-post-request'
      responses:
        '204':
          description: Drop succeeded
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropLedger
      summary: Delete ledger
      x-subtitle: Permanently remove a ledger and all its associated data.
      description: |-
        **Warning:** This permanently deletes the ledger and all its
        records, including wallets, intents, signers, policies, balances,
        and all change history. Unlike individual record deletion, no
        audit trail is preserved. This action is irreversible and the
        data cannot be recovered.

        A [POST alternative](/ledger/reference/api/ledger/drop-ledger-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `ledger-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.ledger
              .drop()
              .init()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped ledger:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger drop [handle]
      requestBody:
        description: Ledger drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-ledger-request:
                $ref: '#/components/examples/drop-ledger-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-ledger-response:
                  $ref: '#/components/examples/drop-ledger-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledger/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: signLedger
      summary: Add ledger proof
      x-subtitle: Submit a signed proof to a ledger record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `ledger-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current ledger data
            const { response: ledgerResponse } = await sdk.ledger.read()

            const { response: signedResponse } = await sdk.ledger
              .from(ledgerResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  },
                },
              ])
              .send()

            console.log(
              "Signed ledger:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger sign
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-ledger-request:
                $ref: '#/components/examples/sign-ledger-request'
      responses:
        '200':
          description: Ledger corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-record'
              examples:
                sign-ledger-response:
                  $ref: '#/components/examples/sign-ledger-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledger/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: checkLedgerAccess
      summary: Check ledger access
      x-subtitle: Evaluate what actions a signer can perform on this ledger.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.ledger
              .with("<YOUR LEDGER HANDLE>")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Ledger access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-ledger-access-request:
                $ref: '#/components/examples/check-ledger-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-ledger-access-response:
                  $ref: '#/components/examples/check-ledger-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledger/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listLedgerChanges
      summary: List ledger changes
      x-subtitle: Retrieve the change history of a ledger by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.ledger
              .with("<YOUR LEDGER HANDLE>")
              .change
              .list()

            console.log(
              "Retrieved ledger changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger changes list [options]
      responses:
        '200':
          description: Ledger instance changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-change-paged-list'
              examples:
                list-ledger-changes-response:
                  $ref: '#/components/examples/list-ledger-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /ledger/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readLedgerChange
      summary: Get ledger change
      x-subtitle: Retrieve a change record for a ledger by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Ledger
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.ledger
              .with("<YOUR LEDGER HANDLE>")
              .change
              .read(1)

            console.log(
              "Retrieved ledger change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka ledger changes show <CHANGE>
      responses:
        '200':
          description: ledger change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ledger-change-record'
              examples:
                read-ledger-change-response:
                  $ref: '#/components/examples/read-ledger-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /oauth/token:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createAccessToken
      summary: Create access token
      x-subtitle: Exchange OAuth 2.0 client credentials for a signed JWT Bearer token.
      description: |-
        Creates an access token by exchanging OAuth 2.0 client credentials, following RFC 6749 Section 4.4 (Client Credentials Grant).

        **Authentication:** Provide credentials via HTTP Basic Auth (`Authorization: Basic base64(client_id:client_secret)`) or as `client_id` and `client_secret` form parameters in the request body.

        **Response:** Returns a signed JWT (RS256) that can be used as a Bearer token for API access. Use the `kid` header in the JWT to look up the corresponding public key from the provider signer's `key-pair` factor for verification.

        **Note:** This endpoint follows the RFC 6749 standard. It accepts `application/x-www-form-urlencoded` bodies, returns an RFC 6749 token response, and uses standard error codes (`invalid_client`, `invalid_request`, etc.).
      tags:
        - OAuth
      security:
        - {}
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/oauth-token-request'
      responses:
        '200':
          description: Access token issued successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth-token-response'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth-error-response'
              examples:
                invalid_request:
                  summary: Missing or malformed parameters
                  value:
                    error: invalid_request
                    error_description: Missing grant_type parameter
                unsupported_grant_type:
                  summary: Unsupported grant type
                  value:
                    error: unsupported_grant_type
                    error_description: |-
                      The authorization grant type is not supported.
                      Expected: client_credentials
        '401':
          description: Client authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth-error-response'
              examples:
                invalid_client:
                  summary: Invalid client credentials
                  value:
                    error: invalid_client
                    error_description: Invalid client credentials
        '500':
          description: Unexpected server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth-error-response'
              examples:
                server_error:
                  summary: Server error
                  value:
                    error: server_error
                    error_description: An unexpected error occurred processing the request
  /policies:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createPolicy
      summary: Create policy
      x-subtitle: Define rules that control access, approval requirements, or automated behaviors.
      description: |-
        Policies are enforced unless their status is set to `inactive`.
        Use proofs to activate or deactivate a policy.

        The `schema` field determines the policy type:

        - **access** — control who can perform actions on records
        - **status** — define available statuses and quorum requirements for transitions
        - **labels** — enforce label uniqueness and assignment rules
        - **schedule** — trigger actions on a time-based schedule
        - **processing** — invoke bridges for anchor operations
        - **authentication** — configure OAuth 2.0 token issuance

        Rules within policies support filters using MongoDB-style query
        syntax for fine-grained matching.

        Broadcasts the `policy-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction, AccessRecord } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // Allow all actions on any record to members of the admin circle
            const { response } = await sdk.policy
              .init()
              .data({
                handle: "admin-policy",
                schema: "access",
                record: AccessRecord.Any,
                values: [
                  {
                    action: AccessAction.Any,
                    signer: {
                      "$circle": "admin"
                    }
                  }
                ],
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created policy:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy create
      requestBody:
        description: Policy body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-policy-record'
            examples:
              create-policy-request:
                $ref: '#/components/examples/create-policy-request'
      responses:
        '201':
          description: Created policy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-record'
              examples:
                create-policy-response:
                  $ref: '#/components/examples/create-policy-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listPolicies
      summary: List policies
      x-subtitle: Query policies with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review system configuration and business
        rules, find policies targeting a specific resource type, or
        audit which rules apply in a domain.

        Supported filters:

        - `data.record` — target resource type
        - `data.schema` — policy type
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.policy.list()

            console.log(
              "Retrieved policies list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/policy-filter'
      responses:
        '200':
          description: Policies page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-paged-list'
              examples:
                list-policies-response:
                  $ref: '#/components/examples/list-policies-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readPolicy
      summary: Get policy
      x-subtitle: Retrieve a policy by its handle or LUID.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.policy.read("admin-policy")

            console.log(
              "Retrieved policy details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy show <HANDLE>
      responses:
        '200':
          description: Policy corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-record'
              examples:
                read-policy-response:
                  $ref: '#/components/examples/read-policy-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updatePolicy
      summary: Update policy
      x-subtitle: Submit a new version of a policy.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `policy-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessRecord } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current policy data
            const { response: policyResponse } = await sdk.policy.read("admin-policy")

            // Restrict admin circle to only manage policies
            const { response: updatedResponse } = await sdk.policy
              .from(policyResponse.data)
              .data({
                record: AccessRecord.Policy,
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated policy:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy update [options] <HANDLE>
      requestBody:
        description: Policy body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-policy-record'
            examples:
              update-policy-request:
                $ref: '#/components/examples/update-policy-request'
      responses:
        '200':
          description: Updated policy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-record'
              examples:
                update-policy-response:
                  $ref: '#/components/examples/update-policy-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropPolicy
      summary: Delete policy
      x-subtitle: Permanently remove a policy from the ledger.
      description: |-
        The policy cannot be deleted while other policies extend it.
        Remove or update extending policies first.

        The [change history](/ledger/reference/api/policy/list-policy-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/policy/drop-policy-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `policy-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.policy
              .drop("admin-policy")
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped policy:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy drop <HANDLE>
      requestBody:
        description: Policy drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-policy-request:
                $ref: '#/components/examples/drop-policy-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-policy-response:
                  $ref: '#/components/examples/drop-policy-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signPolicy
      summary: Add policy proof
      x-subtitle: Submit a signed proof to a policy record.
      description: |-
        Appends a signed proof to the policy record. The proof must be
        signed against the record's current hash. Use proofs to change
        status, update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `policy-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current policy data
            const { response: policyResponse } = await sdk.policy.read("admin-policy")

            const { response: signedResponse } = await sdk.policy
              .from(policyResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed policy:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-policy-request:
                $ref: '#/components/examples/sign-policy-request'
      responses:
        '200':
          description: Policy corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-record'
              examples:
                sign-policy-response:
                  $ref: '#/components/examples/sign-policy-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: dropPolicyPost
      summary: Delete policy
      x-subtitle: Permanently remove a policy from the ledger.
      description: |-
        POST alternative to `DELETE /policies/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.policy
              .drop("admin-policy")
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    reason: "Policy no longer needed",
                  },
                },
              ])
              .send()

            console.log(
              "Dropped policy:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Policy drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-policy-post-request:
                $ref: '#/components/examples/drop-policy-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-policy-post-response:
                  $ref: '#/components/examples/drop-policy-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkPolicyAccess
      summary: Check policy access
      x-subtitle: Evaluate what actions a signer can perform on this policy.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.policy
              .with("admin-policy")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Policy access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-policy-access-request:
                $ref: '#/components/examples/check-policy-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-policy-access-response:
                  $ref: '#/components/examples/check-policy-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listPolicyChanges
      summary: List policy changes
      x-subtitle: Retrieve the change history of a policy by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.policy
              .with("admin-policy")
              .change
              .list()

            console.log(
              "Retrieved policy changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy changes list [options] <HANDLE>
      responses:
        '200':
          description: Policy changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-change-paged-list'
              examples:
                list-policy-changes-response:
                  $ref: '#/components/examples/list-policy-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /policies/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readPolicyChange
      summary: Get policy change
      x-subtitle: Retrieve a change record for a policy by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Policy
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.policy
              .with("admin-policy")
              .change
              .read(1)

            console.log(
              "Retrieved policy change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka policy changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: Policy change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy-change-record'
              examples:
                read-policy-change-response:
                  $ref: '#/components/examples/read-policy-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createReport
      summary: Create report
      x-subtitle: Configure a structured data export for auditing, reconciliation, or compliance.
      description: |-
        The report starts in `created` status and transitions through
        `pending` → `completed` → `settled` as it is processed and
        finalized. Reports can be rejected at any stage before completion.

        Broadcasts the `report-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // Requires a reporting bridge: /ledger/reporting/enable-bqrb-reports
            const { response } = await sdk.report
              .init()
              .data({
                handle: "payments-2025-01-01",
                schema: "trans_details_rep",
                custom: {
                  start_timestamp: "2025-01-01T00:00:00.000Z",
                  end_timestamp: "2025-01-02T00:00:00.000Z",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created report:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report create
      requestBody:
        description: Report body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-report-record'
            examples:
              create-report-request:
                $ref: '#/components/examples/create-report-request'
      responses:
        '201':
          description: Created report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-record'
              examples:
                create-report-response:
                  $ref: '#/components/examples/create-report-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listReports
      summary: List reports
      x-subtitle: Query reports with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to track report processing status, find
        completed reports ready for export, or monitor pending report
        generation.

        Supported filters:

        - `data.schema` — report schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.report.list()

            console.log(
              "Retrieved reports list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/report-filter'
      responses:
        '200':
          description: Reports page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-paged-list'
              examples:
                list-reports-response:
                  $ref: '#/components/examples/list-reports-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readReport
      summary: Get report
      x-subtitle: Retrieve a report by its handle or LUID.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.report.read("payments-2025-01-01")

            console.log(
              "Retrieved report details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report show <HANDLE>
      responses:
        '200':
          description: Report corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-record'
              examples:
                read-report-response:
                  $ref: '#/components/examples/read-report-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropReport
      summary: Delete report
      x-subtitle: Permanently remove a report from the ledger.
      description: |-
        Permanently removes the report record. Generated report data
        stored externally is not automatically deleted.

        The [change history](/ledger/reference/api/report/list-report-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/report/drop-report-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `report-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.report
              .with("payments-2025-01-01")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped report:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report drop <HANDLE>
      requestBody:
        description: Report drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-report-request:
                $ref: '#/components/examples/drop-report-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-report-response:
                  $ref: '#/components/examples/drop-report-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signReport
      summary: Add report proof
      x-subtitle: Submit a signed proof to a report record.
      description: |-
        Appends a signed proof to the report record. The proof must be
        signed against the record's current hash — see
        [About Proofs](/ledger/structuring-data/about-proofs) for how
        signing and validation work.

        Proofs drive the report through its status lifecycle:
        `created` → `pending` → `completed` → `settled`. Reports can
        be `rejected` at any stage before completion. When transitioning
        to `completed`, the proof may include generated report assets.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `report-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { ReportStatus } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current report data
            const { response: reportResponse } = await sdk.report.read("payments-2025-01-01")

            // Advance report status: created → pending → completed → settled
            const { response: signedResponse } = await sdk.report
              .from(reportResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: ReportStatus.Pending,
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed report:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/report-proof'
            examples:
              sign-report-request:
                $ref: '#/components/examples/sign-report-request'
      responses:
        '200':
          description: Report corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-record'
              examples:
                sign-report-response:
                  $ref: '#/components/examples/sign-report-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: dropReportPost
      summary: Delete report
      x-subtitle: Permanently remove a report from the ledger.
      description: |-
        POST alternative to `DELETE /reports/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.report
              .with("payments-2025-01-01")
              .drop()
              .hash()
              .sign([{
                keyPair,
                custom: {
                  reason: "Report is no longer needed"
                }
              }])
              .send()

            console.log(
              "Dropped report:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Report drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-report-post-request:
                $ref: '#/components/examples/drop-report-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-report-post-response:
                  $ref: '#/components/examples/drop-report-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkReportAccess
      summary: Check report access
      x-subtitle: Evaluate what actions a signer can perform on this report.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.report
              .with("payments-2025-01-01")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Report access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-report-access-request:
                $ref: '#/components/examples/check-report-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-report-access-response:
                  $ref: '#/components/examples/check-report-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listReportChanges
      summary: List report changes
      x-subtitle: Retrieve the change history of a report by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.report
              .with("payments-2025-01-01")
              .change
              .list()

            console.log(
              "Retrieved report changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report changes list [options] <HANDLE>
      responses:
        '200':
          description: Report changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-change-paged-list'
              examples:
                list-report-changes-response:
                  $ref: '#/components/examples/list-report-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /reports/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readReportChange
      summary: Get report change
      x-subtitle: Retrieve a change record for a report by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Report
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.report
              .with("payments-2025-01-01")
              .change
              .read(1)

            console.log(
              "Retrieved report change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka report changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: Report change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/report-change-record'
              examples:
                read-report-change-response:
                  $ref: '#/components/examples/read-report-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createSchema
      summary: Create schema
      x-subtitle: Define a new validation schema to enforce rules on ledger records.
      description: |-
        Once the first schema for a resource type is created, all new
        records of that type must reference a valid schema. Existing
        records remain valid until updated, at which point they must
        conform to a valid schema.

        Schemas use JSON Schema format and support standard features
        including type constraints, `required` fields, `oneOf`/`anyOf`
        composition, `$ref` references, and `enum` values.

        Broadcasts the `schema-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { SchemaFormat, SchemaTargetRecord } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // Define a JSON Schema for wallet records
            const { response } = await sdk.schema
              .init()
              .data({
                handle: "bank-wallet",
                format: SchemaFormat.JsonSchema,
                record: SchemaTargetRecord.Wallet,
                schema: {
                  type: "object",
                  title: "Bank Wallet",
                  required: ["handle"],
                  properties: {
                    handle: {
                      type: "string",
                      pattern: "^[a-z0-9.-]+$" // Only lowercase alphanumeric, dots, and hyphens
                    },
                    custom: {
                      type: "object",
                      properties: {
                        name: {
                          type: "string",
                          description: "Display name for the wallet"
                        },
                        description: {
                          type: "string",
                          description: "Purpose or details of the wallet"
                        }
                      }
                    }
                  }
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created schema:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema create
      requestBody:
        description: Schema body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-schema-record'
            examples:
              create-schema-request:
                $ref: '#/components/examples/create-schema-request'
      responses:
        '201':
          description: Created schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-record'
              examples:
                create-schema-response:
                  $ref: '#/components/examples/create-schema-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listSchemas
      summary: List schemas
      x-subtitle: Query schemas with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review validation rules defined for a
        resource type, or find schemas by record type.

        Supported filters:

        - `data.record` — target resource type
        - `data.schema` — schema identifier
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { SchemaTargetRecord } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.schema.list({
              'data.record': SchemaTargetRecord.Wallet // Optional filter by record type
            })

            console.log(
              "Retrieved schemas list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/schema-filter'
      responses:
        '200':
          description: Schemas page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-paged-list'
              examples:
                list-schemas-response:
                  $ref: '#/components/examples/list-schemas-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readSchema
      summary: Get schema
      x-subtitle: Retrieve a schema by its handle or LUID.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.schema.read("bank-wallet")

            console.log(
              "Retrieved schema details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema show <HANDLE>
      responses:
        '200':
          description: Schema corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-record'
              examples:
                read-schema-response:
                  $ref: '#/components/examples/read-schema-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateSchema
      summary: Update schema
      x-subtitle: Submit a new version of a schema.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `schema-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current schema data
            const { response: schemaResponse } = await sdk.schema.read("bank-wallet")

            // Add a country field to the wallet schema
            const { response: updatedResponse } = await sdk.schema
              .from(schemaResponse.data)
              .data({
                schema: {
                  properties: {
                    custom: {
                      properties: {
                        country: {
                          type: "string",
                          description: "Country of the wallet holder"
                        }
                      }
                    }
                  }
                }
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated schema:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema update [options] <HANDLE>
      requestBody:
        description: Schema body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-schema-record'
            examples:
              update-schema-request:
                $ref: '#/components/examples/update-schema-request'
      responses:
        '200':
          description: Updated schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-record'
              examples:
                update-schema-response:
                  $ref: '#/components/examples/update-schema-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signSchema
      summary: Add schema proof
      x-subtitle: Submit a signed proof to a schema record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `schema-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current schema data
            const { response: schemaResponse } = await sdk.schema.read("bank-wallet")

            const { response: signedResponse } = await sdk.schema
              .from(schemaResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed schema:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-schema-request:
                $ref: '#/components/examples/sign-schema-request'
      responses:
        '200':
          description: Schema corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-record'
              examples:
                sign-schema-response:
                  $ref: '#/components/examples/sign-schema-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkSchemaAccess
      summary: Check schema access
      x-subtitle: Evaluate what actions a signer can perform on this schema.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.schema
              .with("bank-wallet")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Schema access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-schema-access-request:
                $ref: '#/components/examples/check-schema-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-schema-access-response:
                  $ref: '#/components/examples/check-schema-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listSchemaChanges
      summary: List schema changes
      x-subtitle: Retrieve the change history of a schema by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.schema
              .with("bank-wallet")
              .change
              .list()

            console.log(
              "Retrieved schema changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema changes list [options] <HANDLE>
      responses:
        '200':
          description: schema changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-change-paged-list'
              examples:
                list-schema-changes-response:
                  $ref: '#/components/examples/list-schema-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /schemas/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readSchemaChange
      summary: Get schema change
      x-subtitle: Retrieve a change record for a schema by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Schema
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.schema
              .with("bank-wallet")
              .change
              .read(1)

            console.log(
              "Retrieved schema change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka schema changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: schema change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schema-change-record'
              examples:
                read-schema-change-response:
                  $ref: '#/components/examples/read-schema-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createSigner
      summary: Create signer
      x-subtitle: Register a new digital identity in the ledger.
      description: |-
        Submit a public key to register the signer's identity. Optionally
        include an encrypted private key — it must be encrypted client-side
        using a password-derived key, as the server cannot decrypt it.

        Storing private keys in the ledger is not recommended. A public key
        is sufficient for the server to verify signed requests, and keeping
        private keys local eliminates the risk of server-side exposure.

        Additional authentication factors such as OAuth client credentials
        can be added after creation using the signer factor endpoints.

        Broadcasts the `signer-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Admin key pair used to onboard new signers
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.signer
              .init()
              .data({
                handle: "tesla-bank-admin",
                public: "<YOUR SIGNER PUBLIC KEY>",
                format: "ed25519-raw",
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created signer:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer create [options] [handle]
      requestBody:
        description: Signer body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-signer-record'
            examples:
              create-signer-request:
                $ref: '#/components/examples/create-signer-request'
      responses:
        '201':
          description: Created signer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-record'
              examples:
                create-signer-response:
                  $ref: '#/components/examples/create-signer-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listSigners
      summary: List signers
      x-subtitle: Query signers with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review users and services registered in
        the system. Find signers by handle (typically an email,
        username, or service name), public key, or key format.

        Supported filters:

        - `data.public` — public key
        - `data.format` — key format
        - `data.schema` — signer schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.signer.list()

            console.log(
              "Retrieved signers list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/signer-filter'
      responses:
        '200':
          description: Signers page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-paged-list'
              examples:
                list-signers-response:
                  $ref: '#/components/examples/list-signers-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readSigner
      summary: Get signer
      x-subtitle: Retrieve a signer by its handle or LUID.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.signer.read("tesla-bank-admin")

            console.log(
              "Retrieved signer details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer show [options] <HANDLE>
      responses:
        '200':
          description: Signer corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-record'
              examples:
                read-signer-response:
                  $ref: '#/components/examples/read-signer-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateSigner
      summary: Update signer
      x-subtitle: Submit a new version of a signer.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `signer-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current signer data
            const { response: signerResponse } = await sdk.signer.read("tesla-bank-admin")

            const { response: updatedResponse } = await sdk.signer
              .from(signerResponse.data)
              .data({
                custom: {
                  name: "Bob Martinez",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated signer:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer update [options] <HANDLE>
      requestBody:
        description: Signer body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-signer-record'
            examples:
              update-signer-request:
                $ref: '#/components/examples/update-signer-request'
      responses:
        '200':
          description: Updated Signer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-record'
              examples:
                update-signer-response:
                  $ref: '#/components/examples/update-signer-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signSigner
      summary: Add signer proof
      x-subtitle: Submit a signed proof to a signer record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `signer-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current signer data
            const { response: signerResponse } = await sdk.signer.read("tesla-bank-admin")

            const { response: signedResponse } = await sdk.signer
              .from(signerResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  },
                },
              ])
              .send()

            console.log(
              "Signed signer:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-signer-request:
                $ref: '#/components/examples/sign-signer-request'
      responses:
        '200':
          description: Signer corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-record'
              examples:
                sign-signer-response:
                  $ref: '#/components/examples/sign-signer-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkSignerAccess
      summary: Check signer access
      x-subtitle: Evaluate what actions a signer can perform on this signer.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.signer
              .with("tesla-bank-admin")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Signer access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-signer-access-request:
                $ref: '#/components/examples/check-signer-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-signer-access-response:
                  $ref: '#/components/examples/check-signer-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listSignerChanges
      summary: List signer changes
      x-subtitle: Retrieve the change history of a signer by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.signer
                .with("tesla-bank-admin")
                .change
                .list()

            console.log(
              "Retrieved signer changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer changes list [options] <HANDLE>
      responses:
        '200':
          description: signer changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-change-paged-list'
              examples:
                list-signer-changes-response:
                  $ref: '#/components/examples/list-signer-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readSignerChange
      summary: Get signer change
      x-subtitle: Retrieve a change record for a signer by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.signer
                .with("tesla-bank-admin")
                .change
                .read(1)

            console.log(
              "Retrieved signer change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka signer changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: signer change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-change-record'
              examples:
                read-signer-change-response:
                  $ref: '#/components/examples/read-signer-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
    post:
      operationId: createSignerFactor
      summary: Create signer factor
      x-subtitle: Add a new authentication factor to a signer.
      description: |-
        Supported factor types include `key-pair` for cryptographic key
        authentication and `oauth-client-credentials` for OAuth 2.0 token
        exchange. Each factor stores the credentials needed to verify the
        signer's identity.

        Secrets such as private keys and client secrets are encrypted at
        rest and never returned in API responses.

        Broadcasts the `signer-factor-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      parameters:
        - $ref: '#/components/parameters/include'
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors
              .init()
              .data({
                handle: "signing-key",
                signer: "admin",
                schema: "key-pair",
                format: "ed25519-raw" as const,
                public: "<YOUR FACTOR PUBLIC KEY>",
                custom: {
                  title: "Admin backup signing key",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created signer factor:",
              JSON.stringify(response.data, null, 2)
            )
      requestBody:
        description: Signer factor body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-signer-factor-record'
            examples:
              create-signer-factor-request:
                $ref: '#/components/examples/create-signer-factor-request'
      responses:
        '201':
          description: Created signer factor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-record'
              examples:
                create-signer-factor-response:
                  $ref: '#/components/examples/create-signer-factor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listSignerFactors
      summary: List signer factors
      x-subtitle: Query authentication factors for a signer with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review the authentication factors
        configured for a signer, such as key pairs or OAuth
        credentials.

        Supported filters:

        - `data.public` — public key
        - `data.schema` — factor schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors.list()

            console.log(
              "Retrieved signer factors list:",
              JSON.stringify(response.data, null, 2)
            )
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Signer factors page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-paged-list'
              examples:
                list-signer-factors-response:
                  $ref: '#/components/examples/list-signer-factors-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/include'
    get:
      operationId: readSignerFactor
      summary: Get signer factor
      x-subtitle: Retrieve a signer factor by its handle or LUID.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors.read("signing-key")

            console.log(
              "Retrieved signer factor details:",
              JSON.stringify(response.data, null, 2)
            )
      responses:
        '200':
          description: Signer factor corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-record'
              examples:
                read-signer-factor-response:
                  $ref: '#/components/examples/read-signer-factor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateSignerFactor
      summary: Update signer factor
      x-subtitle: Submit a new version of a signer factor.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `signer-factor-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminFactors = sdk.signer.with('admin').factor

            // First read the current signer factor data
            const { response: signerFactorResponse } = await adminFactors.read("signing-key")

            const { response } = await adminFactors
              .from(signerFactorResponse.data)
              .data({
                custom: {
                  title: "Admin primary signing key",
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated signer factor:",
              JSON.stringify(response.data, null, 2)
            )
      requestBody:
        description: Signer factor body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-signer-factor-record'
            examples:
              update-signer-factor-request:
                $ref: '#/components/examples/update-signer-factor-request'
      responses:
        '200':
          description: Updated Signer factor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-record'
              examples:
                update-signer-factor-response:
                  $ref: '#/components/examples/update-signer-factor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signSignerFactor
      summary: Add signer factor proof
      x-subtitle: Submit a signed proof to a signer factor record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `signer-factor-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminFactors = sdk.signer.with('admin').factor

            // First read the current signer factor data
            const { response: signerFactorResponse } = await adminFactors.read("signing-key")

            const { response } = await adminFactors
              .from(signerFactorResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed signer factor:",
              JSON.stringify(response.data, null, 2)
            )
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-signer-factor-request:
                $ref: '#/components/examples/sign-signer-factor-request'
      responses:
        '200':
          description: Signer factor corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-record'
              examples:
                sign-signer-factor-response:
                  $ref: '#/components/examples/sign-signer-factor-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/signer'
    post:
      operationId: dropSignerFactorPost
      summary: Delete signer factor
      x-subtitle: Remove an authentication factor from a signer.
      description: |-
        Permanently removes an authentication factor from the signer.
        The signer's other factors are not affected.

        The [change history](/ledger/reference/api/signer/list-signer-factor-changes)
        remains accessible after deletion — use the record's LUID to
        query it. Previous record versions can be retrieved for auditing.

        Broadcasts the `signer-factor-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Signer
      requestBody:
        description: Signer factor drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
      responses:
        '204':
          description: Drop succeeded
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkSignerFactorAccess
      summary: Check signer factor access
      x-subtitle: Evaluate what actions a signer can perform on this factor.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors
              .with("signing-key")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Signer factor access check result:",
              JSON.stringify(response.data, null, 2)
            )
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-signer-factor-access-request:
                $ref: '#/components/examples/check-signer-factor-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-signer-factor-access-response:
                  $ref: '#/components/examples/check-signer-factor-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listSignerFactorChanges
      summary: List signer factor changes
      x-subtitle: Retrieve the change history of a signer factor by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors
              .with("signing-key")
              .change.list()

            console.log(
              "Retrieved signer factor changes:",
              JSON.stringify(response.data, null, 2)
            )
      responses:
        '200':
          description: signer factor changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-change-paged-list'
              examples:
                list-signer-factor-changes-response:
                  $ref: '#/components/examples/list-signer-factor-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /signers/{signer}/factors/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/signer'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readSignerFactorChange
      summary: Get signer factor change
      x-subtitle: Retrieve a change record for a signer factor by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Signer
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const adminFactors = sdk.signer.with('admin').factor

            const { response } = await adminFactors
              .with("signing-key")
              .change.read(1)

            console.log(
              "Retrieved signer factor change details:",
              JSON.stringify(response.data, null, 2)
            )
      responses:
        '200':
          description: signer factor change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signer-factor-change-record'
              examples:
                read-signer-factor-change-response:
                  $ref: '#/components/examples/read-signer-factor-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createSymbol
      summary: Create symbol
      x-subtitle: Define a new unit of exchange in the ledger.
      description: |-
        The `factor` must be a power of 10. Common values: `100` for fiat
        currencies like USD and EUR, `1` for currencies without subdivisions
        like JPY, and `100000000` for Bitcoin (satoshis).

        Broadcasts the `symbol-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.symbol
              .init()
              .data({
                handle: "usd",
                factor: 100, // 2 decimal places
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created symbol:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol create
      requestBody:
        description: Symbol body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-symbol-record'
            examples:
              create-symbol-request:
                $ref: '#/components/examples/create-symbol-request'
      responses:
        '201':
          description: Created symbol
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-record'
              examples:
                create-symbol-response:
                  $ref: '#/components/examples/create-symbol-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listSymbols
      summary: List symbols
      x-subtitle: Query symbols with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review defined currencies and units of
        exchange, or find symbols by schema.

        Supported filters:

        - `data.schema` — symbol schema
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.symbol.list()

            console.log(
              "Retrieved symbols list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Symbols page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-paged-list'
              examples:
                list-symbols-response:
                  $ref: '#/components/examples/list-symbols-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readSymbol
      summary: Get symbol
      x-subtitle: Retrieve a symbol by its handle or LUID.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.symbol.read("usd")

            console.log(
              "Retrieved symbol details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol show <HANDLE>
      responses:
        '200':
          description: Symbol corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-record'
              examples:
                read-symbol-response:
                  $ref: '#/components/examples/read-symbol-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateSymbol
      summary: Update symbol
      x-subtitle: Submit a new version of a symbol.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `symbol-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current symbol data
            const { response: symbolResponse } = await sdk.symbol.read("usd")

            const { response: updatedResponse } = await sdk.symbol
              .from(symbolResponse.data)
              .data({
                custom: {
                  description: "United States Dollar",
                }
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated symbol:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol update [options] <HANDLE>
      requestBody:
        description: Symbol body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-symbol-record'
            examples:
              update-symbol-request:
                $ref: '#/components/examples/update-symbol-request'
      responses:
        '200':
          description: Updated Symbol
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-record'
              examples:
                update-symbol-response:
                  $ref: '#/components/examples/update-symbol-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signSymbol
      summary: Add symbol proof
      x-subtitle: Submit a signed proof to a symbol record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `symbol-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current symbol data
            const { response: symbolResponse } = await sdk.symbol.read("usd")

            const { response: signedResponse } = await sdk.symbol
              .from(symbolResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  }
                }
              ])
              .send()

            console.log(
              "Signed symbol:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-symbol-request:
                $ref: '#/components/examples/sign-symbol-request'
      responses:
        '200':
          description: Symbol corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-record'
              examples:
                sign-symbol-response:
                  $ref: '#/components/examples/sign-symbol-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkSymbolAccess
      summary: Check symbol access
      x-subtitle: Evaluate what actions a signer can perform on this symbol.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.symbol
              .with("usd")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Symbol access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-symbol-access-request:
                $ref: '#/components/examples/check-symbol-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-symbol-access-response:
                  $ref: '#/components/examples/check-symbol-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
    get:
      operationId: listSymbolChanges
      summary: List symbol changes
      x-subtitle: Retrieve the change history of a symbol by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.symbol
              .with("usd")
              .change
              .list()

            console.log(
              "Retrieved symbol changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol changes list [options] <HANDLE>
      responses:
        '200':
          description: symbol changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-change-paged-list'
              examples:
                list-symbol-changes-response:
                  $ref: '#/components/examples/list-symbol-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /symbols/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
      - $ref: '#/components/parameters/change'
    get:
      operationId: readSymbolChange
      summary: Get symbol change
      x-subtitle: Retrieve a change record for a symbol by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Symbol
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.symbol
              .with("usd")
              .change
              .read(1)

            console.log(
              "Retrieved symbol change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka symbol changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: symbol change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/symbol-change-record'
              examples:
                read-symbol-change-response:
                  $ref: '#/components/examples/read-symbol-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /system/requests:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    get:
      operationId: listRequests
      summary: List journal entries
      x-subtitle: Query request journal entries with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to debug failed operations, audit which
        signers performed specific actions, track bridge activity, or
        verify compliance by reviewing the full request and response
        history for a participant or record.

        Supported filters:

        - `data.source` — caller identity (e.g., `signer:admin` or `bridge:my-bridge`)
        - `data.target` — target ledger (e.g., `ledger:my-ledger`)
        - `data.record` — resource involved (e.g., `wallet:my-wallet`)
        - `data.action` — action performed (e.g., `create`, `update`, `drop`)
        - `meta.status` — record status
        - `meta.labels` — record labels
      tags:
        - Request Journaling
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { RequestAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.request.list({
              'data.action': RequestAction.Create
            })

            console.log(
              "Retrieved system requests list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka system request list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/request-filter'
      responses:
        '200':
          description: Requests page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/request-paged-list'
              examples:
                list-requests-response:
                  $ref: '#/components/examples/list-requests-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /system/requests/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    get:
      operationId: readRequest
      summary: Get journal entry
      x-subtitle: Retrieve a journal entry by its address or LUID.
      description: |-
        Each journal entry contains the caller identity, target ledger,
        resource involved, action performed, and the full request and
        response payloads. Entries are signed by the ledger for
        authenticity verification.
      tags:
        - Request Journaling
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.request.read("IGiw9TZXu3Mu5zUq1")

            console.log(
              "Retrieved system request details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka system request show <HANDLE>
      responses:
        '200':
          description: Request corresponding to the provided `address`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/request-record'
              examples:
                read-request-response:
                  $ref: '#/components/examples/read-request-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
    post:
      operationId: createWallet
      summary: Create wallet
      x-subtitle: Register a new wallet that can hold balances in one or more symbols.
      description: |-
        The wallet is created with an empty balance sheet. Balances are
        managed exclusively through intents — issue claims add balance,
        transfer claims move it between wallets, and destroy claims remove
        it.

        Wallets support routes that forward debits or credits to other
        wallets, enabling flexible payment topologies.

        Broadcasts the `wallet-created` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.wallet
              .init()
              .data({
                handle: "tesla-bank-wallet",
                custom: {
                  name: "Tesla Bank Wallet",
                  description: "Primary wallet for Tesla Bank"
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Created wallet:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet create
      requestBody:
        description: Wallet body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-wallet-record'
            examples:
              create-wallet-request:
                $ref: '#/components/examples/create-wallet-request'
      responses:
        '201':
          description: Created wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-record'
              examples:
                create-wallet-response:
                  $ref: '#/components/examples/create-wallet-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    get:
      operationId: listWallets
      summary: List wallets
      x-subtitle: Query wallets with filtering, sorting, and pagination.
      description: |-
        Use this endpoint to review accounts in the system. Wallets
        can model bank accounts, loyalty cards, bills, or any concept
        that carries a balance — the handle is typically an account
        number or other user-friendly identifier.

        Supported filters:

        - `data.schema` — wallet schema
        - `data.bridge` — assigned bridge
        - `meta.status` — record status
        - `meta.labels` — record labels
        - `meta.domain` — domain scope
        - `data.custom.<field>` — any custom field (may be slower on large datasets)
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.list()

            console.log(
              "Retrieved wallets list:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet list [options]
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Wallets page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-paged-list'
              examples:
                list-wallets-response:
                  $ref: '#/components/examples/list-wallets-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '408':
          $ref: '#/components/responses/error-request-timeout'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: readWallet
      summary: Get wallet
      x-subtitle: Retrieve a wallet by its handle or LUID.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.read("tesla-bank-wallet")

            console.log(
              "Retrieved wallet details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet show <HANDLE>
      responses:
        '200':
          description: Wallet corresponding to the provided `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-record'
              examples:
                read-wallet-response:
                  $ref: '#/components/examples/read-wallet-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
    put:
      operationId: updateWallet
      summary: Update wallet
      x-subtitle: Submit a new version of a wallet.
      description: |-
        The request must include the current record hash in `data.parent`
        to prevent conflicts from concurrent updates. If the parent hash
        does not match the record's current hash, the request is rejected
        with a 422 error.

        Broadcasts the `wallet-updated` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current wallet data
            const { response: walletResponse } = await sdk.wallet.read("tesla-bank-wallet")

            const { response: updatedResponse } = await sdk.wallet
              .from(walletResponse.data)
              .data({
                custom: {
                  name: "Tesla Bank Primary Wallet",
                  description: "Updated primary wallet for Tesla Bank",
                }
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Updated wallet:",
              JSON.stringify(updatedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet update [options] <HANDLE>
      requestBody:
        description: Wallet body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-wallet-record'
            examples:
              update-wallet-request:
                $ref: '#/components/examples/update-wallet-request'
      responses:
        '200':
          description: Updated Wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-record'
              examples:
                update-wallet-response:
                  $ref: '#/components/examples/update-wallet-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '409':
          $ref: '#/components/responses/error-record-duplicated'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-update'
        '500':
          $ref: '#/components/responses/error-unexpected'
    delete:
      operationId: dropWallet
      summary: Delete wallet
      x-subtitle: Permanently remove a wallet from the ledger.
      description: |-
        The wallet must have zero balances across all symbols before it
        can be deleted. If the ledger requires wallets to have anchors,
        any associated anchors must also be removed first.

        All balance records for the wallet are permanently removed along
        with the wallet itself. The
        [change history](/ledger/reference/api/wallet/list-wallet-changes)
        remains accessible after deletion — use the record's LUID to query
        it. Previous record versions can be retrieved for auditing.

        A [POST alternative](/ledger/reference/api/wallet/drop-wallet-post)
        is available for clients that cannot send request bodies with
        DELETE requests.

        Broadcasts the `wallet-dropped` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.wallet
              .with("tesla-bank-wallet")
              .drop()
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Dropped wallet:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet drop <HANDLE>
      requestBody:
        description: Wallet drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-wallet-request:
                $ref: '#/components/examples/drop-wallet-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-wallet-response:
                  $ref: '#/components/examples/drop-wallet-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/proofs:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: signWallet
      summary: Add wallet proof
      x-subtitle: Submit a signed proof to a wallet record.
      description: |-
        Appends a signed proof to the record. The proof must be signed
        against the record's current hash. Use proofs to change status,
        update labels, or record custom data — see
        [About Proofs](/ledger/structuring-data/about-proofs) for details.

        Returns the updated record with the new proof in `meta.proofs`.

        Broadcasts the `wallet-proofs-added` signal. Use
        [effects](/ledger/reference/api/effect) to subscribe.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            // First read the current wallet data
            const { response: walletResponse } = await sdk.wallet.read("tesla-bank-wallet")

            const { response: signedResponse } = await sdk.wallet
              .from(walletResponse.data)
              .hash()
              .sign([
                {
                  keyPair,
                  custom: {
                    status: "active",
                    moment: new Date().toISOString(),
                  },
                }
              ])
              .send()

            console.log(
              "Signed wallet:",
              JSON.stringify(signedResponse.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet sign <HANDLE>
      requestBody:
        description: Proof body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proof'
            examples:
              sign-wallet-request:
                $ref: '#/components/examples/sign-wallet-request'
      responses:
        '200':
          description: Wallet corresponding to the provided `handle` with new signature added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-record'
              examples:
                sign-wallet-response:
                  $ref: '#/components/examples/sign-wallet-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/balances:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: listWalletBalances
      summary: List wallet balances
      x-subtitle: Retrieve all balances held by a wallet across symbols.
      description: |-
        Returns all balances held by this wallet across symbols. A
        wallet can hold balances in multiple currencies or units of
        exchange simultaneously. Only symbols that have had balance
        activity are returned — symbols with no prior transactions
        will not appear with a zero balance.

        Balances are returned as integers in the smallest unit defined
        by the symbol's factor. Divide the balance by the factor to get
        the decimal value. For example, a balance of `1550` with a
        symbol factor of `100` represents `15.50`.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.getBalances("tesla-bank-wallet")

            console.log(
              "Retrieved wallet balances:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet balances <HANDLE>
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/base-filter'
      responses:
        '200':
          description: Wallet balances page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-balance-paged-list'
              examples:
                list-wallet-balances-response:
                  $ref: '#/components/examples/list-wallet-balances-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/limits:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: listWalletLimits
      summary: List wallet limits
      x-subtitle: Retrieve balance limits configured for a wallet.
      description: |-
        Returns limits applied to the wallet such as `minBalance`,
        `maxBalance`, `dailyAmount`, and `dailyCount`. Limits are set
        through intent claims with the `limit` action.

        Limit amounts follow the same integer format as balances —
        divide by the symbol's factor to get the decimal value.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.getLimits("tesla-bank-wallet")

            console.log(
              "Retrieved wallet limits:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet limits <HANDLE>
      responses:
        '200':
          description: Limits corresponding to the provided wallet `handle`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-limit-paged-list'
              examples:
                list-wallet-limits-response:
                  $ref: '#/components/examples/list-wallet-limits-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/anchors:
    parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
      - $ref: '#/components/parameters/wallet-anchors-filter'
    get:
      operationId: readWalletAnchors
      summary: List wallet anchors
      x-subtitle: Retrieve anchors linked to a wallet.
      description: |-
        Returns anchors linked to this wallet. If the wallet has a
        bridge assigned with the `anchors` trait, the query is forwarded
        to the bridge instead of the local database.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.getAnchors("tesla-bank-wallet")

            console.log(
              "Retrieved wallet anchors:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet anchor <HANDLE>
      responses:
        '200':
          description: Anchors corresponding to the provided wallet address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-list'
              examples:
                read-wallet-anchors-response:
                  $ref: '#/components/examples/read-wallet-anchors-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/anchors/\!lookup:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    post:
      operationId: lookupWalletAnchors
      summary: Lookup wallet anchors
      x-subtitle: Search for anchors linked to a wallet using advanced filters.
      description: |-
        Searches anchors linked to this wallet using filters provided
        in the request body. If the wallet has a bridge assigned with
        the `anchors` trait, the lookup is forwarded to the bridge.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.wallet
              .with("tel:+1234567890")
              .anchor.lookup()
              .data({
                wallet: "tesla-bank-wallet",
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Retrieved wallet anchors by lookup:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet anchor lookup <HANDLE>
      requestBody:
        description: Anchor lookup body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/anchor-lookup-payload'
            examples:
              lookup-wallet-anchors-request:
                $ref: '#/components/examples/lookup-wallet-anchors-request'
      responses:
        '200':
          description: Anchor list found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/anchor-list'
              examples:
                lookup-wallet-anchors-response:
                  $ref: '#/components/examples/lookup-wallet-anchors-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/domains:
    parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: readWalletDomains
      summary: List wallet domains
      x-subtitle: Retrieve domains associated with a wallet.
      description: |-
        Returns the domains associated with this wallet. If the wallet
        has a bridge assigned with the `domains` trait, the query is
        forwarded to the bridge instead of the local database.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet.getDomains("tesla-bank-wallet")

            console.log(
              "Retrieved wallet domains:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet domains <HANDLE>
      responses:
        '200':
          description: Domains corresponding to the provided wallet address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domain-list'
              examples:
                read-wallet-domains-response:
                  $ref: '#/components/examples/read-wallet-domains-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/drop:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/wallet-identifier'
    post:
      operationId: dropWalletPost
      summary: Delete wallet
      x-subtitle: Permanently remove a wallet from the ledger.
      description: |-
        POST alternative to `DELETE /wallets/{id}` for clients that cannot
        send request bodies with DELETE requests. Behavior is identical.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.wallet
              .with("tesla-bank-wallet")
              .drop()
              .hash()
              .sign([{
                keyPair,
                custom: {
                  reason: "Account closed by customer request"
                }
              }])
              .send()

            console.log(
              "Dropped wallet:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Wallet drop body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/drop-record'
            examples:
              drop-wallet-post-request:
                $ref: '#/components/examples/drop-wallet-post-request'
      responses:
        '204':
          description: Drop succeeded
          content:
            text/plain:
              examples:
                drop-wallet-post-response:
                  $ref: '#/components/examples/drop-wallet-post-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-delete'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/access/\!check:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/ledger-address-identifier'
    post:
      operationId: checkWalletAccess
      summary: Check wallet access
      x-subtitle: Evaluate what actions a signer can perform on this wallet.
      description: |-
        Evaluates access policies for the calling signer and returns the
        resolved permissions. The request body specifies the action and
        optionally the record type to check against.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk, types } from "@minka/ledger-sdk"
            const { AccessAction } = types

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            // Example key pair - in practice, retrieve from your storage
            const keyPair = {
              format: "ed25519-raw" as const,
              public: "<YOUR PUBLIC KEY>",
              secret: "<YOUR SECRET KEY>",
            }

            const { response } = await sdk.wallet
              .with("tesla-bank-wallet")
              .access.check({
                data: {
                  action: AccessAction.Update,
                },
              })
              .hash()
              .sign([{ keyPair }])
              .send()

            console.log(
              "Wallet access check result:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            Endpoint is not available in CLI
      requestBody:
        description: Access check payload
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/access-check-payload'
            examples:
              check-wallet-access-request:
                $ref: '#/components/examples/check-wallet-access-request'
      responses:
        '200':
          description: Access check response with resolved access rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/access-checked'
              examples:
                check-wallet-access-response:
                  $ref: '#/components/examples/check-wallet-access-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/changes:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/base-filter'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: listWalletChanges
      summary: List wallet changes
      x-subtitle: Retrieve the change history of a wallet by its handle or LUID.
      description: |-
        Each change contains a complete snapshot of the record at that
        point in time, the action performed (`create`, `update`, or
        `drop`), and a timestamp. Changes are returned newest first.

        After a record is deleted, its change history remains accessible
        but must be queried using the record's LUID instead of its handle.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet
              .with("tesla-bank-wallet")
              .change
              .list()

            console.log(
              "Retrieved wallet changes:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet changes list [options] <HANDLE>
      responses:
        '200':
          description: wallet changes page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-change-paged-list'
              examples:
                list-wallet-changes-response:
                  $ref: '#/components/examples/list-wallet-changes-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
  /wallets/{id}/changes/{change}:
    parameters:
      - $ref: '#/components/parameters/active-ledger'
      - $ref: '#/components/parameters/change'
      - $ref: '#/components/parameters/wallet-identifier'
    get:
      operationId: readWalletChange
      summary: Get wallet change
      x-subtitle: Retrieve a change record for a wallet by handle or LUID and change number.
      description: |-
        Returns a single change by its sequence number. The change includes
        a full record snapshot as it existed at that point.
      tags:
        - Wallet
      x-codeSamples:
        - lang: ts
          label: TypeScript SDK
          source: |
            import { LedgerSdk } from "@minka/ledger-sdk"

            // Initialize the SDK
            const sdk = new LedgerSdk({
              server: "<YOUR SERVER URL>",
              ledger: "<YOUR LEDGER HANDLE>",
            })

            const { response } = await sdk.wallet
              .with("tesla-bank-wallet")
              .change
              .read(1)

            console.log(
              "Retrieved wallet change details:",
              JSON.stringify(response.data, null, 2)
            )
        - lang: bash
          label: CLI
          source: |
            minka wallet changes show <HANDLE> <CHANGE>
      responses:
        '200':
          description: wallet change record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wallet-change-record'
              examples:
                read-wallet-change-response:
                  $ref: '#/components/examples/read-wallet-change-response'
        '401':
          $ref: '#/components/responses/error-auth-unauthorized'
        '403':
          $ref: '#/components/responses/error-auth-forbidden'
        '404':
          $ref: '#/components/responses/error-record-not-found'
        '422':
          $ref: '#/components/responses/error-unprocessable-entity-default'
        '500':
          $ref: '#/components/responses/error-unexpected'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: JWT bearer token. Optional unless access rules require it.
  schemas:
    handle:
      title: LedgerHandle
      type: string
      pattern: ^(?!\$([a-z]{3})\.[A-Za-z0-9_-]{17}$).*$
      description: Unique identifier for the record. Must be unique within the ledger.
    luid:
      title: Luid
      type: string
      pattern: ^\$([a-z]{3})\.[A-Za-z0-9_-]{17}$
      example: $rec.6sTUVWXY-Z6AbCdEf
      description: 'Server-generated unique identifier for the record. Format: $<type>.<random> (e.g. $wlt.7mSVWFKX-Tfx2NsNj).'
      examples:
        - $wlt.7mSVWFKX-Tfx2NsNj
        - $wlt.9kLMNPQR-Abc3DeFg
        - $snr.8aABDFKX-Tfx2NsNj
        - $snr.5pQRSTUV-Hij4KlMn
        - $int.7mSVWFKX-Tfx2SsJJ
        - $int.2nOPQRST-Uvw5XyZz
        - $sch.3bCDEFGH-Ijk6LmNo
        - $sym.4qRSTUVW-Xyz7AbCd
        - $pol.1eFGHIJK-Lmn8OpQr
        - $eff.6tUVWXYZ-Bcd9EfGh
        - $crc.0iJKLMNO-Pqr1StUv
        - $brg.5oPQRSTU-Vwx2YzAb
        - $anc.9pRSTUVW-Xyz3AbCd
        - $dom.8qRSTUVW-Xyz4AbCd
        - $rep.7rSTUVWX-Yz5AbCdE
        - $ldg.6sTUVWXY-Z6AbCdEf
        - $req.5tUVWXYZ-7AbCdEfG
    page-index:
      title: PageIndex
      type: integer
      minimum: 0
      description: Zero-based offset of the first record in this page.
      examples:
        - 0
    page-limit:
      title: PageLimit
      type: integer
      minimum: 1
      description: Maximum number of records per page.
      examples:
        - 20
    page-query:
      title: PageQuery
      type: object
      description: Pagination parameters for list requests.
      properties:
        index:
          $ref: '#/components/schemas/page-index'
        limit:
          $ref: '#/components/schemas/page-limit'
    anchor-filter-query:
      title: AnchorFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    page-total:
      title: PageTotal
      type: integer
      minimum: 0
      description: Total number of records matching the query.
      examples:
        - 52
    page:
      title: Page
      type: object
      description: Pagination metadata for the current result set.
      required:
        - index
        - limit
      properties:
        index:
          $ref: '#/components/schemas/page-index'
        limit:
          $ref: '#/components/schemas/page-limit'
        total:
          $ref: '#/components/schemas/page-total'
    hash:
      title: RecordHash
      type: string
      description: Cryptographic hash of the record data, used for integrity verification and conflict detection.
      pattern: ^[A-Fa-f0-9]{64}$
      examples:
        - 4969e3c012b66d88cec597bf337fc01eab8d651e6ed2d5c40236cc1f7d93435a
    signature-method:
      title: SignatureMethod
      type: string
      examples:
        - ed25519-v2
      enum:
        - ed25519-v2
      description: Identifier of the algorithm used for asymmetric cryptography
    public-key:
      title: PublicKey
      type: string
      pattern: ^[A-Za-z0-9+/]{43}=$
      examples:
        - WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=
      description: Raw public key value encoded in base64
    signature-result:
      title: SignatureResult
      type: string
      pattern: ^[A-Za-z0-9+/]{86}==$
      examples:
        - 0G2gvSfBx6MwPT8ShBaiYx7zwa5Kqc4Cq3S3NXV1m5/ZPozoH/SUouuhi9sQU+f0yo0eX4ygH7PzE3PAdlxsCQ==
      description: Proof value encoded in base64
    base-proof:
      type: object
      properties:
        method:
          description: Signing algorithm used to produce this proof.
          allOf:
            - $ref: '#/components/schemas/signature-method'
        public:
          description: Public key of the signer, encoded in base64.
          allOf:
            - $ref: '#/components/schemas/public-key'
        digest:
          description: Cryptographic hash of the data that was signed.
          allOf:
            - $ref: '#/components/schemas/hash'
        result:
          description: Signature output encoded in base64.
          allOf:
            - $ref: '#/components/schemas/signature-result'
    moment:
      title: Moment
      type: string
      format: date-time
      description: The moment of mutation of any information in the system
    label-query-pop:
      title: Pop
      description: Remove the first or last label from the array.
      type: object
      required:
        - $pop
      properties:
        $pop:
          description: Remove the first (-1) or last (1) label.
          type: number
          enum:
            - 1
            - -1
    label:
      title: Label
      type: string
      description: String tag for filtering and classification.
      examples:
        - preferred
    array-transformer:
      description: Options for sorting and slicing array operations.
      type: object
      properties:
        $slice:
          description: Limit the number of elements kept after the operation.
          type: integer
        $sort:
          description: Sort order after the operation (1 ascending, -1 descending).
          type: integer
          enum:
            - 1
            - -1
    label-push-aggregation:
      title: LabelPushAggregation
      description: Options for appending multiple labels with position and sort control.
      allOf:
        - $ref: '#/components/schemas/array-transformer'
        - type: object
          required:
            - $each
          properties:
            $each:
              description: Labels to append.
              type: array
              items:
                $ref: '#/components/schemas/label'
              minLength: 1
            $position:
              description: Index at which to insert the labels (0-based).
              type: integer
              minimum: 0
    label-query-push:
      title: Push
      description: Append one or more labels to the array.
      type: object
      required:
        - $push
      properties:
        $push:
          description: Label or labels to append.
          oneOf:
            - $ref: '#/components/schemas/label'
            - $ref: '#/components/schemas/label-push-aggregation'
    label-pull-aggregation:
      title: LabelPullAggregation
      description: Criteria for removing multiple labels matching a list.
      allOf:
        - $ref: '#/components/schemas/array-transformer'
        - type: object
          required:
            - $in
          properties:
            $in:
              description: Labels to remove.
              type: array
              items:
                $ref: '#/components/schemas/label'
              minLength: 1
    label-query-pull:
      title: Pull
      description: Remove labels matching a value or criteria.
      type: object
      required:
        - $pull
      properties:
        $pull:
          description: Label or criteria to match for removal.
          oneOf:
            - $ref: '#/components/schemas/label'
            - $ref: '#/components/schemas/label-pull-aggregation'
    label-query-pull-all:
      title: PullAll
      description: Remove all occurrences of the specified labels.
      type: object
      required:
        - $pullAll
      properties:
        $pullAll:
          description: Labels to remove.
          type: array
          items:
            $ref: '#/components/schemas/label'
          minLength: 1
    label-query-add-to-set:
      title: AddToSet
      description: Append labels only if they are not already present.
      type: object
      required:
        - $addToSet
      properties:
        $addToSet:
          description: Label or labels to add if not already present.
          oneOf:
            - $ref: '#/components/schemas/label'
            - $ref: '#/components/schemas/label-push-aggregation'
    label-query-aggregation:
      title: LabelQueryAggregation
      description: Label modification operation. Supports push, pull, pullAll, addToSet, and pop.
      type: object
      oneOf:
        - $ref: '#/components/schemas/label-query-pop'
        - $ref: '#/components/schemas/label-query-push'
        - $ref: '#/components/schemas/label-query-pull'
        - $ref: '#/components/schemas/label-query-pull-all'
        - $ref: '#/components/schemas/label-query-add-to-set'
    proof-custom:
      title: ProofCustom
      type: object
      description: Proof metadata including timestamp, status transition, and labels.
      properties:
        moment:
          description: Timestamp when the proof was created.
          allOf:
            - $ref: '#/components/schemas/moment'
        status:
          type:
            - string
            - 'null'
          description: Status transition requested by this proof (e.g. created, active, dropped).
        labels:
          description: Labels to set or modify on the record. Pass an array to replace, or a query operator ($push, $pull, $addToSet, $pullAll, $pop) to modify.
          oneOf:
            - $ref: '#/components/schemas/label-query-aggregation'
            - type: array
              items:
                $ref: '#/components/schemas/label'
        reason:
          type: string
          description: Human-readable reason for the operation (e.g. drop reason).
        failId:
          type: string
          description: Identifier linking this proof to a failure event.
        detail:
          type: string
          description: Additional detail about the operation outcome.
      additionalProperties:
        description: Additional properties are accepted with any valid JSON value.
    proof:
      title: Proof
      allOf:
        - type: object
          properties:
            signer:
              type: string
              description: Handle of the signer who produced this proof. Resolved by the server from the public key.
        - $ref: '#/components/schemas/base-proof'
        - type: object
          properties:
            custom:
              $ref: '#/components/schemas/proof-custom'
      description: The proof object used to verify the source of any information saved in the system
    base-meta:
      type: object
      description: Record metadata including proofs and system-managed fields.
      properties:
        proofs:
          type: array
          description: Cryptographic signatures that authorize the record operation.
          items:
            $ref: '#/components/schemas/proof'
    base-list:
      description: Base response envelope for list endpoints.
      type: object
      required:
        - hash
        - meta
      properties:
        hash:
          $ref: '#/components/schemas/hash'
        data:
          description: Array of matching records.
        meta:
          title: RecordMeta
          description: Record metadata including proofs and system-managed fields.
          allOf:
            - $ref: '#/components/schemas/base-meta'
    base-paged-list:
      allOf:
        - type: object
          required:
            - page
          properties:
            hash:
              description: Cryptographic hash of the record data, used for integrity verification and conflict detection.
            data:
              description: Array of matching records.
            page:
              $ref: '#/components/schemas/page'
            meta:
              description: Record metadata including proofs and system-managed fields.
        - $ref: '#/components/schemas/base-list'
    record-envelope:
      type: object
      description: Record identity fields. Appears first in record schemas to surface IDs before data.
      required:
        - luid
      properties:
        luid:
          $ref: '#/components/schemas/luid'
        hash:
          $ref: '#/components/schemas/hash'
    address:
      title: LedgerAddress
      type: string
      pattern: ^(?!\$([a-z]{3})\.[A-Za-z0-9_-]{17}$).*$
      description: Ledger address or handle that identifies a record.
    base-custom:
      title: CustomData
      type: object
      additionalProperties:
        description: Additional properties are accepted with any valid JSON value.
      examples:
        - any: data
      description: Free-form key-value pairs for application-specific data.
    base-reference:
      title: Reference
      type: object
      required:
        - handle
      properties:
        handle:
          $ref: '#/components/schemas/address'
        custom:
          $ref: '#/components/schemas/base-custom'
    anchor-symbol:
      title: AnchorSymbol
      description: Symbol as a handle or a reference with custom metadata.
      oneOf:
        - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-reference'
    anchor-source:
      title: AnchorSource
      description: Source account as a handle or a reference with custom metadata.
      oneOf:
        - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-reference'
    anchor-target:
      title: AnchorTarget
      description: Target account as a handle or a reference with custom metadata.
      oneOf:
        - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-reference'
    amount:
      title: Amount
      type: integer
      description: Transaction amount in the smallest unit of the symbol (e.g. cents).
      exclusiveMinimum: 0
      maximum: 9007199254740991
      examples:
        - 1000
    access-action:
      title: AccessAction
      type: string
      examples:
        - any
      enum:
        - abort
        - access
        - activate
        - retry-event
        - any
        - assign-signer
        - commit
        - create
        - destroy
        - drop
        - issue
        - limit
        - lookup
        - manage
        - query
        - read
        - remove-signer
        - spend
        - update
        - reveal
      description: Defines which action is affected by the access rule
    access-action-in-aggregation:
      title: AccessActionInAggregation
      type: object
      properties:
        $in:
          type: array
          items:
            $ref: '#/components/schemas/access-action'
          description: Defines a list of actions that must include the target access action
      description: Object representing aggregation operators for managing target action of access rules.
      additionalProperties: false
    access-action-nin-aggregation:
      title: AccessActionNinAggregation
      type: object
      properties:
        $nin:
          type: array
          items:
            $ref: '#/components/schemas/access-action'
          description: Defines a list of actions that must not include the target access action
      description: Object representing aggregation operators for managing target action of access rules.
      additionalProperties: false
    access-action-aggregation:
      title: AccessActionAggregation
      oneOf:
        - $ref: '#/components/schemas/access-action-in-aggregation'
        - $ref: '#/components/schemas/access-action-nin-aggregation'
    access-record:
      title: AccessRecord
      type: string
      examples:
        - any
      enum:
        - anchor
        - anchor-proof
        - any
        - bridge
        - bridge-proof
        - circle
        - circle-proof
        - circle-signer
        - domain
        - domain-proof
        - effect
        - effect-proof
        - intent
        - intent-proof
        - ledger
        - ledger-proof
        - policy
        - policy-proof
        - report
        - report-proof
        - request
        - schema
        - schema-proof
        - server
        - signer
        - signer-proof
        - signer-factor
        - signer-factor-proof
        - signer-factor-secret
        - symbol
        - symbol-proof
        - wallet
        - wallet-proof
      description: Defines the record affected by the access rule
    access-record-in-aggregation:
      title: AccessRecordInAggregation
      type: object
      properties:
        $in:
          type: array
          items:
            $ref: '#/components/schemas/access-record'
          description: Defines a list of records that must include the target access record
      description: Object representing aggregation operators for managing target record of access rules.
      additionalProperties: false
    access-record-nin-aggregation:
      title: AccessRecordNinAggregation
      type: object
      properties:
        $nin:
          type: array
          items:
            $ref: '#/components/schemas/access-record'
          description: Defines a list of records that must not include the target access record
      description: Object representing aggregation operators for managing target record of access rules.
      additionalProperties: false
    access-record-aggregation:
      title: AccessRecordAggregation
      oneOf:
        - $ref: '#/components/schemas/access-record-in-aggregation'
        - $ref: '#/components/schemas/access-record-nin-aggregation'
    access-filter:
      title: AccessFilter
      description: Additional field-level conditions the record must match for this rule to apply.
      type: object
      additionalProperties:
        description: Match record fields by value using dot notation (e.g. schema, data.handle).
      examples:
        - schema: bank
    access-change:
      title: AccessChange
      description: Conditions on the record change payload (e.g. restrict which schema transitions are allowed).
      type: object
      additionalProperties:
        description: Match change payload fields by value (e.g. schema to restrict allowed transitions).
      examples:
        - schema: p2p
    record-ownership:
      title: RecordOwnership
      type: string
      enum:
        - owner
    access-circle:
      title: AccessCircle
      type: string
      examples:
        - admin
      description: Defines a circle that must include the signer
    access-circle-in-aggregation:
      title: AccessCircleInAggregation
      type: object
      properties:
        $in:
          type: array
          items:
            $ref: '#/components/schemas/access-circle'
          description: Defines a list of circles that must include the signer
          minItems: 1
      additionalProperties: false
      description: Object that represents aggregation operators to handle access rules regarding the record signers
    access-circle-regex:
      title: AccessCircleRegex
      type: object
      properties:
        $regex:
          type: string
          description: Defines a regular expression which matches a circle
      additionalProperties: false
      description: Object that represents regex operator to define allowed circles in access rule
    query-for-address:
      title: QueryForAddress
      description: Match by address value. Pass a string for exact match, or an object with $eq, $ne, $in, $nin, $regex operators.
      oneOf:
        - $ref: '#/components/schemas/address'
        - type: object
          properties:
            $eq:
              description: Must equal this value.
              allOf:
                - $ref: '#/components/schemas/address'
            $ne:
              description: Must not equal this value.
              allOf:
                - $ref: '#/components/schemas/address'
            $in:
              type: array
              items:
                $ref: '#/components/schemas/address'
              description: Must match any value in this list.
              minItems: 1
            $nin:
              type: array
              items:
                $ref: '#/components/schemas/address'
              description: Must not match any value in this list.
              minItems: 1
            $regex:
              type: string
              description: Must match this regular expression pattern.
          additionalProperties: false
    key-format:
      title: KeyFormat
      type: string
      examples:
        - ed25519-raw
      enum:
        - ed25519-raw
      description: Identifier of the algorithm used to generate the key pair
    query-for-key-format:
      title: QueryForKeyFormat
      description: Match by key format. Pass a string for exact match, or an object with query operators.
      oneOf:
        - $ref: '#/components/schemas/key-format'
        - type: object
          properties:
            $eq:
              description: Must equal this value.
              allOf:
                - $ref: '#/components/schemas/key-format'
            $ne:
              description: Must not equal this value.
              allOf:
                - $ref: '#/components/schemas/key-format'
            $in:
              type: array
              items:
                $ref: '#/components/schemas/key-format'
              description: Must match any value in this list.
              minItems: 1
            $nin:
              type: array
              items:
                $ref: '#/components/schemas/key-format'
              description: Must not match any value in this list.
              minItems: 1
            $regex:
              type: string
              description: Must match this regular expression pattern.
          additionalProperties: false
    query-for-public-key:
      title: QueryForPublicKey
      description: Match by public key. Pass a string for exact match, or an object with query operators.
      oneOf:
        - $ref: '#/components/schemas/public-key'
        - type: object
          properties:
            $eq:
              description: Must equal this value.
              allOf:
                - $ref: '#/components/schemas/public-key'
            $ne:
              description: Must not equal this value.
              allOf:
                - $ref: '#/components/schemas/public-key'
            $in:
              type: array
              items:
                $ref: '#/components/schemas/public-key'
              description: Must match any value in this list.
              minItems: 1
            $nin:
              type: array
              items:
                $ref: '#/components/schemas/public-key'
              description: Must not match any value in this list.
              minItems: 1
            $regex:
              type: string
              description: Must match this regular expression pattern.
          additionalProperties: false
    query-for-object:
      title: QueryForObject
      description: Match by object fields. Supports nested dot notation and query operators.
      oneOf:
        - type: object
          additionalProperties:
            description: Match custom metadata fields using values or query operators ($eq, $in, $gte, etc.).
    access-signer:
      title: AccessSigner
      type: object
      examples:
        - format: ed25519-raw
          public:
            $eq: WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=
          custom:
            type: person
            age:
              $gte: 21
          handle:
            $in:
              - admin
      properties:
        $record:
          description: Match the signer who owns this record. Value must be "owner".
          allOf:
            - $ref: '#/components/schemas/record-ownership'
        $ledger:
          description: Match the ledger's own signer. Value must be "owner".
          allOf:
            - $ref: '#/components/schemas/record-ownership'
        $circle:
          description: Match signers belonging to a circle by handle, list, or regex.
          oneOf:
            - $ref: '#/components/schemas/access-circle'
            - $ref: '#/components/schemas/access-circle-in-aggregation'
            - $ref: '#/components/schemas/access-circle-regex'
        handle:
          description: Match by signer handle. Supports $eq, $in, $nin, $regex operators.
          allOf:
            - $ref: '#/components/schemas/query-for-address'
        format:
          description: Match by key format (e.g. ed25519-raw).
          allOf:
            - $ref: '#/components/schemas/query-for-key-format'
        public:
          description: Match by public key. Supports $eq, $in, $nin, $regex operators.
          allOf:
            - $ref: '#/components/schemas/query-for-public-key'
        schema:
          description: Match by signer schema. Supports $eq, $in, $nin, $regex operators.
          allOf:
            - $ref: '#/components/schemas/query-for-address'
        custom:
          description: Match by custom signer metadata fields.
          allOf:
            - $ref: '#/components/schemas/query-for-object'
      additionalProperties: false
      description: Criteria for matching the signer of a request. Supports matching by handle, public key, circle membership, or record ownership.
    access-bearer:
      title: AccessBearer
      type: object
      properties:
        iss:
          type: string
          examples:
            - company.org
          description: Defines access rule regarding the issuer of bearer token
        sub:
          type: string
          examples:
            - admin
          description: Defines access rule regarding the subject of bearer token. It could be a signer handle or a public key used to verify token signature.
        aud:
          type: string
          examples:
            - ledger
          description: Defines access rule regarding the audience of bearer token
        hsh:
          type: boolean
          examples:
            - true
          description: Defines if the request hash is mandatory
        $signer:
          $ref: '#/components/schemas/access-signer'
      additionalProperties:
        description: Match any JWT claim by name. Use values for exact match or query operators ($eq, $in, $regex).
      description: 'Arbitrary JWT claim names can be used directly as top-level keys (e.g. scopes: { $in: [manage-all-signers] }). Supports query operators.'
    access-wallet-invoke:
      title: AccessWalletInvoke
      type: string
      description: Built-in wallet authorization check.
      enum:
        - wallet.canSpendAllChangedRouteTargets
      x-enum-descriptions:
        wallet.canSpendAllChangedRouteTargets: Signer can spend all wallets targeted by changed routes.
    access-intent-invoke:
      title: AccessIntentInvoke
      type: string
      description: Built-in intent authorization check.
      enum:
        - intent.canReadAnyClaimWallet
        - intent.canReadAnyClaimWalletInThread
        - intent.canSpendEveryClaimWallet
        - intent.canSpendAnyClaimWallet
        - intent.canSpendAnyClaimWalletInThread
      x-enum-descriptions:
        intent.canReadAnyClaimWallet: Signer can read at least one wallet in the intent's claims.
        intent.canReadAnyClaimWalletInThread: Signer can read at least one wallet across the entire thread.
        intent.canSpendEveryClaimWallet: Signer can spend all wallets in the intent's claims.
        intent.canSpendAnyClaimWallet: Signer can spend at least one wallet in the intent's claims.
        intent.canSpendAnyClaimWalletInThread: Signer can spend at least one wallet across the entire thread.
    access-invoke:
      title: AccessInvoke
      description: Invokes a built-in check that evaluates complex conditions at runtime, such as whether the signer has authority over wallets involved in the operation.
      oneOf:
        - $ref: '#/components/schemas/access-wallet-invoke'
        - $ref: '#/components/schemas/access-intent-invoke'
    access-rule:
      title: AccessRule
      type: object
      description: A rule that grants or restricts access to a record operation.
      required:
        - action
      properties:
        action:
          description: Operation this rule permits (e.g. create, update, sign, any).
          oneOf:
            - $ref: '#/components/schemas/access-action'
            - $ref: '#/components/schemas/access-action-aggregation'
        record:
          description: Record type or pattern this rule applies to.
          oneOf:
            - $ref: '#/components/schemas/access-record'
            - $ref: '#/components/schemas/access-record-aggregation'
        filter:
          description: Additional query filters applied when this rule is evaluated.
          allOf:
            - $ref: '#/components/schemas/access-filter'
        change:
          description: Constraints on which record changes this rule permits.
          allOf:
            - $ref: '#/components/schemas/access-change'
        signer:
          description: Who this rule applies to. Matches the request signer by public key, handle, circle membership, or record ownership. Omit to match any signer.
          allOf:
            - $ref: '#/components/schemas/access-signer'
        bearer:
          description: JWT bearer token requirements for this rule.
          allOf:
            - $ref: '#/components/schemas/access-bearer'
        invoke:
          description: Bridge invocation constraints for this rule.
          allOf:
            - $ref: '#/components/schemas/access-invoke'
    address-aggregation:
      title: AddressAggregation
      description: Object representing aggregation operators for managing addresses.
      type: object
      properties:
        $in:
          type: array
          items:
            $ref: '#/components/schemas/address'
          description: Defines a list of addresses
      additionalProperties: false
    access-policy:
      title: AccessPolicy
      description: Reference to an access policy by handle. The policy's rules are evaluated in addition to inline access rules.
      type: object
      required:
        - policy
      properties:
        policy:
          description: Handle of the access policy, or a list using $in.
          oneOf:
            - $ref: '#/components/schemas/address'
            - $ref: '#/components/schemas/address-aggregation'
      additionalProperties: false
    access:
      title: Access
      type: array
      description: Access control rules that govern who can perform actions on this record.
      items:
        oneOf:
          - $ref: '#/components/schemas/access-rule'
          - $ref: '#/components/schemas/access-policy'
    base-data:
      type: object
      properties:
        handle:
          $ref: '#/components/schemas/address'
        parent:
          description: Hash of the previous record version. Required for updates to detect conflicts.
          allOf:
            - $ref: '#/components/schemas/hash'
        access:
          $ref: '#/components/schemas/access'
        custom:
          $ref: '#/components/schemas/base-custom'
      required:
        - handle
    anchor-data:
      title: AnchorData
      description: Anchor mapping between external accounts and ledger wallets.
      allOf:
        - type: object
          required:
            - target
          properties:
            schema:
              description: Schema handle used to validate this anchor.
              allOf:
                - $ref: '#/components/schemas/address'
            wallet:
              description: Wallet this anchor is linked to.
              allOf:
                - $ref: '#/components/schemas/address'
            symbol:
              $ref: '#/components/schemas/anchor-symbol'
            source:
              $ref: '#/components/schemas/anchor-source'
            target:
              $ref: '#/components/schemas/anchor-target'
            amount:
              $ref: '#/components/schemas/amount'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-anchor-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/anchor-data'
    owner:
      title: Owner
      type: string
      examples:
        - WAweF9PHlboQoW0z8NqhZXFmzUTaV74NRFAd/aILprE=
      description: Indicates the public key that owns a record. Signatures with custom.status = "created" are considered when creating the record
    base-record:
      type: object
      required:
        - hash
        - meta
        - luid
      properties:
        luid:
          $ref: '#/components/schemas/luid'
        hash:
          $ref: '#/components/schemas/hash'
        data:
          description: Record payload containing the resource fields.
        meta:
          title: RecordMeta
          description: System-managed record metadata including status, proofs, and labels.
          allOf:
            - type: object
              properties:
                status:
                  type: string
                  description: Current lifecycle state of the record (e.g. created, active, dropped).
                moment:
                  $ref: '#/components/schemas/moment'
                owners:
                  type: array
                  description: Public keys that own this record, derived from creation proofs.
                  items:
                    $ref: '#/components/schemas/owner'
                labels:
                  type: array
                  description: Tags attached to the record for filtering and organization.
                  items:
                    $ref: '#/components/schemas/label'
            - $ref: '#/components/schemas/base-meta'
    anchor-record:
      title: AnchorRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-anchor-record'
        - $ref: '#/components/schemas/base-record'
    anchor-paged-list:
      title: AnchorPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/anchor-record'
    error-data:
      type: object
      description: Error details including the reason code and optional context.
      required:
        - reason
      properties:
        reason:
          type: string
          description: Error reason code
          examples:
            - auth.forbidden
        detail:
          type: string
          description: Human-readable error details
          examples:
            - Request is not authorized
        custom:
          type: object
          description: Additional error context
          examples:
            - causedBy: 'AxiosError: Request failed with status code 500'
    error:
      type: object
      required:
        - hash
        - data
        - meta
      properties:
        hash:
          $ref: '#/components/schemas/hash'
        data:
          description: Error details including the reason code and optional context.
          allOf:
            - $ref: '#/components/schemas/error-data'
        meta:
          title: RecordMeta
          description: Record metadata including proofs and system-managed fields.
          allOf:
            - $ref: '#/components/schemas/base-meta'
    auth-unauthorized-error-data:
      title: AuthUnauthorizedErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - auth.unauthorized
              description: User is not authenticated
    auth-unauthorized-error:
      title: Unauthorized
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/auth-unauthorized-error-data'
    auth-forbidden-error-data:
      title: AuthForbiddenErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - auth.forbidden
              description: User is authenticated but doesn't have permission
    auth-forbidden-error:
      title: Forbidden
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/auth-forbidden-error-data'
    api-request-timeout-error-data:
      title: ApiRequestTimeoutErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - api.request-timeout
              description: Request exceeded time limit
    api-request-timeout-error:
      title: Request Timeout
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/api-request-timeout-error-data'
    api-unexpected-error-data:
      title: ApiUnexpectedErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - api.unexpected-error
              description: Unexpected server error
    api-unexpected-error:
      title: Unexpected Error
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/api-unexpected-error-data'
    base-create-record:
      type: object
      properties:
        hash:
          $ref: '#/components/schemas/hash'
        data:
          description: Record payload containing the resource fields.
        meta:
          title: RecordMeta
          description: Record metadata including proofs and system-managed fields.
          allOf:
            - $ref: '#/components/schemas/base-meta'
    create-anchor-record:
      title: CreateAnchorRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-anchor-record'
    record-duplicated-error-data:
      title: RecordDuplicatedErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - record.duplicated
              description: Record already exists
    record-duplicated-error:
      title: Record Duplicated
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/record-duplicated-error-data'
    record-not-found-error-data:
      title: RecordNotFoundErrorData
      allOf:
        - $ref: '#/components/schemas/error-data'
        - type: object
          properties:
            reason:
              type: string
              enum:
                - record.not-found
              description: Requested record does not exist
    record-not-found-error:
      title: Not Found
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/record-not-found-error-data'
    base-update-record:
      type: object
      required:
        - luid
      properties:
        hash:
          $ref: '#/components/schemas/hash'
        meta:
          title: RecordMeta
          description: Record metadata including proofs and system-managed fields.
          allOf:
            - $ref: '#/components/schemas/base-meta'
        luid:
          $ref: '#/components/schemas/luid'
    update-anchor-record:
      title: UpdateAnchorRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-anchor-record'
        - $ref: '#/components/schemas/base-update-record'
    base-drop-record:
      description: Common fields for delete requests.
      type: object
      required:
        - luid
      properties:
        luid:
          $ref: '#/components/schemas/luid'
        hash:
          $ref: '#/components/schemas/hash'
        data:
          description: Delete payload with the current version hash to prevent conflicting updates.
        meta:
          title: RecordMeta
          description: Record metadata including proofs and system-managed fields.
          allOf:
            - $ref: '#/components/schemas/base-meta'
    drop-record:
      description: Signed request to permanently delete a record.
      allOf:
        - $ref: '#/components/schemas/base-drop-record'
        - type: object
          required:
            - data
          properties:
            data:
              title: DropData
              description: Delete payload with the current version hash to prevent conflicting updates.
              type: object
              required:
                - parent
              properties:
                parent:
                  description: Hash of the current record version. Must match the latest version or the request is rejected.
                  allOf:
                    - $ref: '#/components/schemas/hash'
              unevaluatedProperties: false
    access-check-payload:
      title: AccessCheckPayload
      description: Specifies the action and optional record type to evaluate against the caller's access policies.
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - type: object
          required:
            - data
          properties:
            data:
              title: AccessCheckData
              description: The action and record type to check access for.
              type: object
              required:
                - action
              properties:
                action:
                  description: Operation to check (e.g. create, update, sign, any).
                  oneOf:
                    - $ref: '#/components/schemas/access-action'
                    - $ref: '#/components/schemas/access-action-in-aggregation'
                record:
                  description: Record type or pattern to check access against. Omit to check ledger-level access.
                  oneOf:
                    - $ref: '#/components/schemas/access-record'
                    - $ref: '#/components/schemas/access-record-in-aggregation'
    access-rule-record:
      title: AccessRuleRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/access-rule'
    access-checked:
      title: AccessCheck
      allOf:
        - $ref: '#/components/schemas/base-list'
        - type: object
          required:
            - data
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/access-rule-record'
    base-filter-query:
      title: FilterQuery
      description: Filter by field values using dot notation (e.g. data.handle=value). Operators like $in and $regex are optional — equality is the default.
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    change-envelope:
      type: object
      description: Change history identity fields. Both luid and hash are required for change entries.
      required:
        - luid
        - hash
      properties:
        luid:
          $ref: '#/components/schemas/luid'
        hash:
          $ref: '#/components/schemas/hash'
    change-number:
      type: integer
      minimum: 1
      description: Describes the position of change in record history.
    change-action:
      type: string
      enum:
        - create
        - update
        - drop
      description: Describes the type of change made in the record.
    change-moment:
      type: string
      format: date-time
      description: Describes the moment when the changes were issued to the ledger.
    change-meta:
      title: ChangeMeta
      type: object
      description: Metadata for a specific version in the record's change history.
      properties:
        change:
          description: Sequential version number of this change.
          allOf:
            - $ref: '#/components/schemas/change-number'
        action:
          description: Type of operation that produced this change.
          allOf:
            - $ref: '#/components/schemas/change-action'
        moment:
          description: Timestamp when this change was applied.
          allOf:
            - $ref: '#/components/schemas/change-moment'
    base-change-record:
      type: object
      required:
        - luid
        - hash
        - meta
      properties:
        luid:
          $ref: '#/components/schemas/luid'
        hash:
          $ref: '#/components/schemas/hash'
        meta:
          description: Metadata for a specific version in the record's change history.
          allOf:
            - $ref: '#/components/schemas/change-meta'
    anchor-change-record:
      title: AnchorChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-anchor-record'
        - $ref: '#/components/schemas/base-change-record'
    anchor-change-paged-list:
      title: AnchorChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/anchor-change-record'
    bridge-config:
      title: BridgeConfig
      type: object
      required:
        - server
      properties:
        credits.claims.groupBy:
          type: string
          description: Determines how bridge calls for credit claims are grouped in case multiple claims of one intent are addressed to the same bridge. Default (undefined) behaviour is no grouping, `address` groups by `target.handle`, and `wallet` groups by resolved wallet (where instead of `target.handle` we resolve to a parent wallet)
          enum:
            - address
            - wallet
        debits.claims.groupBy:
          type: string
          description: Determines how bridge calls for debit claims are grouped in case multiple claims of one intent are addressed to the same bridge. Default (undefined) behaviour is no grouping, `address` groups by `target.handle`, and `wallet` groups by resolved wallet (where instead of `target.handle` we resolve to a parent wallet)
          enum:
            - address
            - wallet
        server:
          type: string
          description: Base URL of the bridge server.
      description: Describes bridge configuration which will be shared across all the bridge functionalities
    bridge-trait:
      title: BridgeTrait
      type: string
      enum:
        - debits
        - credits
        - statuses
        - anchors
        - domains
        - effects
    bridge-trait-configuration:
      title: BridgeTraitConfiguration
      type: array
      items:
        oneOf:
          - $ref: '#/components/schemas/bridge-trait'
          - title: BridgeTraitWithFilter
            description: A trait with additional filter conditions that limit when the bridge is invoked.
            type: object
            required:
              - method
            properties:
              method:
                description: Bridge capability to enable.
                allOf:
                  - $ref: '#/components/schemas/bridge-trait'
              filter:
                description: Conditions that must match for this trait to activate. Uses dot notation on record fields.
                type: object
                additionalProperties: true
    secret-reference:
      title: SecretReference
      type: string
      pattern: ^\{\{ secret\.[A-Za-z]+[A-Za-z0-9]* \}\}$
      description: Secret value, formatted as `{{ secret.<alphanumericStringWithoutDots> }}`.
    bridge-security-rule:
      title: BridgeSecurityRule
      oneOf:
        - title: OAuth2SecurityRule
          description: Authenticate with an OAuth2 client credentials flow.
          type: object
          properties:
            schema:
              type: string
              enum:
                - oauth2
              description: Defines the schema of the authentication mechanism. Currently, only `oauth2` and `header` rules are strictly defined.
            clientId:
              type: string
              description: Client ID for OAuth2 authentication.
            tokenUrl:
              type: string
              format: uri
              description: URL to obtain OAuth2 token.
            clientSecret:
              $ref: '#/components/schemas/secret-reference'
              description: Client secret, formatted as `{{ secret.<alphanumericStringWithoutDots> }}`.
            scope:
              type: string
              description: Optional scope for OAuth2 authentication. This scope will be included in the token request if provided.
          required:
            - schema
            - clientId
            - tokenUrl
            - clientSecret
          additionalProperties: false
        - title: HeaderSecurityRule
          description: Authenticate by setting a static header on each request.
          type: object
          properties:
            schema:
              type: string
              enum:
                - header
              description: Defines the schema of the authentication mechanism. Currently, only `oauth2` and header rule are strictly defined.
            key:
              type: string
              description: Key of the header that should be set.
            value:
              $ref: '#/components/schemas/secret-reference'
              description: Value of the header that should be set, formatted as `{{ secret.<alphanumericStringWithoutDots> }}`.
          required:
            - schema
            - key
            - value
          additionalProperties: false
        - title: GenericSecurityRule
          description: Generic authentication rule for extensible security schemes.
          type: object
          properties:
            schema:
              type: string
              description: Defines the schema of the authentication mechanism. Used when schema is not `oauth2`.
            public:
              type: string
              description: Public identifier for generic authentication mechanisms.
            secret:
              $ref: '#/components/schemas/secret-reference'
              description: Secret for generic authentication mechanisms.
          required:
            - schema
            - public
            - secret
          additionalProperties: false
      examples:
        - schema: oauth2
          clientId: 6731de76-14a6-49ae-97bc-6eba6914391e
          tokenUrl: https://example.com/token
          clientSecret: '{{ secret.qWgdYAmab0YSkuL1qKv5bPX }}'
          scope: read write
      description: Defines how the ledger authenticates when calling the bridge endpoints.
    bridge-data:
      title: BridgeData
      description: Bridge server configuration, traits, and authentication rules.
      allOf:
        - type: object
          required:
            - config
            - secure
          properties:
            schema:
              description: Schema handle used to validate this bridge.
              allOf:
                - $ref: '#/components/schemas/address'
            config:
              description: Server URL and claim grouping settings.
              allOf:
                - $ref: '#/components/schemas/bridge-config'
            traits:
              description: Capabilities the bridge supports (debits, credits, statuses, anchors, domains, effects).
              allOf:
                - $ref: '#/components/schemas/bridge-trait-configuration'
            secure:
              description: Authentication rules the ledger uses when calling bridge endpoints.
              type: array
              items:
                $ref: '#/components/schemas/bridge-security-rule'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-bridge-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/bridge-data'
    bridge-record:
      title: BridgeRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-bridge-record'
        - $ref: '#/components/schemas/base-record'
    bridge-paged-list:
      title: BridgePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/bridge-record'
    create-bridge-record:
      title: CreateBridgeRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-bridge-record'
    update-bridge-record:
      title: UpdateBridgeRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-bridge-record'
        - $ref: '#/components/schemas/base-update-record'
    activate-bridge-data:
      title: ActivateBridgeData
      description: Options for retrying failed bridge events.
      type: object
      properties:
        maxAge:
          description: Maximum age in minutes of failed events to retry. Defaults to 60.
          type: integer
          examples:
            - 60
      unevaluatedProperties: false
    base-bridge-activate-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/activate-bridge-data'
    activate-bridge-record:
      title: ActivateBridgeRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-bridge-activate-record'
    bridge-change-record:
      title: BridgeChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-bridge-record'
        - $ref: '#/components/schemas/base-change-record'
    bridge-change-paged-list:
      title: BridgeChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/bridge-change-record'
    circle-data:
      title: CircleData
      description: Circle identity and optional schema reference.
      allOf:
        - type: object
          properties:
            schema:
              $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-circle-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/circle-data'
    circle-record:
      title: CircleRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-circle-record'
        - $ref: '#/components/schemas/base-record'
    circle-paged-list:
      title: CirclePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/circle-record'
    create-circle-record:
      title: CreateCircleRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-circle-record'
    update-circle-record:
      title: UpdateCircleRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-circle-record'
        - $ref: '#/components/schemas/base-update-record'
    circle-signer-data:
      title: CircleSignerData
      description: Defines the link between a circle and a signer.
      type: object
      required:
        - circle
        - signer
      properties:
        schema:
          description: Schema handle for the circle-signer relationship type.
          allOf:
            - $ref: '#/components/schemas/address'
        circle:
          description: Handle of the circle to assign the signer to.
          allOf:
            - $ref: '#/components/schemas/address'
        signer:
          description: Handle of the signer to add to the circle.
          allOf:
            - $ref: '#/components/schemas/address'
        custom:
          description: Arbitrary key-value data attached to this circle-signer link.
          allOf:
            - $ref: '#/components/schemas/base-custom'
    base-circle-signer-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/circle-signer-data'
          unevaluatedProperties: false
    circle-signer-record:
      title: CircleSignerRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-circle-signer-record'
        - $ref: '#/components/schemas/base-record'
    circle-signer-paged-list:
      title: CircleSignerPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/circle-signer-record'
    create-circle-signer-record:
      title: CreateCircleSignerRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-circle-signer-record'
    circle-change-record:
      title: CircleChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-circle-record'
        - $ref: '#/components/schemas/base-change-record'
    circle-change-paged-list:
      title: CircleChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/circle-change-record'
    domain-data:
      title: DomainData
      description: Domain handle pattern for address resolution.
      allOf:
        - type: object
          required:
            - handle
          properties:
            handle:
              $ref: '#/components/schemas/handle'
            schema:
              $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-domain-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/domain-data'
    domain-record:
      title: DomainRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-domain-record'
        - $ref: '#/components/schemas/base-record'
    domain-paged-list:
      title: DomainPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/domain-record'
    create-domain-record:
      title: CreateDomainRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-domain-record'
    update-domain-record:
      title: UpdateDomainRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-domain-record'
        - $ref: '#/components/schemas/base-update-record'
    domain-change-record:
      title: DomainChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-domain-record'
        - $ref: '#/components/schemas/base-change-record'
    domain-change-paged-list:
      title: DomainChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/domain-change-record'
    event-signal:
      title: EventSignal
      description: Ledger event that triggers this effect.
      type: string
      enum:
        - anchor-created
        - anchor-dropped
        - anchor-proofs-added
        - anchor-updated
        - balance-received
        - bridge-created
        - bridge-entry-created
        - bridge-entry-proofs-added
        - bridge-entry-updated
        - bridge-proofs-added
        - bridge-updated
        - circle-created
        - circle-proofs-added
        - circle-updated
        - domain-created
        - domain-proofs-added
        - domain-updated
        - effect-created
        - effect-proofs-added
        - effect-updated
        - effect-dropped
        - intent-created
        - intent-proofs-added
        - intent-updated
        - ledger-created
        - ledger-proofs-added
        - ledger-updated
        - policy-created
        - policy-proofs-added
        - policy-updated
        - report-created
        - report-dropped
        - report-proofs-added
        - report-updated
        - request-created
        - request-proofs-added
        - request-updated
        - schema-created
        - schema-proofs-added
        - schema-updated
        - signer-created
        - signer-proofs-added
        - signer-updated
        - signer-factor-created
        - signer-factor-updated
        - signer-factor-proofs-added
        - signer-factor-dropped
        - symbol-created
        - symbol-proofs-added
        - symbol-updated
        - wallet-created
        - wallet-limited
        - wallet-proofs-added
        - wallet-updated
    effect-filter:
      title: EffectFilter
      description: Conditions the event payload must match for this effect to fire. Uses dot notation on record fields.
      type: object
      additionalProperties:
        description: Match event fields by value using dot notation (e.g. wallet.data.handle).
      examples:
        - wallet.data.handle: bank1
    effect-webhook-action:
      title: EffectWebhookAction
      description: Deliver the event payload to an HTTP endpoint.
      type: object
      required:
        - schema
        - endpoint
      properties:
        schema:
          description: Must be `webhook`.
          type: string
          enum:
            - webhook
        endpoint:
          description: URL that receives the event payload via POST.
          type: string
          format: uri
          examples:
            - http://bank1.minkainc.dev/webhook/balance-received
    effect-bridge-action:
      title: EffectBridgeAction
      description: Deliver the event payload to a bridge.
      type: object
      required:
        - schema
        - bridge
      properties:
        schema:
          description: Must be `bridge`.
          type: string
          enum:
            - bridge
        bridge:
          description: Handle of the bridge that receives the event.
          allOf:
            - $ref: '#/components/schemas/address'
    effect-data:
      title: EffectData
      description: Effect trigger signal, filter criteria, and action configuration.
      allOf:
        - type: object
          required:
            - signal
            - action
          properties:
            handle:
              description: Unique identifier for the effect.
            parent:
              description: Hash of the previous version. Required for updates to detect conflicts.
            schema:
              description: Schema handle used to validate this effect.
              allOf:
                - $ref: '#/components/schemas/address'
            signal:
              description: Event that triggers this effect.
              allOf:
                - $ref: '#/components/schemas/event-signal'
            filter:
              description: Optional conditions to narrow which events trigger the effect.
              allOf:
                - $ref: '#/components/schemas/effect-filter'
            action:
              description: What to do when the effect fires.
              oneOf:
                - $ref: '#/components/schemas/effect-webhook-action'
                - $ref: '#/components/schemas/effect-bridge-action'
              discriminator:
                propertyName: schema
                mapping:
                  webhook: '#/components/schemas/effect-webhook-action'
                  bridge: '#/components/schemas/effect-bridge-action'
            custom:
              description: Free-form key-value pairs for application-specific data.
            access:
              description: Access control rules that govern who can perform actions on this record.
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-effect-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/effect-data'
    effect-record:
      title: EffectRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-effect-record'
        - $ref: '#/components/schemas/base-record'
    effect-paged-list:
      title: EffectPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/effect-record'
    create-effect-record:
      title: CreateEffectRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-effect-record'
    update-effect-record:
      title: UpdateEffectRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-effect-record'
        - $ref: '#/components/schemas/base-update-record'
    activate-effect-data:
      title: ActivateEffectData
      description: Options for retrying failed effect events.
      type: object
      properties:
        maxAge:
          description: Maximum age in minutes of failed events to retry. Defaults to 60.
          type: integer
          examples:
            - 60
      unevaluatedProperties: false
    base-effect-activate-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/activate-effect-data'
    activate-effect-record:
      title: ActivateEffectRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-effect-activate-record'
    effect-change-record:
      title: EffectChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-effect-record'
        - $ref: '#/components/schemas/base-change-record'
    effect-change-paged-list:
      title: EffectChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/effect-change-record'
    intent-filter-query:
      title: IntentFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    issue-claim:
      title: IssueClaim
      description: Creates new balance in a target wallet. Used to mint new units of a symbol.
      type: object
      required:
        - action
        - target
        - symbol
        - amount
      properties:
        action:
          description: Claim type identifier.
          type: string
          enum:
            - issue
        target:
          description: Target address, resolved to a wallet at processing time.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        symbol:
          description: Symbol being issued.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        amount:
          $ref: '#/components/schemas/amount'
    transfer-claim:
      title: TransferClaim
      description: Moves balance from a source wallet to a target wallet. Fails if the source has insufficient balance.
      type: object
      required:
        - action
        - source
        - target
        - symbol
        - amount
      properties:
        action:
          description: Claim type identifier.
          type: string
          enum:
            - transfer
        source:
          description: Source address, resolved to a wallet at processing time.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        target:
          description: Target address, resolved to a wallet at processing time.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        symbol:
          description: Symbol being transferred.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        amount:
          $ref: '#/components/schemas/amount'
    destroy-claim:
      title: DestroyClaim
      description: Removes balance from a source wallet. Used to burn or redeem units of a symbol.
      type: object
      required:
        - action
        - source
        - symbol
        - amount
      properties:
        action:
          description: Claim type identifier.
          type: string
          enum:
            - destroy
        source:
          description: Source address, resolved to a wallet at processing time.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        symbol:
          description: Symbol being destroyed.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        amount:
          $ref: '#/components/schemas/amount'
    limit-amount:
      title: LimitAmount
      type: integer
      maximum: 9007199254740991
      minimum: -9007199254740991
      examples:
        - 100
    claim-metric:
      title: ClaimMetric
      type: string
      description: Balance or transaction metric to constrain.
      enum:
        - minBalance
        - maxBalance
        - dailyAmount
        - dailyCount
    limit-claim:
      title: LimitClaim
      description: Sets a constraint on a wallet's balance or transaction volume for a symbol.
      type: object
      required:
        - action
        - wallet
        - symbol
        - amount
        - metric
      properties:
        action:
          description: Claim type identifier.
          type: string
          enum:
            - limit
        wallet:
          description: Handle of the wallet to apply the limit to.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        symbol:
          description: Symbol the limit applies to.
          allOf:
            - $ref: '#/components/schemas/base-reference'
        amount:
          $ref: '#/components/schemas/limit-amount'
        metric:
          $ref: '#/components/schemas/claim-metric'
    intent-commit-mode:
      title: IntentCommitMode
      type: string
      enum:
        - auto
        - manual
      description: Enables auto commit in 2 phase commit process when the intent is prepared.
    intent-config:
      title: IntentConfig
      properties:
        commit:
          $ref: '#/components/schemas/intent-commit-mode'
    intent-data:
      title: IntentData
      description: Intent claims, configuration, and origin context.
      allOf:
        - type: object
          required:
            - claims
          properties:
            schema:
              description: Schema handle identifying the intent type (e.g. `transfer`).
              allOf:
                - $ref: '#/components/schemas/address'
            claims:
              description: Balance movements requested by this intent. Each claim specifies an action, amount, source, target, and symbol.
              type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/issue-claim'
                  - $ref: '#/components/schemas/transfer-claim'
                  - $ref: '#/components/schemas/destroy-claim'
                  - $ref: '#/components/schemas/limit-claim'
                discriminator:
                  propertyName: action
                  mapping:
                    issue: '#/components/schemas/issue-claim'
                    transfer: '#/components/schemas/transfer-claim'
                    destroy: '#/components/schemas/destroy-claim'
                    limit: '#/components/schemas/limit-claim'
            config:
              description: Intent processing options such as commit mode.
              allOf:
                - $ref: '#/components/schemas/intent-config'
            origin:
              description: Handle of the parent intent that caused this one to be created. Links this intent into the parent's thread.
              allOf:
                - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-intent-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/intent-data'
    intent-status:
      title: IntentStatus
      type: string
      enum:
        - aborted
        - committed
        - completed
        - created
        - failed
        - pending
        - rejected
        - prepared
        - accepted
      examples:
        - aborted
      description: Attaches status of transaction performed in external system as additional information about the signature
    intent-meta:
      description: System-managed metadata for the intent lifecycle. Not included in the record hash.
      type: object
      properties:
        thread:
          description: Groups related intents into a coordinated unit. Inherited from the origin intent, or auto-generated for new intents.
          allOf:
            - $ref: '#/components/schemas/address'
        status:
          $ref: '#/components/schemas/intent-status'
        routed:
          type: boolean
          examples:
            - true
          description: Whether routing has been executed on this intent.
    intent-record:
      title: IntentRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-intent-record'
        - $ref: '#/components/schemas/base-record'
        - type: object
          required:
            - meta
          properties:
            meta:
              $ref: '#/components/schemas/intent-meta'
    intent-paged-list:
      title: IntentPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/intent-record'
    create-intent-record:
      title: CreateIntentRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-intent-record'
    intent-proof-status:
      title: IntentProofStatus
      type: string
      examples:
        - prepared
      description: Status asserted by the signature.
    intent-proof-core-id:
      title: IntentProofCoreId
      type: string
      examples:
        - 491c6a81-418d-4ca6-b263-30f1133d78ac
      description: Describes transaction id in external system
    intent-proof-error-reason:
      title: IntentProofErrorReason
      type: string
      enum:
        - bridge.account-not-found
        - bridge.account-inactive
        - bridge.account-insufficient-balance
        - bridge.account-limit-exceeded
        - bridge.entry-rejected
        - bridge.entry-hash-invalid
        - bridge.entry-signature-invalid
        - bridge.entry-signature-mismatch
        - bridge.entry-signature-missing
        - bridge.entry-schema-invalid
        - bridge.entry-mismatch
        - bridge.entry-duplicated
        - bridge.entry-timeout
        - bridge.intent-hash-invalid
        - bridge.intent-signature-invalid
        - bridge.intent-signature-missing
        - bridge.intent-unrelated
        - bridge.fraud-detected
        - bridge.ledger-failed
        - bridge.core-unreachable
        - bridge.unexpected-core-error
        - bridge.unexpected-error
      examples:
        - bridge.account-not-found
      description: Reports error reason by external system in case when processing of action fails in external system.
    intent-proof-reason-detail:
      title: IntentProofReasonDetail
      type: string
      examples:
        - Cannot perform transaction
      description: Describes the error if error `reason` is reported
    intent-proof-fail-id:
      title: IntentProofFailId
      type: string
      examples:
        - ERR-0134
      description: References to error in the external system. It is usually an error code specific to external system.
    intent-proof-data:
      title: IntentProofData
      description: Intent proof metadata. Carries the status transition, error details from bridges, and correlation identifiers.
      type: object
      properties:
        handle:
          description: Correlates this proof with a specific action delivered to an external system. Also used for idempotency on retries.
          allOf:
            - $ref: '#/components/schemas/address'
        moment:
          description: Timestamp when the proof was created.
          allOf:
            - $ref: '#/components/schemas/moment'
        status:
          description: Status transition asserted by this proof.
          allOf:
            - $ref: '#/components/schemas/intent-proof-status'
        coreId:
          description: Transaction identifier in the external system, recorded for reconciliation.
          allOf:
            - $ref: '#/components/schemas/intent-proof-core-id'
        reason:
          description: Error reason code reported by the external system.
          allOf:
            - $ref: '#/components/schemas/intent-proof-error-reason'
        detail:
          description: Human-readable error detail from the external system.
          allOf:
            - $ref: '#/components/schemas/intent-proof-reason-detail'
        failId:
          description: Error code reference in the external system.
          allOf:
            - $ref: '#/components/schemas/intent-proof-fail-id'
      additionalProperties:
        description: Additional properties are accepted with any valid JSON value.
      examples:
        - status: failed
          reason: bridge.account-not-found
          detail: Could not find target account
          failId: ERR-0156
    intent-proof:
      title: IntentProof
      allOf:
        - $ref: '#/components/schemas/base-proof'
        - type: object
          required:
            - custom
          properties:
            custom:
              $ref: '#/components/schemas/intent-proof-data'
    intent-change-record:
      title: IntentChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-intent-record'
        - $ref: '#/components/schemas/base-change-record'
        - type: object
          required:
            - meta
          properties:
            meta:
              $ref: '#/components/schemas/intent-meta'
    intent-change-paged-list:
      title: IntentChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/intent-change-record'
    ledger-config:
      title: LedgerConfig
      type: object
      description: Controls ledger behavior including intent expiry, access strategy, and feature flags.
      required:
        - intent.expiryThresholdMinutes
      properties:
        access.strategy:
          type: string
          enum:
            - record-based
            - policy-based
          description: 'Determines how access control policies are applied to the ledger. - ''record-based'': Policies must be explicitly attached to individual records. Each record specifies which policy governs its access control. - ''policy-based'': Policies are applied automatically based on configuration, without requiring explicit attachment to records.'
        intent.expiryThresholdMinutes:
          type: integer
          minimum: 1
          description: Minutes before a pending intent expires automatically.
          examples:
            - 60
        intent.creditorInitiatedTransfersEnabled:
          type: boolean
          description: Allow creditor-initiated transfers (pull payments).
        anchor.walletRequired:
          type: boolean
          description: Require anchors to reference an existing wallet.
        domain.resolutionFromHandleEnabled:
          type: boolean
          description: If enabled, the ledger will support extracting the domain of a record from its handle. Otherwise, the ledger will only support determining the domain of a record from proofs. The resolution from proofs overrides the handle's one, regardless of the value of this flag.
        policy.scheduleProcessorEnabled:
          type: boolean
          description: Enable scheduled policy evaluation.
        request.journalingEnabled:
          type: boolean
          description: Log all API requests as system-request records.
        config.limits.aggregated.enabled:
          type: boolean
          description: If enabled, the ledger will support aggregated limits for requests. Otherwise, the ledger will only support individual limits per request.
    ledger-data:
      title: LedgerData
      description: Ledger identity, configuration, and access control settings.
      allOf:
        - type: object
          required:
            - handle
            - signer
          properties:
            handle:
              $ref: '#/components/schemas/handle'
            signer:
              description: Server signer used to sign ledger-owned operations such as effects.
              allOf:
                - $ref: '#/components/schemas/address'
            custom:
              description: Arbitrary key-value metadata for end users or integrations.
            config:
              description: Ledger-wide configuration options such as intent expiry, routing, and feature flags.
              allOf:
                - $ref: '#/components/schemas/ledger-config'
            access:
              description: Access control rules constraining API operations to specific signers or public keys.
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-ledger-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/ledger-data'
    ledger-record:
      title: LedgerRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-ledger-record'
        - $ref: '#/components/schemas/base-record'
      unevaluatedProperties: false
    ledger-paged-list:
      title: LedgerPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/ledger-record'
    create-ledger-record:
      title: CreateLedgerRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-ledger-record'
    update-ledger-record:
      title: UpdateLedgerRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-ledger-record'
        - $ref: '#/components/schemas/base-update-record'
    ledger-change-record:
      title: LedgerChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-ledger-record'
        - $ref: '#/components/schemas/base-change-record'
    ledger-change-paged-list:
      title: LedgerChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/ledger-change-record'
    oauth-token-request:
      title: OAuthTokenRequest
      type: object
      properties:
        grant_type:
          type: string
          description: Must be `client_credentials`.
          example: client_credentials
        client_id:
          type: string
          description: |-
            The client identifier. Required if not using HTTP Basic
            authentication.
          example: ciDf8kP2mQw9rT5nXvYb3L
        client_secret:
          type: string
          description: |-
            The client secret. Required if not using HTTP Basic
            authentication.
          example: RtN8vY3jW5zK1qHmF6pD2sB9cE0...
    oauth-token-response:
      title: OAuthTokenResponse
      type: object
      required:
        - access_token
        - token_type
        - expires_in
      properties:
        access_token:
          type: string
          description: Signed RS256 JWT Bearer token.
          example: eyJhbGciOiJSUzI1NiIsImtpZCI6ImxlZGdlci1vYXV0aC1rZXktMSJ9...
        token_type:
          type: string
          description: Token type. Always `Bearer`.
          enum:
            - Bearer
          example: Bearer
        expires_in:
          type: integer
          description: Token lifetime in seconds.
          example: 3600
    oauth-error-response:
      title: OAuthErrorResponse
      type: object
      required:
        - error
        - error_description
      properties:
        error:
          type: string
          description: RFC 6749 error code.
          enum:
            - invalid_request
            - invalid_client
            - invalid_grant
            - unsupported_grant_type
            - server_error
        error_description:
          type: string
          description: Human-readable error description.
    policy-filter-query:
      title: PolicyFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    policy-schema:
      title: PolicySchema
      type: string
    base-policy-data:
      description: Common policy fields shared across all policy types — the type selector, target record, and inheritance link.
      allOf:
        - type: object
          properties:
            schema:
              description: Policy type identifier (e.g. access, status, layout, schedule, processing, authentication).
              allOf:
                - $ref: '#/components/schemas/policy-schema'
            record:
              description: Record type this policy applies to (e.g. intent, wallet, signer).
              allOf:
                - $ref: '#/components/schemas/access-record'
            extend:
              description: Handle of another policy to inherit and extend.
              allOf:
                - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-data'
    policy-filter:
      title: PolicyFilter
      description: Conditions that narrow which records this policy applies to.
      type: object
      additionalProperties:
        description: Match record fields by value using dot notation (e.g. data.schema).
      examples:
        - data.schema: bank
    layout-record:
      title: LayoutRecord
      description: Record type this layout template applies to.
      type: string
      enum:
        - schema
        - bridge
        - wallet
        - circle
        - policy
        - symbol
        - signer
        - intent
        - effect
        - domain
        - ledger
        - signer-proof
        - circle-signer
    layout-record-value:
      title: LayoutRecordValue
      description: Template that pre-fills record fields during creation.
      required:
        - data
      properties:
        data:
          description: Fields to pre-fill in the record data payload.
          type: object
        exec:
          description: Executable expressions evaluated at creation time.
          type: object
        meta:
          description: Metadata fields to set on the record.
          type: object
        sign:
          description: Signing instructions for the record.
          type: object
    layout-policy-value:
      title: LayoutPolicyValue
      description: Layout rule that maps a record type to its creation templates.
      type: object
      required:
        - record
        - values
      properties:
        record:
          description: Record type this layout applies to.
          allOf:
            - $ref: '#/components/schemas/layout-record'
        values:
          description: Templates to apply when creating this record type.
          type: array
          items:
            $ref: '#/components/schemas/layout-record-value'
    layout-policy-data:
      title: LayoutPolicyData
      description: Defines record templates that pre-fill fields when creating records.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          properties:
            schema:
              description: Must be `layout`.
              type: string
              enum:
                - layout
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Layout templates to apply.
              type: array
              items:
                $ref: '#/components/schemas/layout-policy-value'
      unevaluatedProperties: false
    status-policy-config:
      title: StatusPolicyConfig
      type: object
      description: Describes the configuration of a status policy.
      properties:
        quorum.proofSelection:
          type: string
          enum:
            - latest-chain
            - entire-set
          description: |-
            Determines in which way proofs are selected for quorum calculation.
            If `latest-chain` is selected, only the proofs from the latest chain with target status are considered.
            If `entire-set` is selected, all proofs for the target status are considered.
            Default is `latest-chain`.
    policy-value-status:
      title: PolicyValueStatus
      type:
        - string
        - 'null'
    policy-value-status-aggregation:
      title: PolicyValueStatusAggregation
      type: object
      properties:
        $in:
          type: array
          items:
            $ref: '#/components/schemas/policy-value-status'
          description: Defines a list of statuses that must include the status
          minItems: 1
      additionalProperties: false
      description: Object that represents aggregation statuses valid for a certain status policy value
    status-policy-value:
      title: StatusPolicyValue
      description: A quorum rule that defines which signers must approve a status transition.
      type: object
      required:
        - quorum
      properties:
        filter:
          description: Additional conditions for this rule to apply.
          allOf:
            - $ref: '#/components/schemas/policy-filter'
        status:
          description: Target status or statuses this rule applies to.
          oneOf:
            - $ref: '#/components/schemas/policy-value-status'
            - $ref: '#/components/schemas/policy-value-status-aggregation'
        quorum:
          description: Signers that must approve for the transition to succeed.
          type: array
          items:
            $ref: '#/components/schemas/access-signer'
    status-policy-data:
      title: StatusPolicyData
      description: Defines quorum rules that control record status transitions.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          properties:
            schema:
              description: Must be `status`.
              type: string
              enum:
                - status
            config:
              description: Status policy configuration such as proof selection strategy.
              allOf:
                - $ref: '#/components/schemas/status-policy-config'
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Quorum rules for status transitions.
              type: array
              items:
                $ref: '#/components/schemas/status-policy-value'
      unevaluatedProperties: false
    labels-policy-value:
      title: LabelsPolicyValue
      description: Label validation rule defining allowed labels and uniqueness constraints.
      type: object
      required:
        - labels
      properties:
        labels:
          description: Labels covered by this rule.
          type: array
          items:
            $ref: '#/components/schemas/label'
        unique:
          description: Field paths that must be unique across records sharing the same label.
          type: array
          items:
            type: string
    labels-policy-data:
      title: LabelsPolicyData
      description: Defines label validation and uniqueness rules for records.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          properties:
            schema:
              description: Must be `labels`.
              type: string
              enum:
                - labels
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Label rules including allowed labels and uniqueness constraints.
              type: array
              items:
                $ref: '#/components/schemas/labels-policy-value'
      unevaluatedProperties: false
    access-policy-data:
      title: AccessPolicyData
      description: Defines reusable access control rules that can be referenced by records.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          properties:
            schema:
              description: Must be `access`.
              type: string
              enum:
                - access
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Access rules to enforce.
              type: array
              items:
                $ref: '#/components/schemas/access-rule'
      unevaluatedProperties: false
    schedule-policy-config:
      title: SchedulePolicyConfig
      type: object
      description: Describes the configuration of a schedule policy.
      required:
        - timezone
      properties:
        timezone:
          type: string
          format: timezone
          description: Timezone in which the policy is configured.
    schedule-policy-value:
      title: SchedulePolicyValue
      description: A schedule definition with execution times, repeat days, and active windows.
      type: object
      required:
        - cycles
        - repeat
        - active
        - legend
      properties:
        legend:
          description: Human-readable name for this schedule.
          type: string
        detail:
          description: Additional description of the schedule.
          type: string
        cycles:
          description: Times of day to execute, in HH:MM format.
          type: array
          items:
            type: string
            pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$
        repeat:
          description: Days of the week to repeat on.
          type: array
          items:
            type: string
            enum:
              - mon
              - tue
              - wed
              - thu
              - fri
              - sat
              - sun
        active:
          description: Time windows during which the schedule is active.
          type: array
          items:
            type: object
            required:
              - legend
            properties:
              starts:
                description: Start of the active window (ISO date or time string).
                type: string
              closes:
                description: End of the active window (ISO date or time string).
                type: string
              legend:
                description: Human-readable name for this window.
                type: string
    schedule-policy-action:
      title: SchedulePolicyAction
      type: string
      enum:
        - create
    schedule-policy-inputs:
      title: SchedulePolicyInputs
      type: object
      additionalProperties:
        description: Input parameters passed to the scheduled action (e.g. schema, reference).
      examples:
        - schema: settlement
          reference: 3284759238475
      description: Inputs for the action
    schedule-policy-data:
      title: SchedulePolicyData
      description: Defines scheduled actions that run on a recurring basis.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          required:
            - schema
            - action
            - inputs
            - config
            - values
          properties:
            schema:
              description: Must be `schedule`.
              type: string
              enum:
                - schedule
            custom:
              description: Free-form key-value pairs for application-specific data.
            config:
              description: Timezone and scheduling configuration.
              allOf:
                - $ref: '#/components/schemas/schedule-policy-config'
            values:
              description: Schedule definitions with cycles, repeat days, and active windows.
              type: array
              items:
                $ref: '#/components/schemas/schedule-policy-value'
            action:
              description: Action to perform on each scheduled cycle.
              allOf:
                - $ref: '#/components/schemas/schedule-policy-action'
            inputs:
              description: Parameters passed to the scheduled action.
              allOf:
                - $ref: '#/components/schemas/schedule-policy-inputs'
      unevaluatedProperties: false
    aspect-invoke:
      title: AspectInvoke
      description: Bridge to invoke for aspect processing.
      type: object
      required:
        - bridge
      properties:
        bridge:
          description: Handle of the bridge that processes the request.
          type: string
    aspect-config:
      title: AspectConfig
      description: Aspect processing strategy configuration.
      type: object
      required:
        - strategy
      properties:
        strategy:
          description: How the bridge participates in the request lifecycle.
          type: string
          enum:
            - proxy
            - fallback
            - validate
            - synchronize
    aspect-processing-value:
      title: AspectProcessingValue
      description: Rule that delegates a record operation to a bridge using a specific strategy.
      type: object
      required:
        - schema
        - action
        - invoke
      properties:
        schema:
          description: Must be `aspect`.
          type: string
          enum:
            - aspect
        action:
          description: Record operation to intercept.
          type: string
          enum:
            - read
            - query
            - create
            - update
            - drop
            - sign
        filter:
          description: Conditions that narrow when this rule applies.
          allOf:
            - $ref: '#/components/schemas/policy-filter'
        invoke:
          description: Bridge to delegate the operation to.
          allOf:
            - $ref: '#/components/schemas/aspect-invoke'
        config:
          description: Processing strategy for bridge participation.
          allOf:
            - $ref: '#/components/schemas/aspect-config'
    processing-policy-data:
      title: ProcessingPolicyData
      description: Defines aspect-based processing rules that delegate operations to bridges.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          required:
            - schema
            - values
          properties:
            schema:
              description: Must be `processing`.
              type: string
              enum:
                - processing
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Aspect processing rules defining bridge delegation strategy.
              type: array
              items:
                $ref: '#/components/schemas/aspect-processing-value'
      unevaluatedProperties: false
    authentication-oauth2-config:
      title: AuthenticationOAuth2Config
      type: object
      properties:
        jwt.ttl:
          type: number
          description: JWT token time-to-live in seconds
        proof.impersonator.handle:
          type: string
          description: Proof impersonator handle
    authentication-oauth2-value:
      title: AuthenticationOAuth2Value
      description: OAuth2 authentication rule linking a signer to bearer token access.
      type: object
      required:
        - schema
        - signer
      properties:
        schema:
          description: Must be `oauth2`.
          type: string
          enum:
            - oauth2
        signer:
          title: AuthenticationSigner
          description: Signer that authenticates via this OAuth2 configuration.
          type: object
          required:
            - handle
          properties:
            handle:
              description: Handle of the signer.
              type: string
        target:
          title: AuthenticationTarget
          description: Optional target schema to restrict which records this authentication applies to.
          type: object
          properties:
            schema:
              description: Schema handle to match.
              type: string
        config:
          description: Token and impersonation settings.
          allOf:
            - $ref: '#/components/schemas/authentication-oauth2-config'
    authentication-policy-data:
      title: AuthenticationPolicyData
      description: Defines OAuth2 authentication rules for API access via bearer tokens.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          required:
            - schema
            - values
          properties:
            schema:
              description: Must be `authentication`.
              type: string
              enum:
                - authentication
            values:
              description: OAuth2 authentication configurations.
              type: array
              items:
                $ref: '#/components/schemas/authentication-oauth2-value'
      unevaluatedProperties: false
    custom-policy-data:
      title: CustomPolicyData
      description: User-defined policy type with a custom schema identifier.
      allOf:
        - $ref: '#/components/schemas/base-policy-data'
        - type: object
          properties:
            schema:
              description: Custom schema identifier. Must not match a built-in policy type.
              type: string
              pattern: ^(?!layout|access|status|labels|schedule|processing|authentication).*$
            filter:
              description: Conditions that determine when this policy applies.
              allOf:
                - $ref: '#/components/schemas/policy-filter'
            values:
              description: Custom policy values. Structure is defined by the schema.
              type: array
              items:
                type: object
                additionalProperties:
                  description: Custom value fields defined by the policy schema.
      unevaluatedProperties: false
    policy-data:
      title: PolicyData
      description: Policy definition. The `schema` field determines the policy type and the structure of `values`.
      anyOf:
        - $ref: '#/components/schemas/layout-policy-data'
        - $ref: '#/components/schemas/status-policy-data'
        - $ref: '#/components/schemas/labels-policy-data'
        - $ref: '#/components/schemas/access-policy-data'
        - $ref: '#/components/schemas/schedule-policy-data'
        - $ref: '#/components/schemas/processing-policy-data'
        - $ref: '#/components/schemas/authentication-policy-data'
        - $ref: '#/components/schemas/custom-policy-data'
    base-policy-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/policy-data'
    policy-record:
      title: PolicyRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-policy-record'
        - $ref: '#/components/schemas/base-record'
    policy-paged-list:
      title: PolicyPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/policy-record'
    create-policy-record:
      title: CreatePolicyRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-policy-record'
    update-policy-record:
      title: UpdatePolicyRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-policy-record'
        - $ref: '#/components/schemas/base-update-record'
    policy-change-record:
      title: PolicyChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-policy-record'
        - $ref: '#/components/schemas/base-change-record'
    policy-change-paged-list:
      title: PolicyChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/policy-change-record'
    report-filter-query:
      title: ReportFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    report-data:
      title: ReportData
      description: Report schema reference and generation parameters.
      allOf:
        - type: object
          required:
            - schema
          properties:
            handle:
              description: Unique identifier for the report.
            parent:
              description: Hash of the previous version. Required for updates to detect conflicts.
            schema:
              description: Schema handle identifying the report type.
              allOf:
                - $ref: '#/components/schemas/address'
            custom:
              description: Free-form key-value pairs for application-specific data.
            access:
              description: Access control rules that govern who can perform actions on this record.
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-report-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/report-data'
    report-status:
      title: ReportStatus
      type: string
      enum:
        - created
        - pending
        - completed
        - rejected
        - settled
      examples:
        - completed
      description: Status of report generation
    report-asset:
      title: ReportAsset
      type: object
      properties:
        handle:
          $ref: '#/components/schemas/handle'
        output:
          type: string
      description: Asset that was created during report generation
    report-meta:
      description: System-managed metadata for the report lifecycle. Not included in the record hash.
      type: object
      properties:
        status:
          $ref: '#/components/schemas/report-status'
        assets:
          description: Files generated during report execution, each with a handle and output location.
          type: array
          items:
            $ref: '#/components/schemas/report-asset'
        labels:
          description: Labels attached to the report for classification and filtering.
          type: array
          items:
            $ref: '#/components/schemas/label'
    report-record:
      title: ReportRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-report-record'
        - $ref: '#/components/schemas/base-record'
        - type: object
          required:
            - meta
          properties:
            meta:
              $ref: '#/components/schemas/report-meta'
    report-paged-list:
      title: ReportPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/report-record'
    create-report-record:
      title: CreateReportRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-report-record'
    report-proof-custom:
      title: Proof custom for reports
      allOf:
        - $ref: '#/components/schemas/base-custom'
        - type: object
          properties:
            moment:
              $ref: '#/components/schemas/moment'
            status:
              $ref: '#/components/schemas/report-status'
            assets:
              type: array
              items:
                $ref: '#/components/schemas/report-asset'
            labels:
              oneOf:
                - $ref: '#/components/schemas/label-query-aggregation'
                - type: array
                  items:
                    $ref: '#/components/schemas/label'
    report-proof:
      title: Report proof
      allOf:
        - $ref: '#/components/schemas/base-proof'
        - type: object
          required:
            - custom
          properties:
            custom:
              $ref: '#/components/schemas/report-proof-custom'
      description: The proof object for reports used to verify the source of any information saved in the system
    report-change-record:
      title: ReportChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-report-record'
        - $ref: '#/components/schemas/base-change-record'
        - type: object
          required:
            - meta
          properties:
            meta:
              $ref: '#/components/schemas/report-meta'
    report-change-paged-list:
      title: ReportChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/report-change-record'
    schema-filter-query:
      title: SchemaFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    schema-format:
      title: SchemaFormat
      description: Schema language used for validation.
      type: string
      enum:
        - json-schema
    schema-assigned-record:
      title: SchemaAssignedRecord
      description: Record type this schema validates.
      type: string
      enum:
        - anchor
        - anchor-lookup
        - bridge
        - circle
        - domain
        - effect
        - intent
        - policy
        - report
        - signer
        - signer-factor
        - symbol
        - wallet
    schema-content:
      title: SchemaContent
      description: JSON Schema definition used to validate record data.
      type: object
    schema-data:
      title: SchemaData
      description: Validation schema definition, format, and target record type.
      allOf:
        - type: object
          required:
            - format
            - record
            - schema
          properties:
            handle:
              description: Unique identifier for the schema.
            parent:
              description: Hash of the previous version. Required for updates to detect conflicts.
            format:
              description: Schema language used for validation.
              allOf:
                - $ref: '#/components/schemas/schema-format'
            record:
              description: Record type this schema validates.
              allOf:
                - $ref: '#/components/schemas/schema-assigned-record'
            schema:
              description: The validation definition itself (e.g. a JSON Schema object).
              allOf:
                - $ref: '#/components/schemas/schema-content'
            extend:
              description: Handle of another schema to inherit and extend.
              allOf:
                - $ref: '#/components/schemas/address'
            custom:
              description: Free-form key-value pairs for application-specific data.
            access:
              description: Access control rules that govern who can perform actions on this record.
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-schema-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/schema-data'
    schema-record:
      title: SchemaRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-schema-record'
        - $ref: '#/components/schemas/base-record'
    schema-paged-list:
      title: SchemaPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/schema-record'
    create-schema-record:
      title: CreateSchemaRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-schema-record'
    update-schema-record:
      title: UpdateSchemaRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-schema-record'
        - $ref: '#/components/schemas/base-update-record'
    schema-change-record:
      title: SchemaChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-schema-record'
        - $ref: '#/components/schemas/base-change-record'
    schema-change-paged-list:
      title: SchemaChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/schema-change-record'
    secret:
      title: Secret
      description: PKCS5 encrypted secret key encoded in base64
      type: string
      pattern: ^(?:[A-Za-z0-9+/]{211}=|[A-Za-z0-9+/]{214}==)$
      format: pkcs5-encrypted
      examples:
        - MIGbMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAgRkLIat0HLagICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEELt1Miyg5QxGQm0Z3MGf5JAEQKDlo5kbktuZu+RA6L59rW3Dlr6PADSoyL3EKnPt+iKrDIuA5IUzKiv05HeQdD3zWY2j/wff3Z5LOhzFLshyHfA=
    signer-data:
      title: SignerData
      description: Signer cryptographic key pair and format.
      allOf:
        - type: object
          properties:
            schema:
              $ref: '#/components/schemas/address'
            public:
              $ref: '#/components/schemas/public-key'
            format:
              $ref: '#/components/schemas/key-format'
            secret:
              oneOf:
                - $ref: '#/components/schemas/secret-reference'
                  description: Secret key reference, formatted as `{{ secret.<alphanumericStringWithoutDots> }}`.
                - $ref: '#/components/schemas/secret'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-signer-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/signer-data'
    signer-record:
      title: SignerRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-signer-record'
        - $ref: '#/components/schemas/base-record'
    signer-paged-list:
      title: SignerPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/signer-record'
    create-signer-record:
      title: CreateSignerRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-signer-record'
    update-signer-record:
      title: UpdateSignerRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-signer-record'
        - $ref: '#/components/schemas/base-update-record'
    signer-change-record:
      title: SignerChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-signer-record'
        - $ref: '#/components/schemas/base-change-record'
    signer-change-paged-list:
      title: SignerChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/signer-change-record'
    default-signer-factor-data:
      title: DefaultSignerFactorData
      description: Default signer factor linking a factor to a signer.
      allOf:
        - type: object
          required:
            - signer
          properties:
            signer:
              description: Handle of the signer this factor belongs to.
              allOf:
                - $ref: '#/components/schemas/address'
            schema:
              description: Schema handle identifying the factor type.
              allOf:
                - $ref: '#/components/schemas/address'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    oauth-credentials-signer-factor-data:
      title: OAuthCredentialsSignerFactorData
      description: OAuth client credentials factor for API authentication.
      allOf:
        - type: object
          required:
            - schema
            - signer
          properties:
            signer:
              description: Handle of the signer this factor belongs to.
              allOf:
                - $ref: '#/components/schemas/address'
            schema:
              description: Must be `oauth-client-credentials`.
              type: string
              enum:
                - oauth-client-credentials
            clientId:
              type: string
              description: |
                The OAuth client identifier. It is strongly recommended to omit this field and let the server generate a unique value. Providing a custom value is only permitted when the `signer.factor.oauth.allowClientCredentials` feature flag is enabled; submitting this field while the flag is disabled will result in a validation error.
            clientSecret:
              type: string
              description: |
                The OAuth client secret reference placeholder. It is strongly recommended to omit this field and let the server generate a cryptographically secure value. When providing a custom secret, this field must be set to `{{ secret.clientSecret }}` and the actual secret value must be supplied in `meta.secret.clientSecret`. Providing a custom value is only permitted when the `signer.factor.oauth.allowClientCredentials` feature flag is enabled; submitting a secret while the flag is disabled will result in a validation error.
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    key-pair-signer-factor-data:
      title: KeyPairSignerFactorData
      description: Cryptographic key pair factor for signature-based authentication.
      allOf:
        - type: object
          required:
            - schema
            - signer
            - format
            - public
          properties:
            signer:
              description: Handle of the signer this factor belongs to.
              allOf:
                - $ref: '#/components/schemas/address'
            schema:
              description: Must be `key-pair`.
              type: string
              enum:
                - key-pair
            format:
              description: Key format identifier (e.g. `ed25519-raw`).
              type: string
            public:
              description: Public key encoded in base64.
              type: string
            secret:
              description: Encrypted secret key encoded in base64.
              type: string
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    signer-factor-data:
      title: SignerFactorData
      description: Authentication factor data. The `schema` field determines the factor type and required fields.
      anyOf:
        - $ref: '#/components/schemas/default-signer-factor-data'
        - $ref: '#/components/schemas/oauth-credentials-signer-factor-data'
        - $ref: '#/components/schemas/key-pair-signer-factor-data'
    base-signer-factor-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/signer-factor-data'
    signer-factor-record:
      title: SignerFactorRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-signer-factor-record'
        - $ref: '#/components/schemas/base-record'
    signer-factor-paged-list:
      title: SignerFactorPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/signer-factor-record'
    create-signer-factor-record:
      title: CreateSignerFactorRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-signer-factor-record'
    update-signer-factor-record:
      title: UpdateSignerFactorRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-signer-factor-record'
        - $ref: '#/components/schemas/base-update-record'
    signer-factor-change-record:
      title: SignerFactorChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-signer-factor-record'
        - $ref: '#/components/schemas/base-change-record'
    signer-factor-change-paged-list:
      title: SignerFactorChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/signer-factor-change-record'
    symbol-factor:
      title: SymbolFactor
      description: Decimal conversion factor as a power of 10. For example, 100 means amounts are in cents (2 decimal places).
      type: integer
      minimum: 1
      maximum: 1000000000000000000
      format: power-of-10
      examples:
        - 1
    symbol-data:
      title: SymbolData
      description: Symbol definition including decimal factor for amount conversion.
      allOf:
        - type: object
          required:
            - factor
          properties:
            schema:
              description: Schema handle used to validate this symbol.
              allOf:
                - $ref: '#/components/schemas/address'
            factor:
              description: Decimal conversion factor for translating between integer amounts and display values.
              allOf:
                - $ref: '#/components/schemas/symbol-factor'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-symbol-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/symbol-data'
    symbol-record:
      title: SymbolRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-symbol-record'
        - $ref: '#/components/schemas/base-record'
    symbol-paged-list:
      title: SymbolPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/symbol-record'
    create-symbol-record:
      title: CreateSymbolRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-symbol-record'
    update-symbol-record:
      title: UpdateSymbolRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-symbol-record'
        - $ref: '#/components/schemas/base-update-record'
    symbol-change-record:
      title: SymbolChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-symbol-record'
        - $ref: '#/components/schemas/base-change-record'
    symbol-change-paged-list:
      title: SymbolChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/symbol-change-record'
    request-filter-query:
      title: RequestFilterQuery
      type: object
      additionalProperties:
        description: Filter expression using dot notation and query operators.
      example: {}
    request-schema-enum:
      title: RequestSchemaEnum
      description: Protocol used for the request.
      type: string
      enum:
        - rest
    request-record-enum:
      title: RequestRecordEnum
      description: Record type targeted by the request.
      type: string
      enum:
        - anchor
        - anchor-change
        - anchor-proof
        - bridge
        - bridge-change
        - bridge-proof
        - circle
        - circle-change
        - circle-proof
        - circle-signer
        - domain
        - domain-change
        - domain-proof
        - effect
        - effect-change
        - effect-proof
        - entry
        - event
        - intent
        - intent-change
        - intent-proof
        - ledger
        - ledger-change
        - ledger-proof
        - policy
        - policy-change
        - policy-proof
        - report
        - report-change
        - report-proof
        - request
        - schema
        - schema-change
        - schema-proof
        - signer
        - signer-change
        - signer-proof
        - signer-factor
        - signer-factor-change
        - signer-factor-proof
        - symbol
        - symbol-change
        - symbol-proof
        - wallet
        - wallet-change
        - wallet-proof
    request-action-enum:
      title: RequestActionEnum
      description: API operation that was performed.
      type: string
      enum:
        - abort
        - activate
        - assign-signer
        - commit
        - create
        - drop
        - lookup
        - prepare
        - query
        - query-circle
        - query-signer
        - read
        - read-balance
        - read-limit
        - read-signer
        - remove-signer
        - send
        - update
    rest-params:
      title: RestParams
      description: Captured HTTP request details.
      type: object
      properties:
        method:
          description: HTTP method (e.g. GET, POST, PUT, DELETE).
          type: string
        url:
          description: Request URL path.
          type: string
        headers:
          description: Request headers.
          type: object
        body:
          description: Request body as a string.
          type: string
        moment:
          description: Timestamp when the request was received.
          type: string
          format: date-time
    request-params:
      title: RequestParams
      description: Captured request parameters.
      oneOf:
        - $ref: '#/components/schemas/rest-params'
    rest-result:
      title: RestResult
      description: Captured HTTP response details.
      type: object
      properties:
        status:
          description: HTTP response status code.
          type: integer
        headers:
          description: Response headers.
          type: object
        body:
          description: Response body as a string.
          type: string
        moment:
          description: Timestamp when the response was sent.
          type: string
          format: date-time
    request-result:
      title: RequestResult
      description: Captured response details.
      oneOf:
        - $ref: '#/components/schemas/rest-result'
    request-data:
      title: RequestData
      description: System request journal entry capturing an API operation and its result.
      type: object
      required:
        - handle
        - access
        - schema
        - record
        - action
        - source
        - target
        - params
        - result
      properties:
        handle:
          description: Unique identifier for this request entry.
          allOf:
            - $ref: '#/components/schemas/address'
        parent:
          description: Hash of the previous version. Required for updates to detect conflicts.
          allOf:
            - $ref: '#/components/schemas/hash'
        schema:
          description: Protocol used for the request.
          allOf:
            - $ref: '#/components/schemas/request-schema-enum'
        record:
          description: Record type targeted by the request.
          allOf:
            - $ref: '#/components/schemas/request-record-enum'
        action:
          description: API operation that was performed.
          allOf:
            - $ref: '#/components/schemas/request-action-enum'
        source:
          description: Identifier of the request origin (e.g. signer handle or IP).
          type: string
        target:
          description: Identifier of the target record.
          type: string
        params:
          description: Captured request parameters.
          allOf:
            - $ref: '#/components/schemas/request-params'
        result:
          description: Captured response details.
          allOf:
            - $ref: '#/components/schemas/request-result'
        access:
          description: Access control rules applied to this request.
          allOf:
            - $ref: '#/components/schemas/access'
    base-request-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/request-data'
    request-record:
      title: RequestRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-request-record'
        - $ref: '#/components/schemas/base-record'
    request-paged-list:
      title: RequestPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/request-record'
    wallet-route-action:
      title: RouteAction
      type: string
      description: Determines when this route activates.
      enum:
        - forward
        - accept
        - debit
        - credit
      x-enum-descriptions:
        forward: Create a new intent to forward funds to the target wallet.
        accept: Accept the transaction on this wallet, no further routing.
        debit: Redirect the debit to the target wallet when this wallet is used as a source.
        credit: Reroute the credit to the target wallet within the same intent.
    wallet-route-filter:
      title: RouteFilter
      description: Conditions the claim must match for this route to apply.
      type: object
      additionalProperties:
        description: Match claim fields by value (e.g. symbol.handle, action, amount).
    wallet-route-forward:
      title: ForwardRoute
      description: When this wallet receives a credit, create a new intent to forward the funds to the target wallet.
      required:
        - target
      properties:
        action:
          description: Create a new intent to forward funds to the target wallet.
          enum:
            - forward
        target:
          description: Wallet to forward funds to.
          allOf:
            - $ref: '#/components/schemas/address'
    wallet-route-accept:
      title: AcceptRoute
      description: Accept the transaction on this wallet. Terminates the routing chain.
      properties:
        action:
          description: Accept the transaction on this wallet, no further routing.
          enum:
            - accept
    wallet-route-debit:
      title: DebitRoute
      description: When this wallet is used as a source in a claim, redirect the debit to the target wallet instead.
      required:
        - target
      properties:
        action:
          description: Activates when this wallet is used as a source (debited).
          enum:
            - debit
        target:
          description: Wallet to redirect debits to.
          allOf:
            - $ref: '#/components/schemas/address'
    wallet-route-credit:
      title: CreditRoute
      description: When this wallet receives a credit, reroute it to the target wallet within the same intent.
      required:
        - target
      properties:
        action:
          description: Reroute incoming credits to the target wallet within the same intent.
          enum:
            - credit
        target:
          description: Wallet to redirect credits to.
          allOf:
            - $ref: '#/components/schemas/address'
    wallet-route:
      description: A routing rule that controls how transactions are directed to or from this wallet.
      type: object
      required:
        - action
      allOf:
        - type: object
          properties:
            action:
              description: Route type — forward, accept, debit, or credit.
              allOf:
                - $ref: '#/components/schemas/wallet-route-action'
            filter:
              description: Conditions the claim must match for this route to apply.
              allOf:
                - $ref: '#/components/schemas/wallet-route-filter'
        - oneOf:
            - $ref: '#/components/schemas/wallet-route-forward'
            - $ref: '#/components/schemas/wallet-route-accept'
            - $ref: '#/components/schemas/wallet-route-debit'
            - $ref: '#/components/schemas/wallet-route-credit'
          discriminator:
            propertyName: action
            mapping:
              forward: '#/components/schemas/wallet-route-forward'
              accept: '#/components/schemas/wallet-route-accept'
              debit: '#/components/schemas/wallet-route-debit'
              credit: '#/components/schemas/wallet-route-credit'
    wallet-data:
      title: WalletData
      description: Wallet identity, bridge binding, and routing rules.
      allOf:
        - type: object
          properties:
            handle:
              description: Identifies the wallet. Typically a meaningful value like a phone number, email, or account number in the format schema:identifier@domain.
              allOf:
                - $ref: '#/components/schemas/address'
            schema:
              description: Schema used to validate this wallet.
              allOf:
                - $ref: '#/components/schemas/address'
            bridge:
              description: Bridge that processes balance movements to and from this wallet.
              allOf:
                - $ref: '#/components/schemas/address'
            routes:
              description: Routing rules for automatic funds management. Routes redirect debits or credits to other wallets.
              type: array
              items:
                $ref: '#/components/schemas/wallet-route'
        - $ref: '#/components/schemas/base-data'
      unevaluatedProperties: false
    base-wallet-record:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/wallet-data'
    wallet-record:
      title: WalletRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-wallet-record'
        - $ref: '#/components/schemas/base-record'
    wallet-paged-list:
      title: WalletPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/wallet-record'
    create-wallet-record:
      title: CreateWalletRecord
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - $ref: '#/components/schemas/base-wallet-record'
    update-wallet-record:
      title: UpdateWalletRecord
      allOf:
        - $ref: '#/components/schemas/record-envelope'
        - $ref: '#/components/schemas/base-wallet-record'
        - $ref: '#/components/schemas/base-update-record'
    wallet-balance-data:
      title: WalletBalanceData
      description: Current balance for a wallet and symbol pair.
      type: object
      required:
        - wallet
        - symbol
        - amount
      properties:
        schema:
          description: Schema used to categorize this balance entry.
          allOf:
            - $ref: '#/components/schemas/address'
        wallet:
          description: Handle of the wallet this balance belongs to.
          allOf:
            - $ref: '#/components/schemas/address'
        amount:
          $ref: '#/components/schemas/amount'
        symbol:
          description: Handle of the symbol (currency) for this balance.
          allOf:
            - $ref: '#/components/schemas/address'
    wallet-balance-record:
      title: WalletBalanceRecord
      allOf:
        - $ref: '#/components/schemas/base-record'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/wallet-balance-data'
    wallet-balance-paged-list:
      title: WalletBalancePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/wallet-balance-record'
    wallet-limit-data:
      title: WalletLimitData
      type: object
      required:
        - wallet
        - symbol
        - metric
        - amount
      properties:
        wallet:
          $ref: '#/components/schemas/address'
        symbol:
          $ref: '#/components/schemas/address'
        metric:
          $ref: '#/components/schemas/claim-metric'
        amount:
          $ref: '#/components/schemas/amount'
    wallet-limit-record:
      title: WalletLimitRecord
      allOf:
        - $ref: '#/components/schemas/base-record'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/wallet-limit-data'
    wallet-limit-paged-list:
      title: WalletLimitPagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/wallet-limit-record'
    wallet-anchors-query:
      title: WalletAnchorsQuery
      type: object
      additionalProperties: true
    anchor-list:
      title: AnchorList
      allOf:
        - $ref: '#/components/schemas/base-list'
        - type: object
          required:
            - data
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/anchor-record'
    anchor-lookup-payload-data:
      title: AnchorLookupPayloadData
      description: Search criteria for finding anchors linked to a wallet.
      type: object
      properties:
        schema:
          description: Schema handle to filter anchors by type.
          allOf:
            - $ref: '#/components/schemas/address'
        wallet:
          description: Wallet handle to search anchors for.
          allOf:
            - $ref: '#/components/schemas/address'
        symbol:
          $ref: '#/components/schemas/anchor-symbol'
        target:
          description: Target address to match against anchor targets.
          allOf:
            - $ref: '#/components/schemas/address'
        custom:
          description: Custom metadata fields to match against anchor custom data.
          allOf:
            - $ref: '#/components/schemas/base-custom'
        access:
          description: Access control rules for the lookup request.
          allOf:
            - $ref: '#/components/schemas/access'
    anchor-lookup-payload:
      title: AnchorLookupPayload
      allOf:
        - $ref: '#/components/schemas/base-create-record'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/anchor-lookup-payload-data'
    domain-list:
      title: DomainList
      allOf:
        - $ref: '#/components/schemas/base-list'
        - type: object
          required:
            - data
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/domain-record'
    wallet-change-record:
      title: WalletChangeRecord
      allOf:
        - $ref: '#/components/schemas/change-envelope'
        - $ref: '#/components/schemas/base-wallet-record'
        - $ref: '#/components/schemas/base-change-record'
    wallet-change-paged-list:
      title: WalletChangePagedList
      allOf:
        - $ref: '#/components/schemas/base-paged-list'
        - type: object
          required:
            - data
          properties:
            data:
              description: Array of matching records.
              type: array
              items:
                $ref: '#/components/schemas/wallet-change-record'
  parameters:
    active-ledger:
      name: x-ledger
      in: header
      required: false
      schema:
        oneOf:
          - $ref: '#/components/schemas/handle'
          - $ref: '#/components/schemas/luid'
      description: The unique identifier of ledger in context for multi tenant requests.
      examples:
        placeholder:
          value: <YOUR LEDGER HANDLE>
          summary: Your ledger handle
        ledger-handle:
          value: rtp-ledger
          summary: Example ledger handle
        ledger-luid:
          value: $ldg.--zbjuHydeIP2bszu
          summary: Example LUID for a ledger
    page:
      name: page
      in: query
      schema:
        $ref: '#/components/schemas/page-query'
      description: Pagination options. Set limit and index to page through results.
    anchor-filter:
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/anchor-filter-query'
    ledger-address-identifier:
      name: id
      in: path
      required: true
      schema:
        oneOf:
          - $ref: '#/components/schemas/address'
          - $ref: '#/components/schemas/luid'
      description: The unique identifier of the record - it is luid or handle (address).
      examples:
        placeholder:
          value: <HANDLE>
          summary: Record handle
        signer-handle:
          value: admin
          summary: Example signer handle
        signer-luid:
          value: $snr.-0-eKP5De7kFWdKa-
          summary: Example LUID for a signer
    base-filter:
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/base-filter-query'
      description: Filter by field values using dot notation (e.g. data.handle=value). Operators like $in and $regex are optional — equality is the default.
    change:
      name: change
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/change-number'
      description: The change number of the record
      examples:
        change-3:
          value: 3
          summary: Example change number
    link:
      description: The unique identifier of the record linked - it is luid or handle (address).
      name: link
      in: path
      required: true
      schema:
        oneOf:
          - $ref: '#/components/schemas/address'
          - $ref: '#/components/schemas/luid'
    ledger-handle-identifier:
      description: The unique identifier of the record - it is luid or handle. Tied to multi tenancy.
      name: id
      in: path
      required: true
      schema:
        oneOf:
          - $ref: '#/components/schemas/handle'
          - $ref: '#/components/schemas/luid'
    intent-filter:
      description: Filter by field values using dot notation (e.g. data.handle=value). Operators like $in and $regex are optional — equality is the default.
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/intent-filter-query'
    policy-filter:
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/policy-filter-query'
      description: Filter by field values using dot notation (e.g. data.handle=value). Operators like $in and $regex are optional — equality is the default.
    report-filter:
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/report-filter-query'
    schema-filter:
      description: Query by record type
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/schema-filter-query'
    signer-filter:
      name: filter
      in: query
      schema:
        type: object
        additionalProperties: true
      examples:
        signer-filter-regex-example:
          summary: Example of a signer filter with regex
          value:
            handle.$regex: .*@minka.io
    signer:
      description: The unique identifier of the signer this factor belongs to it is luid or handle (address).
      name: signer
      in: path
      required: true
      schema:
        oneOf:
          - $ref: '#/components/schemas/address'
          - $ref: '#/components/schemas/luid'
    include:
      description: The references to include with the signer factor.
      name: include
      in: query
      schema:
        type: array
        items:
          type: string
          description: The reference to include with the signer factor.
          enum:
            - meta.secret
    request-filter:
      description: Request filter parameters
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/request-filter-query'
    wallet-identifier:
      description: The unique identifier of the wallet record - it is luid or handle (address).
      name: id
      in: path
      required: true
      schema:
        oneOf:
          - $ref: '#/components/schemas/address'
          - $ref: '#/components/schemas/luid'
    wallet-anchors-filter:
      name: filter
      in: query
      schema:
        $ref: '#/components/schemas/wallet-anchors-query'
  examples:
    list-anchors-response:
      summary: List of anchors
      value:
        hash: e4b9fec5c6e1127f8330161a22e2cdf07f5cc63e802df98c4b1bd1beec9ed3ef
        data:
          - luid: $anc.-01xK1rTtU2dS4wX3
            hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
            data:
              handle: tel:+1234567890
              target:
                handle: svgs:1001001234@tesla-bank.com
                custom:
                  name: John Doe
              symbol: usd
              custom:
                title: Personal phone alias
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              proofs:
                - signer: tesla-bank-bridge
                  method: ed25519-v2
                  digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
                  public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
                  result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
                  custom:
                    luid: $anc.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $anc.-01xG39W3rdcCu4gS
            hash: 5225676b9887cf93f2202d395fe57eefee0981097f18c22d54670cf6a8e4ccec
            data:
              handle: tel:+0987654321
              parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
              target:
                handle: svgs:2002002345@nova-bank.com
                custom:
                  name: Jane Smith
              symbol: usd
              custom:
                title: Business phone alias
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - uutTMAKf8JvlLjBQy9VaTBFl3Qy95FDqjSQsN74TeBE=
              proofs:
                - signer: nova-bank-bridge
                  method: ed25519-v2
                  digest: 38c4d3d5d7f2237ad92c9cf279c6175a9dc6b84c8fdc88050120ffd8cabd3a83
                  public: uutTMAKf8JvlLjBQy9VaTBFl3Qy95FDqjSQsN74TeBE=
                  result: tbdhpFV+n6YRLWX7tdm7iRbmlm5OBbmdfCCDNuQFp5iy0UH8oDePchxD/uUTO9eurc+nG4FGLFFT/Oi/P4FgBQ==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 2bf5605f28d07fd6fdb2f7d92d440fb81555f46e7e3c68856d9c994cecc07754
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: S3YstCU7F7zaLeQZQW7nwu5jARu5Ui8jl5xTCG7GbnKhCUChajqUCtdYkeTuzy6IkM1BcJXDft6Ld0qDuGMeAQ==
                  custom:
                    luid: $anc.-01xG39W3rdcCu4gS
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: fc47ef3e6307abd990f9c26fb93182d0e1eb82804b9e10c10ba9e25b1612a723
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: JXLj5lI4ipO8f28EihoJq3N73i6QerJF1ZkABG1WdwMNGB6J3YEczV+AhUIa+AZkgpEg+74WdHvziQ7zHq/MBw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    auth-unauthorized-error:
      summary: Request is not authenticated
      value:
        hash: b7eb7ccf5ffc126951e13e29a8dcfdaf95db859715d4edfc2d16f59a79d4cd58
        data:
          reason: auth.unauthorized
          detail: Invalid token.
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 3acece870c4118bfe4223118e4d2f3cfd5b8947a7093785b66d49aa57fa2890a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: gnK63DqqWDY/UXvnZHixDKPKS6tfeGHgdARylnPiJLwQGyYxuD97TYbSg2wrzsf/bDrHwQYZaf8Gu5ryYP0UAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    auth-forbidden-error:
      summary: Forbidden
      value:
        hash: 9ec02726b50650add8acfd124c6defeb978a9ac252a5de888f9493ddc701e927
        data:
          reason: auth.forbidden
          detail: Request is not authorized
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 4f8cbdc38d73348de0c31805c783c84a0fecc6be736d7e187004ba68cd00e675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: P3hRnveehtuobb4AIO56XBmiduvmYJbpdmOHltG/IifBEH7QSWdv/0pqled4SO9x1Ne3oXuWxJy40DzMvx1MBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    api-request-timeout-error:
      summary: Request timeout
      value:
        hash: bd1e78b47e837376b7994e3e481aa547c110c4d6a1c1d8ecd047cc465edd33bd
        data:
          reason: api.request-timeout
          detail: Processing of request on server timed out. Your request may or may not have been processed.
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: cdf5b09c809ec52934cd76ca3b0aa59310049e3cae8b171aee3cf9e0f98bddb2
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 6h1lhq3TOccWrfIdtOa9pkz9pIHVAN9tyXuNaucvLpbspWACog6HpSAdr0FSwGzn0zAKwx8YppGOVjFhfeBLBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    record-schema-invalid-error:
      summary: Record schema is invalid
      value:
        hash: 1c084e8dcfb9bb84bc8ea96e9e137b149a34b2bbd85f8e60b4263f5aba980476
        data:
          custom:
            errors:
              - instancePath: /handle
                schemaPath: '#/properties/handle/pattern'
                keyword: pattern
                params:
                  pattern: ^[a-zA-Z0-9_\-+.]+$
                message: must match pattern "^[a-zA-Z0-9_\-+.]+$"
          reason: record.schema-invalid
          detail: 'Schema validator error: data.handle must match pattern "^[a-zA-Z0-9_\-+.]+$"'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 7a5febb431719b6f43d7e88e79211308e16ac651b71b339276373fdb4e7c3760
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 2/1zYw4AaIzsIHfOIC6V/CHw6owbjYHt48cwmFOig0ibeT0IbojLmj1RCRi8W00ka0udPa9WsacWDd7ObMY8CA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    crypto-hash-invalid-error:
      summary: Hash is invalid
      value:
        hash: 1640fbd38e602b6315cbf01bb6f924abbe51271084ae3883fd1c660bd249b1e6
        data:
          reason: crypto.hash-invalid
          detail: Hash is invalid
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: db7ca223b1064c829d1962ed44473d9c2f022444565646ffff5eb4ed66f898cc
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: mMHOlkmxz5Gd9cfuqKueiONxOmAWdu+CE2bLm0uCioKZO1KQGlATrqEV81T0+LRlCR2/OOj9LNRTkBM5+30lCw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    record-invalid-error:
      summary: Record is invalid
      value:
        hash: 58a9f34e6ce5c4abb7d3eb9fe9bf382267973c6208dd6d1196cbaecac835eb1d
        data:
          reason: record.invalid
          detail: Address in the request does not match the address in the data
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 497e1eba61c8ea879d5ca9dfe53ff7de2e54f9a4ff4ceb2e930af664399a66bf
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: wVr8flVfstecqHXWAO/vNjp4r3Ea6m9htNcuPcha4UWQXJh/ELMKNjNCoUHaJqQcaFTyB+7IfHRIc9xKHOlwDw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    api-unexpected-error:
      summary: An unexpected error occurred
      value:
        hash: 93a5f4d97a42c2df97f827c58ff7768d02568c15aca931e22b81fa3160ba0df3
        data:
          reason: api.unexpected-error
          detail: An unexpected error occurred
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: efaf5360143b586917d9636779ad6e08571c5b06909a20dd0f5eba4bf3be7eae
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: hERh6Aecj59iR+Fb25OQsHJScOi4t8EiffKSfjlMQdjHMccTnfDlgZFdaJzXzUtpSwy/NHq0l+7ydh3HSWCoAg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    create-anchor-request:
      summary: Create anchor
      value:
        hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        data:
          handle: tel:+1234567890
          target:
            handle: svgs:1001001234@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          proofs:
            - method: ed25519-v2
              digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-anchor-response:
      summary: Created anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        data:
          handle: tel:+1234567890
          target:
            handle: svgs:1001001234@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
              custom:
                luid: $anc.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    record-duplicated-error:
      summary: Record already exists
      value:
        hash: dc973d46dd35baa27b0ec5a107e2ee3a8cc57116d086dd868dd0f044a8de7d92
        data:
          reason: record.duplicated
          detail: Ledger with handle instant-payments already exists.
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 3e1317cc165d132f95ec2f6374890063c162d905d86b33270f97416f8441a872
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: b+0gSDCUzjEKlZQ/c40yqNpZoyQxCFsbV1Ut5/0zM2wM46xmHMBj3qeo3/GDaFD4NgSNm2G8n1f9c9rfvkl3BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    read-anchor-response:
      summary: Read anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        data:
          handle: tel:+1234567890
          target:
            handle: svgs:1001001234@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
              custom:
                luid: $anc.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    record-not-found-error:
      summary: Record not found
      value:
        hash: d6c59a6df7165fa4a75159799ca5f5e26e544cbb8769eced3d35d8021f6f7935
        data:
          reason: record.not-found
          detail: Signer not found
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 78cf86f34aefcf9da6ed4167a38aac0a2739f68f7bafb1d3e033c01ed1b6cdf1
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 9Ledk+/iAAtj+uLjGe2afq4kID7n8UQD6UpRpLBCujxFjxddq0uZ2tnYRTAXmYdHDkbF0uXqtNM9qO3xhEtpAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    update-anchor-request:
      summary: Update anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: 494e7e3d6eb5743eba61ba2982ea0a106bb4d3ff2f79858fdc1cf5855417e89e
        data:
          handle: tel:+1234567890
          parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
          target:
            handle: svgs:2002002345@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          proofs:
            - method: ed25519-v2
              digest: bda131589cef281e5949893dcf1b964bff60c0fb9e7e45e3c04e7a8c6d8908bd
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: JbC304+FyjfKxVmZ4IY76BNPaArhvJkNpwbRVwLRG7mwqFTzrVhGa3vqp6+4LV9HO4wkaCB5kIYTaEtu8cOYDQ==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-anchor-response:
      summary: Updated anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: 494e7e3d6eb5743eba61ba2982ea0a106bb4d3ff2f79858fdc1cf5855417e89e
        data:
          handle: tel:+1234567890
          parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
          target:
            handle: svgs:2002002345@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: bda131589cef281e5949893dcf1b964bff60c0fb9e7e45e3c04e7a8c6d8908bd
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: JbC304+FyjfKxVmZ4IY76BNPaArhvJkNpwbRVwLRG7mwqFTzrVhGa3vqp6+4LV9HO4wkaCB5kIYTaEtu8cOYDQ==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: ca3e55294338c49258be33d9c8898306ce6e7d0da69c553cd9ac689e193f492e
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: v7EHJakuMs6lx0cz6OyrleCIeKRkkFePGGKyADyyGBavqBbAuZDJEQgE9xrjZaU5nJtYwAzWEYRE84+lsy/tCw==
              custom:
                luid: $anc.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.220Z'
    record-relation-not-found-error:
      summary: Record relation not found
      value:
        hash: c275067c2108b61050471d3c3be35038d9e62587d31e2420159fd4ba3a97ce65
        data:
          reason: record.relation-not-found
          detail: Schema trans_details_rep not found for record of type report.
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 319fde81568f652af050fa9a0aa50eaca042c9a7f7ab6fbe0a4884c5af1d520d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Sd7hKWw9q6bkYL431CONTFvX7WYFMOt5iMKcC5Qxazs3ZXLZfS+MnqtJGdlutCGrYYXnBKUmGe6ZY0Lvr8hmDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    drop-anchor-request:
      summary: Drop anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: 3c2e0294825232133d56817507de97d211eb09d794cf5732a417c50724aee235
        data:
          parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        meta:
          proofs:
            - method: ed25519-v2
              digest: d8b07654c5e754c10004d52c552999722e5409f03df10e8841ddd0f9d84b7d18
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: xKqm9Ko0Z5W1EZ+cNJExQ1ZDBj/1E1vvZm6+VDRMxqHrVoB4cgStIDw8xzrpanNOT5ZrsIpTvhimuFCvC8PpAQ==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-anchor-response:
      summary: Drop anchor response
      value: ''
    record-drop-rejected-error:
      summary: Record drop rejected
      value:
        hash: 24c338d9e237d47d36f4386b9115bfe6a182c78f03a684f345db25344d5f8eef
        data:
          custom:
            symbols:
              - usd
          reason: record.drop-rejected
          detail: Cannot drop wallet 'tesla-bank-wallet' with balance different from zero
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: e4fad27ca5c72a0d5f18b6e485087621ca6c688583dd32496746b34b9e07d162
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: CnP6iTpuBLY+gU603b/aiId2hr2ysYbqQxFv3aWn+WMeQ6AOAMLn95mQEGPN7GkrpBbZhg/tMsQRlZ/nRn1hAg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
    sign-anchor-request:
      summary: Sign anchor
      value:
        method: ed25519-v2
        public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
        digest: 7cab700483384522e96c9d907b1ddcdf4defcf11431d521c4490f728eba068e2
        result: zab5yS2TgPJX+vukf5q5ZogjtYJru03zeu6rQaxQqkCxKjBgJF6I7EnVSboA7VlfxVzejJ7FM6v92EEMXOvTBg==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-anchor-response:
      summary: Signed anchor
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        data:
          handle: tel:+1234567890
          target:
            handle: svgs:1001001234@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
              custom:
                luid: $anc.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 7cab700483384522e96c9d907b1ddcdf4defcf11431d521c4490f728eba068e2
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: zab5yS2TgPJX+vukf5q5ZogjtYJru03zeu6rQaxQqkCxKjBgJF6I7EnVSboA7VlfxVzejJ7FM6v92EEMXOvTBg==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    drop-anchor-post-request:
      summary: Drop anchor (POST)
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: 3c2e0294825232133d56817507de97d211eb09d794cf5732a417c50724aee235
        data:
          parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        meta:
          proofs:
            - method: ed25519-v2
              digest: 0f66496e030fd7cae08ea97fee58abd39fd4fe6cb7367f2d06d358dd53942f19
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: BApmX3mNoLoCGZwy5zosaB48ODMisYiWTeW3pDk+GEJCPZD9CsVahhcVH3NxIUiP+daYJXkSMqsSxlyrdEBuAw==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Account closed by customer request
                status: dropped
    drop-anchor-post-response:
      summary: Drop anchor response (POST)
      value: ''
    check-anchor-access-request:
      summary: Check anchor access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yvD60OR9wAXADlmQBZ7ZoI6ALgw5E7D6yEm226QwpocWi0MGufsg08puplLn1c3tVNZqG/j7Qho5DRt8sIWLCQ==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-anchor-access-response:
      summary: Anchor access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-anchor-changes-response:
      summary: List of anchor changes
      value:
        hash: 4a391941b15f411868587d165ad47eb3e9e3478b1246ff7f2eccd55e71e8fed7
        data:
          - luid: $anc.-01xK1rTtU2dS4wX3
            hash: 494e7e3d6eb5743eba61ba2982ea0a106bb4d3ff2f79858fdc1cf5855417e89e
            data:
              handle: tel:+1234567890
              parent: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
              target:
                handle: svgs:2002002345@tesla-bank.com
                custom:
                  name: John Doe
              symbol: usd
              custom:
                title: Personal phone alias
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              proofs:
                - signer: tesla-bank-bridge
                  method: ed25519-v2
                  digest: bda131589cef281e5949893dcf1b964bff60c0fb9e7e45e3c04e7a8c6d8908bd
                  public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
                  result: JbC304+FyjfKxVmZ4IY76BNPaArhvJkNpwbRVwLRG7mwqFTzrVhGa3vqp6+4LV9HO4wkaCB5kIYTaEtu8cOYDQ==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: ca3e55294338c49258be33d9c8898306ce6e7d0da69c553cd9ac689e193f492e
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: v7EHJakuMs6lx0cz6OyrleCIeKRkkFePGGKyADyyGBavqBbAuZDJEQgE9xrjZaU5nJtYwAzWEYRE84+lsy/tCw==
                  custom:
                    luid: $anc.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $anc.-01xK1rTtU2dS4wX3
            hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
            data:
              handle: tel:+1234567890
              target:
                handle: svgs:1001001234@tesla-bank.com
                custom:
                  name: John Doe
              symbol: usd
              custom:
                title: Personal phone alias
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              proofs:
                - signer: tesla-bank-bridge
                  method: ed25519-v2
                  digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
                  public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
                  result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
                  custom:
                    luid: $anc.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: ba6c7736e10d9a9fe191629935f3332212d4eed13e37cb2cb0056e13a67a24b7
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: L9zfCyLkMZIkxrLs01BSqW4HK5isYgVqsvRavphoqHJl41C2sdbSvuEJ7moIQirVHhBLmaD4Iw/QbbvU/qrFAw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-anchor-change-response:
      summary: Read anchor change
      value:
        luid: $anc.-01xK1rTtU2dS4wX3
        hash: dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2
        data:
          handle: tel:+1234567890
          target:
            handle: svgs:1001001234@tesla-bank.com
            custom:
              name: John Doe
          symbol: usd
          custom:
            title: Personal phone alias
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==
              custom:
                luid: $anc.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-bridges-response:
      summary: List of bridges
      value:
        hash: 7c34c4a1fc43bb7f74c00a7ad34f09993051464d92f58a07a7c2ba0a4df9c291
        data:
          - luid: $brg.-01xK2sTuV3eT5xY4
            hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
            data:
              handle: tesla-bank-bridge
              schema: rest
              secure: []
              custom:
                description: Bridge to Tesla Bank API
              config:
                server: https://tesla-bank.com/api/v2
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
                  custom:
                    luid: $brg.-01xK2sTuV3eT5xY4
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $brg.-01xG40X4seDD6yZT
            hash: 37b5ef6ae05653eda9c5f324695c24692ddda4280b30d947fddb10ad1a30f032
            data:
              handle: nova-bank-bridge
              parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
              schema: rest
              secure: []
              custom:
                description: Bridge to Nova Bank API
              config:
                server: https://nova-bank.com/api/v2
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
              proofs:
                - signer: nova-bank-admin
                  method: ed25519-v2
                  digest: 984fd68853077bbd701476528d7bc1fb10578437be322ca01c6ad8792ae2a567
                  public: i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
                  result: geDUWyOBHGBRcakjczoulGkJin/SILgAgb247xoGoQ01k9a4UmDAC/DhIGBr/fIR7kn7AkJW+iE8BPA72IeRCg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 34815e66fd5bc056c1769fcfeb9f85c0e6249bacd492382ea97f7c86607ee784
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: /Ie8FoviJicbfQusAXdUVOBkFHJwZLfWBkU0O1QNKwr+7PLvwSpg80N3EAJnjDLhK6sUH830AVwh9Dkqvhg3CQ==
                  custom:
                    luid: $brg.-01xG40X4seDD6yZT
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 2279cd1a2247336592f02a49402dc8eeaaf57a408c7bc79c62fa0f27cac8e4df
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: q/6jq2yRLmUE51eSDGzwDk3+0rNBrZ1wqW8JGf31UkXVtFM8X90gNA70nfLbfNiuxR/P7KVJwu9/gDcQPs0gBQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-bridge-request:
      summary: Create bridge
      value:
        hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        data:
          handle: tesla-bank-bridge
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v2
        meta:
          proofs:
            - method: ed25519-v2
              digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-bridge-response:
      summary: Created bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        data:
          handle: tesla-bank-bridge
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v2
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
              custom:
                luid: $brg.-01xK2sTuV3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-bridge-response:
      summary: Read bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        data:
          handle: tesla-bank-bridge
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v2
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
              custom:
                luid: $brg.-01xK2sTuV3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-bridge-request:
      summary: Update bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: ce302963ed41656ef23c29513065b72a4cfdfce09d2e23fcfbaa5a49e4fd9a03
        data:
          handle: tesla-bank-bridge
          parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v3
        meta:
          proofs:
            - method: ed25519-v2
              digest: fbbcc4f53de01e3185c982581744f0e8d08e2b59f8d6e3ee52df65d83857406f
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JGsDbek8Xp8dxJ5iyVCVFV1079mtUssfcbOC6n1CfT4cK1jba+Qrky/KoTXT1Q3Uw/iEYGhKSHBG4IofnEm9AA==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-bridge-response:
      summary: Updated bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: ce302963ed41656ef23c29513065b72a4cfdfce09d2e23fcfbaa5a49e4fd9a03
        data:
          handle: tesla-bank-bridge
          parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v3
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: fbbcc4f53de01e3185c982581744f0e8d08e2b59f8d6e3ee52df65d83857406f
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JGsDbek8Xp8dxJ5iyVCVFV1079mtUssfcbOC6n1CfT4cK1jba+Qrky/KoTXT1Q3Uw/iEYGhKSHBG4IofnEm9AA==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: 4f33bccd4ff84ac8d5a7368924e120c5cb5559096affd2a48b814dc3eedb9922
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: bjcnKpIFYh6pJIOh3hnZCgDKl0er2oz4wJXfJYgwHBnW1OnW2bLXI/diBGbWegW/gbIAK1HnKpGC2y21fzPeCw==
              custom:
                luid: $brg.-01xK2sTuV3eT5xY4
                moment: '2025-04-05T14:30:00.220Z'
    drop-bridge-request:
      summary: Drop bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: 35746c220c7ab58d717f97759828c7b7b8cc7be3fa6a35b0e4259a370d82b91f
        data:
          parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        meta:
          proofs:
            - method: ed25519-v2
              digest: fc79818de160a56eb895222a5f7d363f4252ef5fed64f700fec1bad327b23b3b
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: TBCw93QE40otMDi2w5xko/HblauEJzTYSFL4l1LHgdc1YMeztlnIY900NSuNrIyIZFo+mTo/lV/YeSMfzzIgCA==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-bridge-response:
      summary: Drop bridge response
      value: ''
    sign-bridge-response:
      summary: Signed bridge
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        data:
          handle: tesla-bank-bridge
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v2
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
              custom:
                luid: $brg.-01xK2sTuV3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 488d2bcc43c373708b167e35ec7e68220254010b7d4d5f27509a12a0fcde27b4
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: EzYdA0gesXqNSRNysDFD/bnQUGdek2bwRUkMbNmpOsO7uj5nMSe8ouAi1GW3CEpIfmIbXJRrJVww8JYYezpSAg==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    activate-bridge-request:
      summary: Activate bridge
      value:
        hash: f760c5a0ca76979bb16fba1bf1a641875ff8d04d02e7d932bfda9a29c55a0714
        data:
          maxAge: 60
        meta:
          proofs:
            - method: ed25519-v2
              digest: d0a083a609c01d5481a839c7301ac58945a7af2ee2bdfbf65c2719cd9bbcf32a
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0mWjR+NfUBxP4x+/qAn6haDd/31T2N/3zhugUZSn27ESjh/SI6pMEC2FDqGJEGKmDb4D/x/uFQKMSPX2No7BCA==
              custom:
                moment: '2025-04-05T14:30:30.000Z'
    activate-bridge-response:
      summary: Bridge activation accepted
      value: ''
    drop-bridge-post-request:
      summary: Drop bridge (POST)
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: 35746c220c7ab58d717f97759828c7b7b8cc7be3fa6a35b0e4259a370d82b91f
        data:
          parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        meta:
          proofs:
            - method: ed25519-v2
              digest: 34805db211cad731c061113e9970b71eaa72f378005760a41170ddab3e419e78
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: YgbzSDzyTGw0xIbPk80GndEu1lZr+eGlyPAasXeXDtdPlRXWkHA7SC7RhQsuPWfeRyg3U7GDMOVIkvNMdl2ZCA==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Bridge is no longer needed
                status: dropped
    drop-bridge-post-response:
      summary: Drop bridge response (POST)
      value: ''
    check-bridge-access-request:
      summary: Check bridge access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: aVDBsQtDWmvuxtI8vfEOTtZOtZUE+mV+DCX351sVqkkVIshR4uTLO+HNFjFxX2AwsypKRfK09HNIl345CzXkBQ==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-bridge-access-response:
      summary: Bridge access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-bridge-changes-response:
      summary: List of bridge changes
      value:
        hash: 80cca24af41cd667a965a3da74a97e486a51f458f4b308b898f1ed3ca25846cc
        data:
          - luid: $brg.-01xK2sTuV3eT5xY4
            hash: ce302963ed41656ef23c29513065b72a4cfdfce09d2e23fcfbaa5a49e4fd9a03
            data:
              handle: tesla-bank-bridge
              parent: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
              schema: rest
              secure: []
              custom:
                description: Bridge to Tesla Bank API
              config:
                server: https://tesla-bank.com/api/v3
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: fbbcc4f53de01e3185c982581744f0e8d08e2b59f8d6e3ee52df65d83857406f
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: JGsDbek8Xp8dxJ5iyVCVFV1079mtUssfcbOC6n1CfT4cK1jba+Qrky/KoTXT1Q3Uw/iEYGhKSHBG4IofnEm9AA==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: 4f33bccd4ff84ac8d5a7368924e120c5cb5559096affd2a48b814dc3eedb9922
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: bjcnKpIFYh6pJIOh3hnZCgDKl0er2oz4wJXfJYgwHBnW1OnW2bLXI/diBGbWegW/gbIAK1HnKpGC2y21fzPeCw==
                  custom:
                    luid: $brg.-01xK2sTuV3eT5xY4
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $brg.-01xK2sTuV3eT5xY4
            hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
            data:
              handle: tesla-bank-bridge
              schema: rest
              secure: []
              custom:
                description: Bridge to Tesla Bank API
              config:
                server: https://tesla-bank.com/api/v2
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
                  custom:
                    luid: $brg.-01xK2sTuV3eT5xY4
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 21cd3ff58d6efa34d12b7094be16bcd17e2d13cb21ad8fb0fdbf7411ab0ea2b2
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: JyN3jx4G4D9UqumDQQkekPGHmDH/pp/WIUgUBvKH0v/UAXcUmegUSW2pBuuksSs0II/5qlvIjT/QpMlwCmPWDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-bridge-change-response:
      summary: Read bridge change
      value:
        luid: $brg.-01xK2sTuV3eT5xY4
        hash: a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a
        data:
          handle: tesla-bank-bridge
          schema: rest
          secure: []
          custom:
            description: Bridge to Tesla Bank API
          config:
            server: https://tesla-bank.com/api/v2
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==
              custom:
                luid: $brg.-01xK2sTuV3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-circles-response:
      summary: List of circles
      value:
        hash: 80deca2bc1f44536f688817591d2d57a9a23ad69d27ed24d65308c6083428618
        data:
          - luid: $crc.-01xK3tUvW4fU6yZ5
            hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
            data:
              handle: admin
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
                  custom:
                    luid: $crc.-01xK3tUvW4fU6yZ5
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $crc.-01xG51Y5tfEE7zA5
            hash: c294641489a98dc07edff0d3492098392cf368ec64340eb430b6bbc05385f9c9
            data:
              handle: support
              parent: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
              custom:
                description: Support team access circle
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 4ca7eafe2800aff93e445ebc3ddde97704ea034e6cda7a408d5597d0487a45f9
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: ZF5BWY4Bqt5yPjEQFeOsjN7g72L9k2ZOMWlYXKjktyjf1N99ThTMVA06n81R47VjBz5xrXZP2OW9kihsmfjNAw==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: a7b9467a3acf2f9b302f9fe341382883861049e74872353aa3c7419fe1ce3034
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: /n4fj5MOrbOwzzDNbXVv7xkdlLBboW7+ewjIUB0Z8u5AWw52WMwtH6oSargmIOoOOH3DPd2uVeKsVY3EJ1ixCw==
                  custom:
                    luid: $crc.-01xG51Y5tfEE7zA5
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 25a597505241e058ed2503fcada7a157f4d22a5d7f556a6daa0ceab58a682a32
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: qsY5HJu3s0V/5fp0GDmH5Hm6yUqLgGvsgUv6ESKLn2e09EO9JeDQCwp9KpRzSD3Z2EXYcUqnohY7iFhq89JjCQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-circle-request:
      summary: Create circle
      value:
        hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
        data:
          handle: admin
        meta:
          proofs:
            - method: ed25519-v2
              digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-circle-response:
      summary: Created circle
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
        data:
          handle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
              custom:
                luid: $crc.-01xK3tUvW4fU6yZ5
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-circle-response:
      summary: Read circle
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
        data:
          handle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
              custom:
                luid: $crc.-01xK3tUvW4fU6yZ5
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-circle-request:
      summary: Update circle
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: f5f460dface7a8ecb37db8d9241b0fe447ee76a120dcdeb7944351ca2f0cf71b
        data:
          handle: admin
          parent: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
          custom:
            description: Administrative access circle
        meta:
          proofs:
            - method: ed25519-v2
              digest: e21c4a25dbdd88dd258036bcba71c42fa60d6476a727119e28287c749b9fc317
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: Y2Q45F1SsrE3JoaCb3c5zb9EMBOfwemADV3MhNCK3hvpRVRioMO6EOjN/TUMLlBjHF/vcX/Gp2KGtiAQTPx2DQ==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-circle-response:
      summary: Updated circle
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: f5f460dface7a8ecb37db8d9241b0fe447ee76a120dcdeb7944351ca2f0cf71b
        data:
          handle: admin
          parent: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
          custom:
            description: Administrative access circle
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: e21c4a25dbdd88dd258036bcba71c42fa60d6476a727119e28287c749b9fc317
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: Y2Q45F1SsrE3JoaCb3c5zb9EMBOfwemADV3MhNCK3hvpRVRioMO6EOjN/TUMLlBjHF/vcX/Gp2KGtiAQTPx2DQ==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: 34fadda874704fefafb8c1fac76aaea5a381ccbb42ccb342da4595c36f8cb0d3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 6IAMd+phi7kJYJLqHmxXeuD55TiMjuoZITNK5Drld0S4myaK7lxZH14cEfAFrWFqBONl4f5QoL5w3tQksJq3DQ==
              custom:
                luid: $crc.-01xK3tUvW4fU6yZ5
                moment: '2025-04-05T14:30:00.220Z'
    sign-circle-request:
      summary: Sign circle
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 5c018d0f301e5932a36e5b93e3b55c40a9abd7819a20c8dc4eda5d32584858cd
        result: +SIeD8ySZI2JZetBGqVLd1tJT+R+fd6Ya18lVqOwxIa5a3b78vku9hePaFHqjosEzx2F3gtderXpWtOMmEoTDA==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-circle-response:
      summary: Signed circle
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
        data:
          handle: admin
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
              custom:
                luid: $crc.-01xK3tUvW4fU6yZ5
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 5c018d0f301e5932a36e5b93e3b55c40a9abd7819a20c8dc4eda5d32584858cd
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: +SIeD8ySZI2JZetBGqVLd1tJT+R+fd6Ya18lVqOwxIa5a3b78vku9hePaFHqjosEzx2F3gtderXpWtOMmEoTDA==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    list-circle-signers-response:
      summary: Circle signers
      value:
        hash: cf9beff1a88d9612ce1214a945349105604ed4c2faa394ad0d46d61362ae8a23
        data:
          - luid: $csn.-01xK4uVwX5gV7zA6
            hash: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
            data:
              signer: jane@tesla-bank.com
              circle: admin
            meta:
              status: created
              moment: '2025-04-05T14:30:00.620Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 20f370ce60f9ea5d8c0f73e083d1a232fb94138fc322503a4692e4a7a5b105f3
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 8rri2u828cpMrTaY48sRGpz294mdNLyD3f+747BeDy95WR6Ab9BmiyJAERz3DcATldy/mvHIko+fD7/VpVJZDg==
                  custom:
                    moment: '2025-04-05T14:30:00.600Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 67bb5cbf3b03bfbef1cda2f66da4c503db3656963bc0e5752b149472dd4dca98
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: qx1T8LMcml2u/xxFewmgmOhVrP5VVumTYxaDVaL4ZUCpDdnjZohN88dW5mk2yM94r2NgWa3Yncjv5U2FZqqeDw==
                  custom:
                    luid: $csn.-01xK4uVwX5gV7zA6
                    moment: '2025-04-05T14:30:00.620Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 05693419942855bd15291a2d1b83f7706c122cfe89a0d300d4e16e146b446158
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: Isg/aPPybXzAaQkyoDpLincYHrxbS11vU9eh5ZPCqCsqIT5GhCwsYXpu2ctuPXKrJ9mzPJn1d+8TzHAQpfzfCg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    assign-circle-signers-request:
      summary: Assign circle signer
      value:
        hash: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
        data:
          signer: jane@tesla-bank.com
          circle: admin
        meta:
          proofs:
            - method: ed25519-v2
              digest: 20f370ce60f9ea5d8c0f73e083d1a232fb94138fc322503a4692e4a7a5b105f3
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 8rri2u828cpMrTaY48sRGpz294mdNLyD3f+747BeDy95WR6Ab9BmiyJAERz3DcATldy/mvHIko+fD7/VpVJZDg==
              custom:
                moment: '2025-04-05T14:30:00.600Z'
                status: created
    assign-circle-signers-response:
      summary: Assigned circle signer
      value:
        luid: $csn.-01xK4uVwX5gV7zA6
        hash: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
        data:
          signer: jane@tesla-bank.com
          circle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.620Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 20f370ce60f9ea5d8c0f73e083d1a232fb94138fc322503a4692e4a7a5b105f3
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 8rri2u828cpMrTaY48sRGpz294mdNLyD3f+747BeDy95WR6Ab9BmiyJAERz3DcATldy/mvHIko+fD7/VpVJZDg==
              custom:
                moment: '2025-04-05T14:30:00.600Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 67bb5cbf3b03bfbef1cda2f66da4c503db3656963bc0e5752b149472dd4dca98
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: qx1T8LMcml2u/xxFewmgmOhVrP5VVumTYxaDVaL4ZUCpDdnjZohN88dW5mk2yM94r2NgWa3Yncjv5U2FZqqeDw==
              custom:
                luid: $csn.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.620Z'
                status: created
    read-circle-signers-link-response:
      summary: Circle signer link
      value:
        luid: $csn.-01xK4uVwX5gV7zA6
        hash: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
        data:
          signer: jane@tesla-bank.com
          circle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.620Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 20f370ce60f9ea5d8c0f73e083d1a232fb94138fc322503a4692e4a7a5b105f3
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 8rri2u828cpMrTaY48sRGpz294mdNLyD3f+747BeDy95WR6Ab9BmiyJAERz3DcATldy/mvHIko+fD7/VpVJZDg==
              custom:
                moment: '2025-04-05T14:30:00.600Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 67bb5cbf3b03bfbef1cda2f66da4c503db3656963bc0e5752b149472dd4dca98
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: qx1T8LMcml2u/xxFewmgmOhVrP5VVumTYxaDVaL4ZUCpDdnjZohN88dW5mk2yM94r2NgWa3Yncjv5U2FZqqeDw==
              custom:
                luid: $csn.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.620Z'
                status: created
    drop-circle-signers-link-request:
      summary: Drop circle signer link
      value:
        luid: $csn.-01xK4uVwX5gV7zA6
        hash: 9291ae5600beac5b1761bb6bda0977ce6b4100757b11039b858ffe20a1e5eb4a
        data:
          parent: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
        meta:
          proofs:
            - method: ed25519-v2
              digest: b8418b6d01e97a95e6ca6bf70d4224f59aa8a7a71ed384be334ae79e35d176fb
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: S2yuT6XAQeKA2iliIVSFB5M4vACzEMJ0JTFuMha5luwdyrjNWQvxJ9sI1jVwwygi3qf/D5E3aW0PFJEcl+vpAA==
              custom:
                moment: '2025-04-05T14:30:00.700Z'
                status: dropped
    drop-circle-signers-link-response:
      summary: Drop circle signer link response
      value: ''
    drop-circle-signers-link-post-request:
      summary: Drop circle signer link (POST)
      value:
        luid: $csn.-01xK4uVwX5gV7zA6
        hash: 9291ae5600beac5b1761bb6bda0977ce6b4100757b11039b858ffe20a1e5eb4a
        data:
          parent: 010f2d275abd1a6cd69dd0d7618764365c9232335389b41959013c3ffdd09e15
        meta:
          proofs:
            - method: ed25519-v2
              digest: 1134984e3fe772816e006cd993c4b2a021cadc4a7ff08cdd0bef9057224eef0e
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: gYCWF6UYyZRQpk3NKmCwwkwx2FzSPfZ9FljJFHpKAZeejSFJ5V0VS8wlcNysjK2vI2NXZqU79Mj9TSzt1DHmAw==
              custom:
                moment: '2025-04-05T14:30:00.700Z'
                reason: User no longer requires administrative access
                status: dropped
    drop-circle-signers-link-post-response:
      summary: Drop circle signer link response (POST)
      value: ''
    check-circle-access-request:
      summary: Check circle access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-circle-access-response:
      summary: Circle access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-circle-changes-response:
      summary: List of circle changes
      value:
        hash: 91cb67f2fdb3d593f40cfe9231a9e355ef802e40c03891492947213b4999c368
        data:
          - luid: $crc.-01xK3tUvW4fU6yZ5
            hash: f5f460dface7a8ecb37db8d9241b0fe447ee76a120dcdeb7944351ca2f0cf71b
            data:
              handle: admin
              parent: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
              custom:
                description: Administrative access circle
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: e21c4a25dbdd88dd258036bcba71c42fa60d6476a727119e28287c749b9fc317
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: Y2Q45F1SsrE3JoaCb3c5zb9EMBOfwemADV3MhNCK3hvpRVRioMO6EOjN/TUMLlBjHF/vcX/Gp2KGtiAQTPx2DQ==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: 34fadda874704fefafb8c1fac76aaea5a381ccbb42ccb342da4595c36f8cb0d3
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 6IAMd+phi7kJYJLqHmxXeuD55TiMjuoZITNK5Drld0S4myaK7lxZH14cEfAFrWFqBONl4f5QoL5w3tQksJq3DQ==
                  custom:
                    luid: $crc.-01xK3tUvW4fU6yZ5
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $crc.-01xK3tUvW4fU6yZ5
            hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
            data:
              handle: admin
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
                  custom:
                    luid: $crc.-01xK3tUvW4fU6yZ5
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: aa3d169029be4ffa45769d46befc1c4cf1a16a5eb8e0b8da1c5d356b8ed41e80
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: PMAijBY3/pI+VwFshUX7YWdrBQv/oFeUpF0FR4WCrddI4QveVQKLr4Mz72MLRtqIkofQ9fynR8ic3OkkEFZGAw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-circle-change-response:
      summary: Read circle change
      value:
        luid: $crc.-01xK3tUvW4fU6yZ5
        hash: 855bc7d94e12eb5ed2f58af16dd6dbcedeeb2d3f80340d9fbc8976fd1c31dc7c
        data:
          handle: admin
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 4ad98da772474baaba41b5425773586cd23f1e8d7514b7b7776012842c446953
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YZyvyq8MGm3X35i7J31JlPVbGwekquXAw+nL6M0JiU3H7Dxcg/de2rd3cCSwYywxq5+5rBvCl38g+gdrJs9nAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 2bee4f906deb32ffd75b7e1d88f0d45fafdf6d658cfd1d68bcb890e020b3915c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 28PT93eVJSWAlNPZtX7yMz/ykDCxQ0YDtgVwV6WfsIBk0nQvRFqsqXurxbLCJfTj2IcbE0b5MdAcfS8stOZ+Ag==
              custom:
                luid: $crc.-01xK3tUvW4fU6yZ5
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-domains-response:
      summary: List of domains
      value:
        hash: f3b60dc2a8367da1f0e7b637143a29b1094d6d87328fdb046273239e1c456876
        data:
          - luid: $dom.-01xK4uVwX5gV7zA6
            hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
            data:
              handle: tesla-bank.com
              custom:
                bankName: Tesla Bank
                bankBic: TSLAUS33
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
                  custom:
                    luid: $dom.-01xK4uVwX5gV7zA6
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $dom.-01xG62Z6ugFF8AB6
            hash: 43acf06b788dee316a82de085627830afbbf44fdfdf17d3f649ffdecedd82902
            data:
              handle: nova-bank.com
              parent: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
              custom:
                bankName: Nova Bank
                bankBic: NOVAUS44
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 2c36bed3007379245fc248191f8cd79ac597756ad8b2d19f7d2a4901f63a33e2
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: tae0RXwuwpPd3rm2MC1pRkeO8iEIrTYUhydZs1SD71BMMe4uSMougxl4jB0aqXNKCueBm5/lbiZ/l2po87ELBg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 1090b095aaa0185b3ea1d9d84143e7878f7f129c5cf451f1716fb4ffab78e4c1
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: H2qI5hjpBifek+luNM6FMKmY+HrPQYIcA3Fo6CaPXJr3D4w9YwKk/+2LdUgRmGQOcKYxCRjAeDXo5UIhJpQYAA==
                  custom:
                    luid: $dom.-01xG62Z6ugFF8AB6
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 6b67e4ad9f38007864fc0a8d49a8d28b036fff7d5f564ce13aa347098cae6d03
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 10A3R06xsOJXWDLL7bJxRi9Ed+QXxp0CBcVV5bZR80rk0O2PpQ/kb/SkwYDYAW8nkB+dvcXaNfFRfARG4QEyDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-domain-request:
      summary: Create domain
      value:
        hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
        data:
          handle: tesla-bank.com
          custom:
            bankName: Tesla Bank
            bankBic: TSLAUS33
        meta:
          proofs:
            - method: ed25519-v2
              digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-domain-response:
      summary: Created domain
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
        data:
          handle: tesla-bank.com
          custom:
            bankName: Tesla Bank
            bankBic: TSLAUS33
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
              custom:
                luid: $dom.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-domain-response:
      summary: Read domain
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
        data:
          handle: tesla-bank.com
          custom:
            bankName: Tesla Bank
            bankBic: TSLAUS33
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
              custom:
                luid: $dom.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-domain-request:
      summary: Update domain
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 5ab81315f87e50a47a3379a6b57e6d092481f619b0fd77e4fef0dc1babb9c4f7
        data:
          handle: tesla-bank.com
          parent: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
          custom:
            bankName: Tesla Bank International
            bankBic: TSLAUS33
        meta:
          proofs:
            - method: ed25519-v2
              digest: f998b0512744c8289218b32eed75503575354e227d151b70448e706b46314ba7
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YKoOkWhJpmAvQFSdxQgicaIs+mzT39xw+xpdlBV/cfuDyJNjVw9siycRdAeD2aYYnYGSbNnrwxlytRT1/8diAw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-domain-response:
      summary: Updated domain
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 5ab81315f87e50a47a3379a6b57e6d092481f619b0fd77e4fef0dc1babb9c4f7
        data:
          handle: tesla-bank.com
          parent: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
          custom:
            bankName: Tesla Bank International
            bankBic: TSLAUS33
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: f998b0512744c8289218b32eed75503575354e227d151b70448e706b46314ba7
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: YKoOkWhJpmAvQFSdxQgicaIs+mzT39xw+xpdlBV/cfuDyJNjVw9siycRdAeD2aYYnYGSbNnrwxlytRT1/8diAw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: d59551f270a83b6ad0ec45e6bb8ad3c513a145cc837c870500cdc0dc131cd6d6
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 9EtxLbzSi5xW3G3mLWusOqqsbCcYHNd96R2waRF1pkwdHvpltOddrEAUtHl9UKDcHnePXFJh64BCVxc+9NlZCQ==
              custom:
                luid: $dom.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.220Z'
    sign-domain-request:
      summary: Sign domain
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: c5b52ca52d47aae3c4902b8b2b9a7f7a5ab8c10133e4eaddb8d419244dd8ab20
        result: Y2WYjWHYrfsqqmT0NxKeVMDbcyMBFJmaZOzGqKn/eMjRveAI/wnDcTsVw2rKH27da1+uM627yIItKBuFAN5jDw==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-domain-response:
      summary: Signed domain
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
        data:
          handle: tesla-bank.com
          custom:
            bankName: Tesla Bank
            bankBic: TSLAUS33
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
              custom:
                luid: $dom.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: c5b52ca52d47aae3c4902b8b2b9a7f7a5ab8c10133e4eaddb8d419244dd8ab20
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: Y2WYjWHYrfsqqmT0NxKeVMDbcyMBFJmaZOzGqKn/eMjRveAI/wnDcTsVw2rKH27da1+uM627yIItKBuFAN5jDw==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-domain-access-request:
      summary: Check domain access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-domain-access-response:
      summary: Domain access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-domain-changes-response:
      summary: List of domain changes
      value:
        hash: 2cf39a6833cef3cfaa6e7a32343ea95eb6ae9b39c0fcf4e807e82b49d4881530
        data:
          - luid: $dom.-01xK4uVwX5gV7zA6
            hash: 5ab81315f87e50a47a3379a6b57e6d092481f619b0fd77e4fef0dc1babb9c4f7
            data:
              handle: tesla-bank.com
              parent: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
              custom:
                bankName: Tesla Bank International
                bankBic: TSLAUS33
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: f998b0512744c8289218b32eed75503575354e227d151b70448e706b46314ba7
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: YKoOkWhJpmAvQFSdxQgicaIs+mzT39xw+xpdlBV/cfuDyJNjVw9siycRdAeD2aYYnYGSbNnrwxlytRT1/8diAw==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: d59551f270a83b6ad0ec45e6bb8ad3c513a145cc837c870500cdc0dc131cd6d6
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 9EtxLbzSi5xW3G3mLWusOqqsbCcYHNd96R2waRF1pkwdHvpltOddrEAUtHl9UKDcHnePXFJh64BCVxc+9NlZCQ==
                  custom:
                    luid: $dom.-01xK4uVwX5gV7zA6
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $dom.-01xK4uVwX5gV7zA6
            hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
            data:
              handle: tesla-bank.com
              custom:
                bankName: Tesla Bank
                bankBic: TSLAUS33
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
                  custom:
                    luid: $dom.-01xK4uVwX5gV7zA6
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 6e5098c8f73a4af560b7b0ab1eb082733a974bfddb67dea862e7836b9d5fbf01
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: mSLSPxG/1fuUdJQIR4/xmJxd6apg2KCaECokS/+fQk5gyXm+8sTeVnDeEUyDZmlhYyQpKtkiZxszIEcU0LCYAw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-domain-change-response:
      summary: Read domain change
      value:
        luid: $dom.-01xK4uVwX5gV7zA6
        hash: 34840f243d74b9da80d744bf08909adc9532539132e65d4d631c9072b6d6b7dd
        data:
          handle: tesla-bank.com
          custom:
            bankName: Tesla Bank
            bankBic: TSLAUS33
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: a38ace2e332c00b1f7550c71630b58e2adaac4c2a204d5b7238f8166e6ad7e66
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: I0175IGwkLZDnCSOKphn9oW8Jo6/8LuvT7q7tP0qFXa/30u+Cg/rn2eOkxO1wN5O7nYK5MqFDxSSCvbVEWzeAQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: f85f5c1f3f39ac570a0d7d454c98f071d4d2f9e1f4d3a19e2e81e305c30b11c1
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rPCZ3/RKUw3/KDEgEnu/kCswvkh6ttJb8ccB1pBzIDkbYVShNjt6/pmo6rK+Kb1i7NKGcgS9AGKSnZDgy1OlCA==
              custom:
                luid: $dom.-01xK4uVwX5gV7zA6
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-effects-response:
      summary: List of effects
      value:
        hash: 86b784a2deaef26f37f8485391fc1c203d7cab7ff86cc8c6184b590aa82617da
        data:
          - luid: $eff.-01xK5vWxY6hW8AB7
            hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
            data:
              handle: intent-created
              signal: intent-created
              action:
                bridge: tesla-bank-bridge
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
                  custom:
                    luid: $eff.-01xK5vWxY6hW8AB7
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $eff.-01xG73A7vhGG9BC7
            hash: 12e9361954aec5d5bd05b2aa1d1ecbfcb8bc393253b5e9aed155089c738ea3d2
            data:
              handle: wallet-created
              parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
              signal: wallet-created
              filter:
                wallet.data.schema: bank
              action:
                bridge: nova-bank-bridge
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
              proofs:
                - signer: nova-bank-admin
                  method: ed25519-v2
                  digest: 990b0b20403417ded3d03b6fc1424c9e73c4a4a080f5aebf294944eb81ff461d
                  public: i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
                  result: TQ115Pc0SEotTpi4b7C0q/AXhYuJoxJdyJ9kWS8JESpSFLoxyQWmUcn5Rjjf7fXggX1FTKObrk3yTvN9FwiGDg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 4e565bba038067fcfd2726fe6f1b4c409e91abbd89af9cd8844ae0ed76e52e36
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: NITCeTw8aGJgkodAfAhyUe/azTIrYyxpoAsd2e2KrGT0WLpTHio+j+4NZBCo/yTbXZNeOYaF6IjspZV1ZYFFCg==
                  custom:
                    luid: $eff.-01xG73A7vhGG9BC7
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: e6d5a89f1a0dd0a81c0039751651fa26e4d462f92f45302231d6a9b6c9466849
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: bqxQSOI8Efy4iP0vqn89AZkq0EXNCb/2iLLvKWD+H+2CZhcRHzP9zoox7SQzRdiBOr+kd3iV1+oRHpTR8mNIBQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-effect-request:
      summary: Create effect
      value:
        hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        data:
          handle: intent-created
          signal: intent-created
          action:
            bridge: tesla-bank-bridge
        meta:
          proofs:
            - method: ed25519-v2
              digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-effect-response:
      summary: Created effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        data:
          handle: intent-created
          signal: intent-created
          action:
            bridge: tesla-bank-bridge
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
              custom:
                luid: $eff.-01xK5vWxY6hW8AB7
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-effect-response:
      summary: Read effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        data:
          handle: intent-created
          signal: intent-created
          action:
            bridge: tesla-bank-bridge
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
              custom:
                luid: $eff.-01xK5vWxY6hW8AB7
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-effect-request:
      summary: Update effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 47554932fdcee9f4d82865ccc40e9fa720710f5f5bdd40fabbf211b8094f5597
        data:
          handle: intent-created
          parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
          signal: intent-created
          filter:
            intent.data.claims.symbol.handle: usd
          action:
            bridge: tesla-bank-bridge
        meta:
          proofs:
            - method: ed25519-v2
              digest: a5d48f6f6f590a6375840d8070700b9065bf166a0eb9bda46928d8ae0ee5b8a6
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: j9PMqZtRdxhG9cueHuG09EbWR/gNAZDJ6kAQcWFSwM3XTGFoFb1MUL6TgRHbGd4KyDqUXPuthrbL6KeutL9uCw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-effect-response:
      summary: Updated effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 47554932fdcee9f4d82865ccc40e9fa720710f5f5bdd40fabbf211b8094f5597
        data:
          handle: intent-created
          parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
          signal: intent-created
          filter:
            intent.data.claims.symbol.handle: usd
          action:
            bridge: tesla-bank-bridge
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: a5d48f6f6f590a6375840d8070700b9065bf166a0eb9bda46928d8ae0ee5b8a6
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: j9PMqZtRdxhG9cueHuG09EbWR/gNAZDJ6kAQcWFSwM3XTGFoFb1MUL6TgRHbGd4KyDqUXPuthrbL6KeutL9uCw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: 872fba2485e5fec5ab6a986cf8f0e04c1feaf1aee4eae82a57900cee687e9537
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LQaTn8W2bhnITgeSTzl97GNurC5+mSg1MmOuXwbMT58WLCSPj7hWuBHahV7ue/Yja4YxXcQfVchHhhgEPiSgAg==
              custom:
                luid: $eff.-01xK5vWxY6hW8AB7
                moment: '2025-04-05T14:30:00.220Z'
    drop-effect-request:
      summary: Drop effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 724ce5a659f90cea590b97bac9b2650c07680dd36bad67adf7deb30f35b5cee1
        data:
          parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        meta:
          proofs:
            - method: ed25519-v2
              digest: fec48fcd958fca71aa7d0352f1788b2aa14f299e3ffe090f0a4995634fdfb338
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: zMscrxEtNSlqCt2UhyLXK4kByX+EbnY4iHvOFHJZEaKvoGXQ33s/zkatjEiUGAgYA8bwWJoilEaS0A0qBY6/AQ==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-effect-response:
      summary: Drop effect response
      value: ''
    sign-effect-request:
      summary: Sign effect
      value:
        method: ed25519-v2
        public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
        digest: 2e2b19bada02b52d515497f47e822cf2ed4769d89c6f0c0d8810a49392a152df
        result: RtFQHJNJdqh4BJa/3+JWK9imb8Y1baUn3tQpk69L1jbYhS9TtU1Tv4zMgIWSY8OrRTSpD5wv2E2/dTMTotXeDQ==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: approved
    sign-effect-response:
      summary: Signed effect
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        data:
          handle: intent-created
          signal: intent-created
          action:
            bridge: tesla-bank-bridge
        meta:
          status: approved
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
              custom:
                luid: $eff.-01xK5vWxY6hW8AB7
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 2e2b19bada02b52d515497f47e822cf2ed4769d89c6f0c0d8810a49392a152df
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: RtFQHJNJdqh4BJa/3+JWK9imb8Y1baUn3tQpk69L1jbYhS9TtU1Tv4zMgIWSY8OrRTSpD5wv2E2/dTMTotXeDQ==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: approved
    activate-effect-request:
      summary: Activate effect
      value:
        hash: f760c5a0ca76979bb16fba1bf1a641875ff8d04d02e7d932bfda9a29c55a0714
        data:
          maxAge: 60
        meta:
          proofs:
            - method: ed25519-v2
              digest: d0a083a609c01d5481a839c7301ac58945a7af2ee2bdfbf65c2719cd9bbcf32a
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0mWjR+NfUBxP4x+/qAn6haDd/31T2N/3zhugUZSn27ESjh/SI6pMEC2FDqGJEGKmDb4D/x/uFQKMSPX2No7BCA==
              custom:
                moment: '2025-04-05T14:30:30.000Z'
    activate-effect-response:
      summary: Effect activation accepted
      value: ''
    drop-effect-post-request:
      summary: Drop effect (POST)
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 724ce5a659f90cea590b97bac9b2650c07680dd36bad67adf7deb30f35b5cee1
        data:
          parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        meta:
          proofs:
            - method: ed25519-v2
              digest: 918d11b25b83b26b66f311410f489a4674ffbf2a261e8496c74940dc43f55c33
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 6Imo25RrBZRN+hkue6R/OGeDGrd5XD21EUEL4n7pIjDLNTkMPphIr8UrfLCbO8cyByC39M4+e+7HgYxt2AtaDA==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Effect is no longer needed
                status: dropped
    drop-effect-post-response:
      summary: Drop effect response (POST)
      value: ''
    check-effect-access-request:
      summary: Check effect access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: aVDBsQtDWmvuxtI8vfEOTtZOtZUE+mV+DCX351sVqkkVIshR4uTLO+HNFjFxX2AwsypKRfK09HNIl345CzXkBQ==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-effect-access-response:
      summary: Effect access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-effect-changes-response:
      summary: List of effect changes
      value:
        hash: 0cad86ee82f0c4db852c3ba2500fa4d1ae96da8df31856ed654ee3e4cdbb74ae
        data:
          - luid: $eff.-01xK5vWxY6hW8AB7
            hash: 47554932fdcee9f4d82865ccc40e9fa720710f5f5bdd40fabbf211b8094f5597
            data:
              handle: intent-created
              parent: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
              signal: intent-created
              filter:
                intent.data.claims.symbol.handle: usd
              action:
                bridge: tesla-bank-bridge
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: a5d48f6f6f590a6375840d8070700b9065bf166a0eb9bda46928d8ae0ee5b8a6
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: j9PMqZtRdxhG9cueHuG09EbWR/gNAZDJ6kAQcWFSwM3XTGFoFb1MUL6TgRHbGd4KyDqUXPuthrbL6KeutL9uCw==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: 872fba2485e5fec5ab6a986cf8f0e04c1feaf1aee4eae82a57900cee687e9537
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LQaTn8W2bhnITgeSTzl97GNurC5+mSg1MmOuXwbMT58WLCSPj7hWuBHahV7ue/Yja4YxXcQfVchHhhgEPiSgAg==
                  custom:
                    luid: $eff.-01xK5vWxY6hW8AB7
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $eff.-01xK5vWxY6hW8AB7
            hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
            data:
              handle: intent-created
              signal: intent-created
              action:
                bridge: tesla-bank-bridge
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
                  custom:
                    luid: $eff.-01xK5vWxY6hW8AB7
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: f8d42c77f6cb02686db522383aa3ce59b72d9f722b9ce1d24ea2265fd99163b8
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: +N6Mq7oCWYIkaY069LgDbH4dfHdp0JGtT1UwLBMFGPyafS1SXcvBsUIQMzk1yXrruDdTcv4aO9Q7D0P3Yg3EAA==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-effect-change-response:
      summary: Read effect change
      value:
        luid: $eff.-01xK5vWxY6hW8AB7
        hash: 92a858f132198ba17f4e9bafbfd2fa55f521236cb4780e2cb335f02c29840d55
        data:
          handle: intent-created
          signal: intent-created
          action:
            bridge: tesla-bank-bridge
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 4002631f636059f68e31bc8e517f026daf592ec6f9cf2a311af1b89048b58802
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: jUI71kR80f3uIRrj2oaot+k7STGxmibE6YTIx42OxaFKgKvaOw7d1JSxIp2Qf488czdt9hurVzgElOpnZb2qBA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: b90e717212ccaea9f46c7bae5206905daaa67f3b5f0f9ef058dae036955c0276
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 7WaxRr3Uff7fxLs+I0wlc/htE5OwyMIi4ahIIq7p3ZG2itgBT9O+Gxqk46Zjf6HeKB1GjLjQXWMmndxMSFyvCQ==
              custom:
                luid: $eff.-01xK5vWxY6hW8AB7
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-intents-response:
      summary: List of intents
      value:
        hash: d7c28f7c0a3c41ee2f43992a83685dab4be389116f2946fe70b5a7e397ac1ec5
        data:
          - luid: $int.-01xK0rStT2dS4wX3
            hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
            data:
              handle: transfer-1712345678901
              claims:
                - action: transfer
                  source:
                    handle: svgs:1001001212@tesla-bank.com
                    custom:
                      name: John Doe
                      idType: nidn
                      idNumber: '123456789'
                      entityType: individual
                  target:
                    handle: tran:1001001234@nova-bank.com
                    custom:
                      name: Jane Smith
                      idType: nidn
                      idNumber: '987654321'
                      entityType: individual
                  amount: 500
                  symbol:
                    handle: usd
            meta:
              status: completed
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              proofs:
                - signer: tesla-bank-bridge
                  method: ed25519-v2
                  digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
                  public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
                  result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
                  custom:
                    luid: $int.-01xK0rStT2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 9b394cbefa10fb1793133bd4b8f19a5ef4995caf764d12b88dd9036a7d8195a0
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 0q2ZGUegTZJ2NiMQERFln53MPh/sdNI8QhCUrHudd/0giOQePSVvus9z8WXWBCMDMIjrv8AMt8tC5JMHwO5rAQ==
                  custom:
                    moment: '2025-04-05T14:30:20.000Z'
                    status: completed
          - luid: $int.-01xG28V2qdcBt3fR
            hash: eee88032e946d28d62484d70149aa34c96372c93657320fc0cecbacb988ddcd9
            data:
              handle: transfer-1712345679012
              parent: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
              claims:
                - action: transfer
                  source:
                    handle: tran:1001001234@nova-bank.com
                    custom:
                      name: Jane Smith
                      idType: nidn
                      idNumber: '987654321'
                      entityType: individual
                  target:
                    handle: svgs:1001001212@tesla-bank.com
                    custom:
                      name: John Doe
                      idType: nidn
                      idNumber: '123456789'
                      entityType: individual
                  amount: 250
                  symbol:
                    handle: usd
            meta:
              status: completed
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - uutTMAKf8JvlLjBQy9VaTBFl3Qy95FDqjSQsN74TeBE=
              proofs:
                - signer: nova-bank-bridge
                  method: ed25519-v2
                  digest: 5c4bfe3ac154aae998468b7961e5dc597b03d091022507537b810ce332f68cf6
                  public: uutTMAKf8JvlLjBQy9VaTBFl3Qy95FDqjSQsN74TeBE=
                  result: JHKnrB16Agojegpikm15JKLrIuGxhS828n4XNfI6LhzoghcOTy1UaokkHRxlqqLcS0ZRRRVbZ1ZG31fyBwzfBg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: b1956ae299e94564adcb0370094fd6b4f88f2140941db09749a930ca7e165cbf
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: CiquNqpKHT4vgPgoGeJE4Gad9q1Lrfa9AsdYZ7TndWVggCeKCrOAuu/mYNT+r8TIgMHJueWPqzcmqk8UjJigBQ==
                  custom:
                    luid: $int.-01xG28V2qdcBt3fR
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 22e913ab06edbdf00f9a89149e940ab79013c4a2eb7bfd3a46852069dbc1276a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: c0lY7DMSZV1ZXa3Ro4Cu/3r1L1GmV2ZjqeA8laR45HL583/TNmK2TraFW/bd89Qgzt/odm2+BTM75Ks3WEs3Cw==
                  custom:
                    moment: '2025-04-05T14:30:20.000Z'
                    status: completed
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: b43b1cbdba6bae080b2afd101b94bc52c62c8c983285768758d35e9354d74da0
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: dnt8OHHP3ADJK3MadX4t4TyiF17t+Yuih/46yVl0UzUTJ+abKhgxNxYLy7FduPuX/rJwXu8mOky36KbFLTA8DQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-intent-request:
      summary: Create intent
      value:
        hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
        data:
          handle: transfer-1712345678901
          claims:
            - action: transfer
              source:
                handle: svgs:1001001212@tesla-bank.com
                custom:
                  name: John Doe
                  idType: nidn
                  idNumber: '123456789'
                  entityType: individual
              target:
                handle: tran:1001001234@nova-bank.com
                custom:
                  name: Jane Smith
                  idType: nidn
                  idNumber: '987654321'
                  entityType: individual
              amount: 500
              symbol:
                handle: usd
        meta:
          proofs:
            - method: ed25519-v2
              digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-intent-response:
      summary: Created intent
      value:
        luid: $int.-01xK0rStT2dS4wX3
        hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
        data:
          handle: transfer-1712345678901
          claims:
            - action: transfer
              source:
                handle: svgs:1001001212@tesla-bank.com
                custom:
                  name: John Doe
                  idType: nidn
                  idNumber: '123456789'
                  entityType: individual
              target:
                handle: tran:1001001234@nova-bank.com
                custom:
                  name: Jane Smith
                  idType: nidn
                  idNumber: '987654321'
                  entityType: individual
              amount: 500
              symbol:
                handle: usd
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
              custom:
                luid: $int.-01xK0rStT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-intent-response:
      summary: Read intent
      value:
        luid: $int.-01xK0rStT2dS4wX3
        hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
        data:
          handle: transfer-1712345678901
          claims:
            - action: transfer
              source:
                handle: svgs:1001001212@tesla-bank.com
                custom:
                  name: John Doe
                  idType: nidn
                  idNumber: '123456789'
                  entityType: individual
              target:
                handle: tran:1001001234@nova-bank.com
                custom:
                  name: Jane Smith
                  idType: nidn
                  idNumber: '987654321'
                  entityType: individual
              amount: 500
              symbol:
                handle: usd
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
              custom:
                luid: $int.-01xK0rStT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    sign-intent-request:
      summary: Sign intent
      value:
        method: ed25519-v2
        public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
        digest: 524b839221228652aceae20c42717411e08b0d325370d9ebbba983aa2f86b081
        result: 4ACQsuhAdW7Y8l3nFBq8NJ2yVnvjGrRleCR5vC9bu0rD6+0VqpxDzgOKwvQ54T926WmlRT+6iIZhuTpiPGIjDQ==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: prepared
          handle: bridge-entry-handle
          coreId: external-txn-id-456
    sign-intent-response:
      summary: Signed intent
      value:
        luid: $int.-01xK0rStT2dS4wX3
        hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
        data:
          handle: transfer-1712345678901
          claims:
            - action: transfer
              source:
                handle: svgs:1001001212@tesla-bank.com
                custom:
                  name: John Doe
                  idType: nidn
                  idNumber: '123456789'
                  entityType: individual
              target:
                handle: tran:1001001234@nova-bank.com
                custom:
                  name: Jane Smith
                  idType: nidn
                  idNumber: '987654321'
                  entityType: individual
              amount: 500
              symbol:
                handle: usd
        meta:
          status: pending
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
              custom:
                luid: $int.-01xK0rStT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 524b839221228652aceae20c42717411e08b0d325370d9ebbba983aa2f86b081
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: 4ACQsuhAdW7Y8l3nFBq8NJ2yVnvjGrRleCR5vC9bu0rD6+0VqpxDzgOKwvQ54T926WmlRT+6iIZhuTpiPGIjDQ==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: prepared
                handle: bridge-entry-handle
                coreId: external-txn-id-456
    check-intent-access-request:
      summary: Check intent access
      value:
        hash: 16384135fc236bb03583cf3024b9fb573cc1ae45f908a98d0601d2ab45f8cfbe
        data:
          action: read
        meta:
          proofs:
            - method: ed25519-v2
              digest: 57d735764d7add090b90624f04595a25c469ab6102cc6eb7563c31d392d03ea9
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: YYByzRowR9zsd+fOLCkunlBU/bibMYYQJCI0iAknJiBc9gAq1yXr9xnq542UV2oRJlXCc2kDNp1muyv0TXEAAw==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-intent-access-response:
      summary: Intent access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-intent-changes-response:
      summary: List of intent changes
      value:
        hash: 0e05a1d53c33d6cd669cd8afc0b37eb08b4ef3ccb6df80c3f747932638462e9f
        data:
          - luid: $int.-01xK0rStT2dS4wX3
            hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
            data:
              handle: transfer-1712345678901
              claims:
                - action: transfer
                  source:
                    handle: svgs:1001001212@tesla-bank.com
                    custom:
                      name: John Doe
                      idType: nidn
                      idNumber: '123456789'
                      entityType: individual
                  target:
                    handle: tran:1001001234@nova-bank.com
                    custom:
                      name: Jane Smith
                      idType: nidn
                      idNumber: '987654321'
                      entityType: individual
                  amount: 500
                  symbol:
                    handle: usd
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              proofs:
                - signer: tesla-bank-bridge
                  method: ed25519-v2
                  digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
                  public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
                  result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
                  custom:
                    luid: $int.-01xK0rStT2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 1
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 3583244d129e5a1e089a41d23a4620739042b9aae54864e28c45736909b5f824
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: t43eVdOwmNNsSg23XrdER3oYKGLzMwiZvW1eHjjDALrQtOAi9wfMrJo9hHmrhpgGg0yf1OcjO2nmlm3yBy3XCg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-intent-change-response:
      summary: Read intent change
      value:
        luid: $int.-01xK0rStT2dS4wX3
        hash: be40db4425c914903888398a39519b6e9c9b0e047afd40c64f78c95f8f6d64f1
        data:
          handle: transfer-1712345678901
          claims:
            - action: transfer
              source:
                handle: svgs:1001001212@tesla-bank.com
                custom:
                  name: John Doe
                  idType: nidn
                  idNumber: '123456789'
                  entityType: individual
              target:
                handle: tran:1001001234@nova-bank.com
                custom:
                  name: Jane Smith
                  idType: nidn
                  idNumber: '987654321'
                  entityType: individual
              amount: 500
              symbol:
                handle: usd
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
          proofs:
            - signer: tesla-bank-bridge
              method: ed25519-v2
              digest: 6470993982c70f230a95d9084a2ae7b86e612efa57d9f9de9fc379a32923646f
              public: RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=
              result: VUq9NdRZcIk/g85nQTDqsAloXEs6tceZZWw3yPzMeiohjZiZ+FK1lHgQY4haI2C+ZzDMD/lTcqpihKPOq82VBg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 7b75a12a0a9f29fb903461a2c9d1e4d50e7092199c7bef460e6550e09056d7ac
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rAiwYdEpgfJK7Cd3nYLJgrM/YTKphjh6gPAh6+z2Wm6IYubg+2CbyJAjKSp69T+bQikHqGAYypy2eUTG/7u6CQ==
              custom:
                luid: $int.-01xK0rStT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-ledgers-response:
      summary: List of ledgers
      value:
        hash: 8fd212d739304c7db95510793c7438038e23fa5ad461f99ef5bdd7755e40b76c
        data:
          - luid: $ldg.-01xK7mNpQ9cR3vW2
            hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
            data:
              handle: instant-payments
              signer: system
              custom:
                title: Instant Payments Ledger
              config:
                intent.expiryThresholdMinutes: 60
              access:
                - action: any
                  record: any
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
                  custom:
                    luid: $ldg.-01xK7mNpQ9cR3vW2
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $ldg.-01xG27V2qcdBt3fR
            hash: 360a4af804d5a576bb7a14efe12bb9ea08484b51c54b5355d079deb08c773fe4
            data:
              handle: payments-hub
              parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
              signer: system
              custom:
                title: Payments Hub Ledger
              config:
                intent.expiryThresholdMinutes: 70
              access:
                - action: any
                  record: any
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 7f0e8c0f67c07872435c7ab1223055108527d653b0612b8861595bf9e2a64746
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: Vu83eZZMOpEP5ZxjIMhCgKkqO43hCVIiss1UbnKvgzYrgahbbfoysn/546gBVCQuTyoL/NJ/Oa6/oXRGeDY+Cw==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: f4b7309a7f449f7010eb140c08d909f378db3655e2c8a896c587f622f99e2384
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: vJw5hFaIJGFejZ4pR5ngc7R8gNG6qS0GUuZbJN3uhKtYed9sgNI01YQfE9fzG6MtS3FN9ks7WfgwTEiZlLNICg==
                  custom:
                    luid: $ldg.-01xG27V2qcdBt3fR
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 8a46b5b4332c4e6f62435aec301151c83f160ac471903f6e150041e239abc34c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: wMOanHrl5jRThG+gj1aAzsRHGArd6UvQ47lKR2ZsnD+mGyo5MPWtxlUDw3s5h8Boole0qXeugFZt9o7U7cfOAg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-ledger-request:
      summary: Create ledger
      value:
        hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        data:
          handle: instant-payments
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 60
          access:
            - action: any
              record: any
        meta:
          proofs:
            - method: ed25519-v2
              digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-ledger-response:
      summary: Created ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        data:
          handle: instant-payments
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 60
          access:
            - action: any
              record: any
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
              custom:
                luid: $ldg.-01xK7mNpQ9cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-ledger-response:
      summary: Read ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        data:
          handle: instant-payments
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 60
          access:
            - action: any
              record: any
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
              custom:
                luid: $ldg.-01xK7mNpQ9cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-ledger-request:
      summary: Update ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: 146cf16bc358f5430d893360f0eeb2305cd1431fd26d75dbe453479a495ea231
        data:
          handle: instant-payments
          parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 70
          access:
            - action: any
              record: any
        meta:
          proofs:
            - method: ed25519-v2
              digest: a17fc37d4ce75e011a6ad1ca6cf5057b19f8b3bb6d8916819b0ec726dbef052c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: ttqgFg216FCRRj3z0Udp1nZWSHNpGFHWS+Qnb2XaYFlPLVI82exxlWKr/4kTjEhcSsRseEVw4jUYTMn1Y5sRBw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-ledger-response:
      summary: Updated ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: 146cf16bc358f5430d893360f0eeb2305cd1431fd26d75dbe453479a495ea231
        data:
          handle: instant-payments
          parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 70
          access:
            - action: any
              record: any
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: a17fc37d4ce75e011a6ad1ca6cf5057b19f8b3bb6d8916819b0ec726dbef052c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: ttqgFg216FCRRj3z0Udp1nZWSHNpGFHWS+Qnb2XaYFlPLVI82exxlWKr/4kTjEhcSsRseEVw4jUYTMn1Y5sRBw==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: b402f65c2bc658e6479f17b808be3fbc8cd7cc07c1971d146489f6d918ac1e43
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: bmQK0wCJSD56nM1aLjpQ/7kqu2cBYDrsrO7QIMZciVHEf6qs6oCn5NFMhaP068JQRitwmucjUWKNFWJxRicACg==
              custom:
                luid: $ldg.-01xK7mNpQ9cR3vW2
                moment: '2025-04-05T14:30:00.220Z'
    drop-ledger-post-request:
      summary: Drop ledger (POST)
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: 83809a860111bb3f2e410744ad5709e38b00d3dd4e2284b0b46342c76731a63d
        data:
          parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        meta:
          proofs:
            - method: ed25519-v2
              digest: 417a2befd8958b18b1974a57d2d9fe5f74370fdd875c192175c673c051636fe5
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: be1HYaT41SXqCNitJw/G4mSxZNSi+clEawKBK3EjXk8JKz/ijZW93Zu0bGUPNVYV75LQ+C6Re5M1NGyf2FYSCQ==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Ledger decommissioned
                status: dropped
    drop-ledger-request:
      summary: Drop ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: 83809a860111bb3f2e410744ad5709e38b00d3dd4e2284b0b46342c76731a63d
        data:
          parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        meta:
          proofs:
            - method: ed25519-v2
              digest: 05aa3a528de842aa69c8a8f4580350266c1988c6fd943ee57ef3814e0886c955
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: utyV4BWTL2ct3M/pE2XQMsX0J571IfUjJn6Lu4XwcZn2OUk/3s51Km+mdGc/ZiaVa0ZEYAscy+9+60XjzsYeCw==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-ledger-response:
      summary: Drop ledger response
      value: ''
    sign-ledger-request:
      summary: Sign ledger
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 4c3ec8578cdc07c798ddb9427b71ceb3662f5438a52833fea59e43c077156a5a
        result: nXD4t8DOcRY12riuUgonCG3cTaw16i4l0p1gwWD1KGzrmc+Aa9FD4d1nyCj83sjXbpYv1qA3vm3FISglWOtIDw==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-ledger-response:
      summary: Signed ledger
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        data:
          handle: instant-payments
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 60
          access:
            - action: any
              record: any
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
              custom:
                luid: $ldg.-01xK7mNpQ9cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 4c3ec8578cdc07c798ddb9427b71ceb3662f5438a52833fea59e43c077156a5a
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: nXD4t8DOcRY12riuUgonCG3cTaw16i4l0p1gwWD1KGzrmc+Aa9FD4d1nyCj83sjXbpYv1qA3vm3FISglWOtIDw==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-ledger-access-request:
      summary: Check ledger access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-ledger-access-response:
      summary: Ledger access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-ledger-changes-response:
      summary: List of ledger changes
      value:
        hash: 9fffcd874ec68728ae4702fe4125222c0ae348dab42486e414b7582c1269b080
        data:
          - luid: $ldg.-01xK7mNpQ9cR3vW2
            hash: 146cf16bc358f5430d893360f0eeb2305cd1431fd26d75dbe453479a495ea231
            data:
              handle: instant-payments
              parent: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
              signer: system
              custom:
                title: Instant Payments Ledger
              config:
                intent.expiryThresholdMinutes: 70
              access:
                - action: any
                  record: any
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: a17fc37d4ce75e011a6ad1ca6cf5057b19f8b3bb6d8916819b0ec726dbef052c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: ttqgFg216FCRRj3z0Udp1nZWSHNpGFHWS+Qnb2XaYFlPLVI82exxlWKr/4kTjEhcSsRseEVw4jUYTMn1Y5sRBw==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: b402f65c2bc658e6479f17b808be3fbc8cd7cc07c1971d146489f6d918ac1e43
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: bmQK0wCJSD56nM1aLjpQ/7kqu2cBYDrsrO7QIMZciVHEf6qs6oCn5NFMhaP068JQRitwmucjUWKNFWJxRicACg==
                  custom:
                    luid: $ldg.-01xK7mNpQ9cR3vW2
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $ldg.-01xK7mNpQ9cR3vW2
            hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
            data:
              handle: instant-payments
              signer: system
              custom:
                title: Instant Payments Ledger
              config:
                intent.expiryThresholdMinutes: 60
              access:
                - action: any
                  record: any
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
                  custom:
                    luid: $ldg.-01xK7mNpQ9cR3vW2
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: cbd851edbbc6b9ade6fcaf58b343661db876c99b071e2f930a2eba3d4a6e22dd
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: TOP4cjzfeJBEkD4cw+3FnZER7X8xYiXEFiOq3F2S4gvsl/etvrYeXVR4T7KFgoAAjg/JVo9UbtYw/Olmbmx8Ag==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-ledger-change-response:
      summary: Read ledger change
      value:
        luid: $ldg.-01xK7mNpQ9cR3vW2
        hash: b99252c59a1f15c974e25d6049c7d5fac9c0d10ef93f983b27f7aa7080997265
        data:
          handle: instant-payments
          signer: system
          custom:
            title: Instant Payments Ledger
          config:
            intent.expiryThresholdMinutes: 60
          access:
            - action: any
              record: any
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01e50bb5f36afc514bec72eccba7d1ff507374404e4b0a870ad9ecac9be64eb0
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1cT7erLh5sjfKVWSK4zGcLhipVI9fxzwi3vMRDwYuByXzAuIEnkkgQ3AOyVtLqv79tR38+8YB0LYIPiBnNJ7Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 27e4f03a2f9207b21ea46c81996bbe4fcd3fef6e991fce55b754a494a0c50d8d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: c6blnJAaBxubkeJrVYBx/1i4oJzv2+AjEGKLdJXAn0B7a98MAITqod7ocUt9FyIPrL7fjthiUAPne/mauzPZAg==
              custom:
                luid: $ldg.-01xK7mNpQ9cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-policies-response:
      summary: List of policies
      value:
        hash: 35f2c257be876315a4e302a854e852da297645086e3250a890578a1fb66b4420
        data:
          - luid: $plc.-01xK6wXyZ7iX9BC8
            hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
            data:
              handle: admin-policy
              schema: access
              record: any
              values:
                - action: any
                  signer:
                    $circle: admin
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
                  custom:
                    luid: $plc.-01xK6wXyZ7iX9BC8
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $plc.-01xG84B8wiHH0CD8
            hash: 16838fc0e9544534bffe45df0da1c14fe11179db3232d2443ef1d599cbe5175c
            data:
              handle: wallet-access
              parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
              schema: access
              record: wallet
              values:
                - action: any
                  bearer:
                    $signer:
                      $record: owner
                - action: read
                  bearer:
                    $signer:
                      $ledger: owner
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: bd89f3db5ca52234d6b88feb036d39af8c0d8f4fb963a03da28ec81f2ff3687c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: URPGDX6W4g/VjPMeeqrOo/U+Q4gT1b4j2QlB6mte2V+WHz2Bql7u37oXXDVW/vMhzzt55vyv7Lf7DpT9u0mcAw==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 670a66bab5ea72135c8160ae12708f13687211d64fe964fa1682631bf5f9ad3a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: I1lC+NmbpK+0tlVnDEfv7qY01M7aBipWzBF0q5NIBmIuguxBQsXf7zICbvlpjHpb2nZhwo4NtBelfFsICRJJDw==
                  custom:
                    luid: $plc.-01xG84B8wiHH0CD8
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 2c253e90bb69f2ee5b8c89c58173844caa586f46de03568273825d0f30e10020
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: M4TXaXW+EHCb6hkLwj49srUB8C6YoIbC8zbPXFX6C4+iSnyZNn3LM9M9nLrEeRkdhqoijD4LVC9vxl1c9/t5Cg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-policy-request:
      summary: Create policy
      value:
        hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        data:
          handle: admin-policy
          schema: access
          record: any
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          proofs:
            - method: ed25519-v2
              digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-policy-response:
      summary: Created policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        data:
          handle: admin-policy
          schema: access
          record: any
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
              custom:
                luid: $plc.-01xK6wXyZ7iX9BC8
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-policy-response:
      summary: Read policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        data:
          handle: admin-policy
          schema: access
          record: any
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
              custom:
                luid: $plc.-01xK6wXyZ7iX9BC8
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-policy-request:
      summary: Update policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 021af67fdd7a79e0f820f412eeefe62e8da2f6bc13824071008a0de5335eb232
        data:
          handle: admin-policy
          parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
          schema: access
          record: policy
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          proofs:
            - method: ed25519-v2
              digest: 5c8e9dd78391ec081f776d3c02fada943cad79da4933e5c23e1dbda2e822de6e
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: XAd2A4Xzm5lZPD8/hO5p6LKMj1Xdo2BtSIkJgk8zrBUIip1W7mcrkGLpIpK0OUdd3wwAruIKD2/IkF5VbtdZDA==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-policy-response:
      summary: Updated policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 021af67fdd7a79e0f820f412eeefe62e8da2f6bc13824071008a0de5335eb232
        data:
          handle: admin-policy
          parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
          schema: access
          record: policy
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 5c8e9dd78391ec081f776d3c02fada943cad79da4933e5c23e1dbda2e822de6e
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: XAd2A4Xzm5lZPD8/hO5p6LKMj1Xdo2BtSIkJgk8zrBUIip1W7mcrkGLpIpK0OUdd3wwAruIKD2/IkF5VbtdZDA==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: cf5c2466e582a949a6369a020cc040627856eb71020b7e6062778271b11fc3ae
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: EHVnVWt9yMyUpGWMcIZ9YaV3rfIWT6amIiuH/s6GIlzmEqtzmVIsYOxuTIZpLXcIorDnt4lvzSQH/zQ4RL+CCw==
              custom:
                luid: $plc.-01xK6wXyZ7iX9BC8
                moment: '2025-04-05T14:30:00.220Z'
    drop-policy-request:
      summary: Drop policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 5bac512ea6e3b5e5f2f37944ab1701ad6238fe96d057622c7cbcd879d7c929da
        data:
          parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        meta:
          proofs:
            - method: ed25519-v2
              digest: c70250546365a0d8586828d1c3fea4acf3c2d7f1c016970ec6dd24e9d606381b
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: cgWzv1EMo86LvIIRYCLbKK+m5R9KTkzJ8PLe5HNBMgpmxI0FsDlyA20z07wd6DrxXMpyXTpc1w8p1ajwBYkWDA==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-policy-response:
      summary: Drop policy response
      value: ''
    sign-policy-request:
      summary: Sign policy
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 8168a681c20d1a10228d73a513bf332bfde827ce89c2a01ada0ea3a86d4ad3ab
        result: QPkk5J8R8gE7bUGxBoqlwK1loPV+MaewhQiEkiD7uw36cBtqxeH9QL96h+SNyprxnsTSH41NAYC2B2jDMGLrDA==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-policy-response:
      summary: Signed policy
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        data:
          handle: admin-policy
          schema: access
          record: any
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
              custom:
                luid: $plc.-01xK6wXyZ7iX9BC8
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 8168a681c20d1a10228d73a513bf332bfde827ce89c2a01ada0ea3a86d4ad3ab
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: QPkk5J8R8gE7bUGxBoqlwK1loPV+MaewhQiEkiD7uw36cBtqxeH9QL96h+SNyprxnsTSH41NAYC2B2jDMGLrDA==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    drop-policy-post-request:
      summary: Drop policy (POST)
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 5bac512ea6e3b5e5f2f37944ab1701ad6238fe96d057622c7cbcd879d7c929da
        data:
          parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        meta:
          proofs:
            - method: ed25519-v2
              digest: b1c4d19f6379f25329cbffb87236162f713fb264bcdb2aeb3face881dcd8190e
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: cs0klLpXxu6LNvZ2OsdhQfhEkBCF7XgoNudD4XAt8o9VApO/mjJDVCYK84HBlv85FjrkIwk98P6KnNRscF0vCQ==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Policy no longer needed
                status: dropped
    drop-policy-post-response:
      summary: Drop policy response (POST)
      value: ''
    check-policy-access-request:
      summary: Check policy access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-policy-access-response:
      summary: Policy access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-policy-changes-response:
      summary: List of policy changes
      value:
        hash: 3031e2302b29039916eac0c4a6872a88b934de3eb0ecf088568b48a3c790e764
        data:
          - luid: $plc.-01xK6wXyZ7iX9BC8
            hash: 021af67fdd7a79e0f820f412eeefe62e8da2f6bc13824071008a0de5335eb232
            data:
              handle: admin-policy
              parent: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
              schema: access
              record: policy
              values:
                - action: any
                  signer:
                    $circle: admin
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 5c8e9dd78391ec081f776d3c02fada943cad79da4933e5c23e1dbda2e822de6e
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: XAd2A4Xzm5lZPD8/hO5p6LKMj1Xdo2BtSIkJgk8zrBUIip1W7mcrkGLpIpK0OUdd3wwAruIKD2/IkF5VbtdZDA==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: cf5c2466e582a949a6369a020cc040627856eb71020b7e6062778271b11fc3ae
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: EHVnVWt9yMyUpGWMcIZ9YaV3rfIWT6amIiuH/s6GIlzmEqtzmVIsYOxuTIZpLXcIorDnt4lvzSQH/zQ4RL+CCw==
                  custom:
                    luid: $plc.-01xK6wXyZ7iX9BC8
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $plc.-01xK6wXyZ7iX9BC8
            hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
            data:
              handle: admin-policy
              schema: access
              record: any
              values:
                - action: any
                  signer:
                    $circle: admin
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
                  custom:
                    luid: $plc.-01xK6wXyZ7iX9BC8
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 7f685a1ec9c4d589f81ed94f612338db58c2aa2c85b3b939a9b31f73657f19ea
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: op90IO5txVJJzun8hEw9GLi0luW2+9/e22eid5LjjsS906/Q8i4lCqctwmGKxNSUCq4nFjqJjjhCKb5nm7IhBw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-policy-change-response:
      summary: Read policy change
      value:
        luid: $plc.-01xK6wXyZ7iX9BC8
        hash: 7cf05252a4472a155a39edc222a26cb8fc9f85d60ecb2841e028b02c379de963
        data:
          handle: admin-policy
          schema: access
          record: any
          values:
            - action: any
              signer:
                $circle: admin
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 374422ed861753b7ae317172751fae081a8450e515387c120ed8eace1733b612
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 2UOiiMOYmQFsduziE62Kg8F0lZ4mwZYYF6lXijqjGDMWxaqCv72mF42P8/bVsJMGQattLAXFrencq5/Mc7rVCQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 582080899a94d868fc76331c26bf3bbe3de75fe1c140be5bb7cfe9ccb51fa629
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: SOn8asw27mPCGLkbaRkIcZhUWAv6uCAFRIqdWnBt+rNmVMqSLybMytGLTVGKGeglhfdPY/L7TQ3+KVvOenCtDQ==
              custom:
                luid: $plc.-01xK6wXyZ7iX9BC8
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-reports-response:
      summary: List of reports
      value:
        hash: c07cf5ff159089ca2f5ec2adf2383e5475da8a2ebf73c60e64d595ba6509a936
        data:
          - luid: $rep.-01xK7xYzA8jY0CD9
            hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
            data:
              handle: payments-2025-01-01
              schema: trans_details_rep
              custom:
                start_timestamp: '2025-01-01T00:00:00.000Z'
                end_timestamp: '2025-01-02T00:00:00.000Z'
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
                  custom:
                    luid: $rep.-01xK7xYzA8jY0CD9
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $rep.-01xG95C9xjII1DE9
            hash: 5f1ba11be4956673776cf390ba35cec554f0e09f5b68ebf69b972d2276614944
            data:
              handle: payments-2025-01-02
              parent: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
              schema: trans_details_rep
              custom:
                start_timestamp: '2025-01-02T00:00:00.000Z'
                end_timestamp: '2025-01-03T00:00:00.000Z'
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: c14082becc3ae4b4040df47f779ec6ca5240b5c745abfdf3b1bef697fd5e5849
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: lIy4HUrrKmY89KoZ6NZPfBkIDhgkmbF8+1FyGpoGLj4DFR6h+Rbcx0y29ZFSDpM4V79e4lk8NjXCrh9EJCrSCA==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 1ee17f42eb7bec88cde12caa913e2d94033833329b641d170541167ddcbac19e
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 47O5NOMgPJ+91r8NIL1ZpuEQrioTAngbRjeC/fWs2GZMW9K8cKPcsOYm2BD2Ao5x/0JiDG274fKIGQ+AY0IRBw==
                  custom:
                    luid: $rep.-01xG95C9xjII1DE9
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 9144f54a0af5b578598e87d6b1fdc8be66e4dd42b3617e9893e160cc225daa11
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: x2TMPpSbYq0BqFfyg6kFuYCGyY2ePviRAT155zBiRvfPcEwWqKZhylRO4P3jONQuZRrdQow1ODkQiC4YospnDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-report-request:
      summary: Create report
      value:
        hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        data:
          handle: payments-2025-01-01
          schema: trans_details_rep
          custom:
            start_timestamp: '2025-01-01T00:00:00.000Z'
            end_timestamp: '2025-01-02T00:00:00.000Z'
        meta:
          proofs:
            - method: ed25519-v2
              digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-report-response:
      summary: Created report
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        data:
          handle: payments-2025-01-01
          schema: trans_details_rep
          custom:
            start_timestamp: '2025-01-01T00:00:00.000Z'
            end_timestamp: '2025-01-02T00:00:00.000Z'
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
              custom:
                luid: $rep.-01xK7xYzA8jY0CD9
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-report-response:
      summary: Read report
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        data:
          handle: payments-2025-01-01
          schema: trans_details_rep
          custom:
            start_timestamp: '2025-01-01T00:00:00.000Z'
            end_timestamp: '2025-01-02T00:00:00.000Z'
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
              custom:
                luid: $rep.-01xK7xYzA8jY0CD9
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    drop-report-request:
      summary: Drop report
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 97f13073ecc23404d852157e28e94ac1d9262b48a975122c3ac99e8a3b14e270
        data:
          parent: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        meta:
          proofs:
            - method: ed25519-v2
              digest: 1bb9094b1e45a079f6cdd9ace59d51a8984dc9cbe7b71e31fca8b1f2166d6e94
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JQVZrqkPM0x80lW7k8E7Y62B6Mf7LwZUom5S3upTubcmQ6yKuYOoKF6J19Bm9RJTdAPPyu4YWRfI/Vsz6+I7Dw==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-report-response:
      summary: Drop report response
      value: ''
    sign-report-request:
      summary: Sign report
      value:
        method: ed25519-v2
        public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
        digest: 4fe8083ac02ee001b49e6a519c1f2af78bf1d4ba8a0c0e50cec9a30ce68636f0
        result: GD90bmf7LH43pH/jWHoSm065B1TLlX7jSmzPU9AdYzmER5N9D3k7fZUYlyIVNVwD5y2sqOH2i3CAl5p1b+QRBw==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: pending
    sign-report-response:
      summary: Signed report
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        data:
          handle: payments-2025-01-01
          schema: trans_details_rep
          custom:
            start_timestamp: '2025-01-01T00:00:00.000Z'
            end_timestamp: '2025-01-02T00:00:00.000Z'
        meta:
          status: pending
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
              custom:
                luid: $rep.-01xK7xYzA8jY0CD9
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 4fe8083ac02ee001b49e6a519c1f2af78bf1d4ba8a0c0e50cec9a30ce68636f0
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: GD90bmf7LH43pH/jWHoSm065B1TLlX7jSmzPU9AdYzmER5N9D3k7fZUYlyIVNVwD5y2sqOH2i3CAl5p1b+QRBw==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: pending
    drop-report-post-request:
      summary: Drop report (POST)
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 97f13073ecc23404d852157e28e94ac1d9262b48a975122c3ac99e8a3b14e270
        data:
          parent: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        meta:
          proofs:
            - method: ed25519-v2
              digest: e630f9dc91f81c9a6513382446d6aed5d6cce2e07a7a7861be5c4a6808ddad8a
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: le2wVPA5z45yq+ar36IXSkBudCv6ncWFwkjNabr6tQUL+CPkRhHF0b0XNC3SWEyXA0nzhp/N+vM/nGdOV800BQ==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Report is no longer needed
                status: dropped
    drop-report-post-response:
      summary: Drop report response (POST)
      value: ''
    check-report-access-request:
      summary: Check report access
      value:
        hash: 16384135fc236bb03583cf3024b9fb573cc1ae45f908a98d0601d2ab45f8cfbe
        data:
          action: read
        meta:
          proofs:
            - method: ed25519-v2
              digest: 57d735764d7add090b90624f04595a25c469ab6102cc6eb7563c31d392d03ea9
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: IUXlfnqHwxgS6DExxvKApeo2epOqFwlutYmZb9S5vsEMFyrKdl78ohV4rK4iMTyonP6D2U6s/sYKzCTZ2zQvDw==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-report-access-response:
      summary: Report access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-report-changes-response:
      summary: List of report changes
      value:
        hash: 831d9b2182094ad9b59208688f5edb0a89cbf09671423c9da30fc7cb29ab4641
        data:
          - luid: $rep.-01xK7xYzA8jY0CD9
            hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
            data:
              handle: payments-2025-01-01
              schema: trans_details_rep
              custom:
                start_timestamp: '2025-01-01T00:00:00.000Z'
                end_timestamp: '2025-01-02T00:00:00.000Z'
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
                  custom:
                    luid: $rep.-01xK7xYzA8jY0CD9
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 1
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 0269479b6537ce5421fbe37de0a34c2c1c157b2469b11d350e0c7acd5a3efa5d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 9pwezkpuO6ERha2mA7scCCLF+1fBGFlD7+uDEkzCRAU3Z6epGl84J59sQ7svFUEGax+R5zdlqrdBbOOwx1eACg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-report-change-response:
      summary: Read report change
      value:
        luid: $rep.-01xK7xYzA8jY0CD9
        hash: 1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca
        data:
          handle: payments-2025-01-01
          schema: trans_details_rep
          custom:
            start_timestamp: '2025-01-01T00:00:00.000Z'
            end_timestamp: '2025-01-02T00:00:00.000Z'
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==
              custom:
                luid: $rep.-01xK7xYzA8jY0CD9
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-schemas-response:
      summary: List of schemas
      value:
        hash: 817c84806617f4a2b396d949e3db4d2ce9857ef41e67a7003a6bb5a40753cd9f
        data:
          - luid: $sch.-01xK8yZAB9kZ1DE0
            hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
            data:
              handle: bank-wallet
              format: json-schema
              schema:
                type: object
                title: Bank Wallet
                required:
                  - handle
                properties:
                  handle:
                    type: string
                    pattern: ^[a-z0-9.-]+$
                  custom:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Display name for the wallet
                      description:
                        type: string
                        description: Purpose or details of the wallet
              record: wallet
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
                  custom:
                    luid: $sch.-01xK8yZAB9kZ1DE0
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $sch.-01xG06D0ykJJ2EF0
            hash: 6ac0806374ec2f8fb6837f91e448328dc6259fc8bbb8999c432f33034eab2d28
            data:
              handle: merchant-wallet
              parent: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
              format: json-schema
              schema:
                type: object
                title: Merchant Wallet
                required:
                  - handle
                properties:
                  handle:
                    type: string
                  custom:
                    type: object
                    properties:
                      merchantId:
                        type: string
                        description: Merchant identifier
                      category:
                        type: string
                        description: Business category
              record: wallet
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 0f088e7ac2b08e382e98dfb303096e755f7c5c11c58856e5870641a29d6097d6
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: b7+AUDLNK++fmglPpiDPpHQGH7P162CL9/MZIKXh9AuJ84MCmiuk0RF006nol8Z9XvtgwUwgejphNlkVoy/+DQ==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 8c2685ef4d16a428f5cbb2e5d123983adb380611ffe008862ec7ffc583424c43
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: VhZ9M4rQurNmK92qzep2c5CvWA8rx8l9ZFfCp2VCQuuoEGn9YjwupZ4xZ12kN4fmQ3XPUtJlL6S1nSakDcCxAg==
                  custom:
                    luid: $sch.-01xG06D0ykJJ2EF0
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 3b89ba313042ee63c5414b6653172ef531000083d6c53c1896c6b3db7f484e63
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 6vmNAHZpWBoi7Vl2oKwrJrb9w/eeuEkHA7l1iAiKBKAuF7EeqkjAyqYmTptxbMtwmA4ZP2t1oC45oUc0YX/EAw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-schema-request:
      summary: Create schema
      value:
        hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
        data:
          handle: bank-wallet
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
          record: wallet
        meta:
          proofs:
            - method: ed25519-v2
              digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-schema-response:
      summary: Created schema
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
        data:
          handle: bank-wallet
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
          record: wallet
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
              custom:
                luid: $sch.-01xK8yZAB9kZ1DE0
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-schema-response:
      summary: Read schema
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
        data:
          handle: bank-wallet
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
          record: wallet
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
              custom:
                luid: $sch.-01xK8yZAB9kZ1DE0
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-schema-request:
      summary: Update schema
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 516c47da85975e3a5546b0e0e83eba284c46310a7d79e99949a67cd679e14795
        data:
          handle: bank-wallet
          parent: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
                  country:
                    type: string
                    description: Country of the wallet holder
          record: wallet
        meta:
          proofs:
            - method: ed25519-v2
              digest: 9c872c8e4a174ebefad8d083531a17102354bdcfc88cd3d7552a9ae738385070
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 3NZHwxhQSPbZGHMKcHFuaIVrSOvPQCmBpnncA0m+FMUA9nKuOEXlijZ14N6BjPeleaoCYX5LlXcZmDlmBp6TBg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-schema-response:
      summary: Updated schema
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 516c47da85975e3a5546b0e0e83eba284c46310a7d79e99949a67cd679e14795
        data:
          handle: bank-wallet
          parent: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
                  country:
                    type: string
                    description: Country of the wallet holder
          record: wallet
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 9c872c8e4a174ebefad8d083531a17102354bdcfc88cd3d7552a9ae738385070
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 3NZHwxhQSPbZGHMKcHFuaIVrSOvPQCmBpnncA0m+FMUA9nKuOEXlijZ14N6BjPeleaoCYX5LlXcZmDlmBp6TBg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: 1d6d2220e44273441288eede49d592c65358caf35e5f56fc7bc38478163c56d2
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: rdQdQwX1Agea6sqKhK/9l5RHEb+zJZjZNT3JAQT+cQ+ADHd1vuiIYwiIVdJAoxOmeIcoPiE8sy/MHTgKlJhrCQ==
              custom:
                luid: $sch.-01xK8yZAB9kZ1DE0
                moment: '2025-04-05T14:30:00.220Z'
    sign-schema-request:
      summary: Sign schema
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 221484c485aea6d95b3a673bb37c5884804559acd1472b905cff71b2b3614912
        result: 1sjMMDB6IEBJbeM/VLmg7RKn3fj7p6TBQjyl+Cccc2RJgcJNlTF450lY+8l5APfRQ8XWibyRuIC/3txJG1rXCw==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-schema-response:
      summary: Signed schema
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
        data:
          handle: bank-wallet
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
          record: wallet
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
              custom:
                luid: $sch.-01xK8yZAB9kZ1DE0
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 221484c485aea6d95b3a673bb37c5884804559acd1472b905cff71b2b3614912
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: 1sjMMDB6IEBJbeM/VLmg7RKn3fj7p6TBQjyl+Cccc2RJgcJNlTF450lY+8l5APfRQ8XWibyRuIC/3txJG1rXCw==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-schema-access-request:
      summary: Check schema access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-schema-access-response:
      summary: Schema access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-schema-changes-response:
      summary: List of schema changes
      value:
        hash: 9d92eaac43f41beb9e66489b455a1ab9514cc0736a2e16e61a4aa85675a4bc64
        data:
          - luid: $sch.-01xK8yZAB9kZ1DE0
            hash: 516c47da85975e3a5546b0e0e83eba284c46310a7d79e99949a67cd679e14795
            data:
              handle: bank-wallet
              parent: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
              format: json-schema
              schema:
                type: object
                title: Bank Wallet
                required:
                  - handle
                properties:
                  handle:
                    type: string
                    pattern: ^[a-z0-9.-]+$
                  custom:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Display name for the wallet
                      description:
                        type: string
                        description: Purpose or details of the wallet
                      country:
                        type: string
                        description: Country of the wallet holder
              record: wallet
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 9c872c8e4a174ebefad8d083531a17102354bdcfc88cd3d7552a9ae738385070
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: 3NZHwxhQSPbZGHMKcHFuaIVrSOvPQCmBpnncA0m+FMUA9nKuOEXlijZ14N6BjPeleaoCYX5LlXcZmDlmBp6TBg==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: 1d6d2220e44273441288eede49d592c65358caf35e5f56fc7bc38478163c56d2
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rdQdQwX1Agea6sqKhK/9l5RHEb+zJZjZNT3JAQT+cQ+ADHd1vuiIYwiIVdJAoxOmeIcoPiE8sy/MHTgKlJhrCQ==
                  custom:
                    luid: $sch.-01xK8yZAB9kZ1DE0
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $sch.-01xK8yZAB9kZ1DE0
            hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
            data:
              handle: bank-wallet
              format: json-schema
              schema:
                type: object
                title: Bank Wallet
                required:
                  - handle
                properties:
                  handle:
                    type: string
                    pattern: ^[a-z0-9.-]+$
                  custom:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Display name for the wallet
                      description:
                        type: string
                        description: Purpose or details of the wallet
              record: wallet
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
                  custom:
                    luid: $sch.-01xK8yZAB9kZ1DE0
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: f7200f6c1543c1a484a5ab34993bcf79cda73d94e985cba1ed5ce6de4c5a0812
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: vmQewrdUGfpwDB/ZCRSKfwcnEfbyVxZ7WHxTs2NNZzucHgYJ3y+u5z4vZ8OTjXfajtzDGGc2AhPqAbb4HbdLDw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-schema-change-response:
      summary: Read schema change
      value:
        luid: $sch.-01xK8yZAB9kZ1DE0
        hash: 4eefc033339bc5d1cee0f45156ac4d4854393985228429a913dcaae48040301c
        data:
          handle: bank-wallet
          format: json-schema
          schema:
            type: object
            title: Bank Wallet
            required:
              - handle
            properties:
              handle:
                type: string
                pattern: ^[a-z0-9.-]+$
              custom:
                type: object
                properties:
                  name:
                    type: string
                    description: Display name for the wallet
                  description:
                    type: string
                    description: Purpose or details of the wallet
          record: wallet
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: e04f4fdfd1f77d0b0bed97474f85d5bd8c8190546f7ca2bb20861b261832521c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: TAO9iluaI5QanY5xyQmTJQDajleny9gU8oyJtIAOob9UARbqmx+IgZ1fpeYlphikcluRfgMQy2BsPWB3WGFGDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: e81ed089c8edba16e21c216035a9c44e3dd6f82d960fde0015e5ce83dd803d1d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: zRUUQuJo+gooqucUYWDlgoo2uTn9l6Dt7ucM+0XpVDwy/Uiu0hDVxmCWOQLoS+kcJCbMa6QuxLVK6B/9+6u4Bg==
              custom:
                luid: $sch.-01xK8yZAB9kZ1DE0
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-signers-response:
      summary: List of signers
      value:
        hash: c0e32056a226b0c2e69a812de1dae46a5309a56594e46c7588e46a21d526ae54
        data:
          - luid: $snr.-01xK0qRsS1cR3vW2
            hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
            data:
              handle: tesla-bank-admin
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
                  custom:
                    luid: $snr.-01xK0qRsS1cR3vW2
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $snr.-01xG28V2qdcBt3fR
            hash: b90dc22d31c1baff76eef14ca3f9057c88e8a2f1d457e0fd755bcd8af2f668c9
            data:
              handle: nova-bank-admin
              parent: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
              public: i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
              format: ed25519-raw
              custom:
                name: Jane Smith
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 06010a1f18ee64afedfabb8d7fe709a9c7c771234ec690a174f9a34cf7c2dae8
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: FzAvsRXALGbIoq62EGJEEKihfkXwQF0iI2c1b0M5gVxqxSOTItLhu2We0xYJRS37gJ9VKtsVw5ENqhbFrzCVDg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 7928b6bcc60b6fe719f6422a3a9b1cc89785a1914bab27ccb7db549a05c86255
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: SUC8WxkhL/NJwdDWNmo41GrAQEq9EGGxyrlGne/mr4jRK1IbHjx0gqSaOGf7MUS+mEJ8RPW0a+b1uqKWYu7ADA==
                  custom:
                    luid: $snr.-01xG28V2qdcBt3fR
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 0066f58c259d13a26f45be1d5ec6efe68a5d5bad9c1a8eb4e30ffab90ddbf79b
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: q4M3vKlvS9Hn8BU4pCkhMb2YWGz6tGfZuJlVwlmgSCjY4IX9PhjmWTzt4d3mhI85ZHYpdHsxUf6dOxZ+9A6NAA==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-signer-request:
      summary: Create signer
      value:
        hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
        data:
          handle: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
        meta:
          proofs:
            - method: ed25519-v2
              digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-signer-response:
      summary: Created signer
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
        data:
          handle: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
              custom:
                luid: $snr.-01xK0qRsS1cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-signer-response:
      summary: Read signer
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
        data:
          handle: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
              custom:
                luid: $snr.-01xK0qRsS1cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-signer-request:
      summary: Update signer
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: 3f25f6f58e769f0e91ea35ec6f9ff5702c239a5757c854d5c41bf827ee42f111
        data:
          handle: tesla-bank-admin
          parent: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          custom:
            name: Bob Martinez
        meta:
          proofs:
            - method: ed25519-v2
              digest: ad9282f7fd48ed84f3d6d22a083d8b994d4ecff04bfe012d118317a58924f1ec
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: QNC/EyJdgtYSM+lwDeq3nka7xdF3vDS5Si5m49BRKPw3NL3rLfheuymMyqI6e8k/aW/lX08w6ltGH0VIlfXkAg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-signer-response:
      summary: Updated signer
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: 3f25f6f58e769f0e91ea35ec6f9ff5702c239a5757c854d5c41bf827ee42f111
        data:
          handle: tesla-bank-admin
          parent: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          custom:
            name: Bob Martinez
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: ad9282f7fd48ed84f3d6d22a083d8b994d4ecff04bfe012d118317a58924f1ec
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: QNC/EyJdgtYSM+lwDeq3nka7xdF3vDS5Si5m49BRKPw3NL3rLfheuymMyqI6e8k/aW/lX08w6ltGH0VIlfXkAg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: fcfc46db5f003e29e558c0330c5e8e773c3de06e7ca208afd6660a8b24938cdf
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 5xfsU3PQ9PPUF5mnj8LwohJOaV0OD01TinRb4ycKTU+7CFhDlsRFpAIeh7+vV7IJTsgTuj+bt+ROVLRQadDFDA==
              custom:
                luid: $snr.-01xK0qRsS1cR3vW2
                moment: '2025-04-05T14:30:00.220Z'
    sign-signer-request:
      summary: Sign signer
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 1fb7e4c33ce4a380b1fbdc330a52a880397f994dbfefecb0978057fd7c58cb76
        result: uDXIHiXOprf9w+598d78NKhDsqdhCm5Av7N+iZIhZV5dAOQ7SN7V1vyHsud8HvaFUDlbY4T7Z0XmsgzhEBUOBg==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-signer-response:
      summary: Signed signer
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
        data:
          handle: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
              custom:
                luid: $snr.-01xK0qRsS1cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 1fb7e4c33ce4a380b1fbdc330a52a880397f994dbfefecb0978057fd7c58cb76
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDXIHiXOprf9w+598d78NKhDsqdhCm5Av7N+iZIhZV5dAOQ7SN7V1vyHsud8HvaFUDlbY4T7Z0XmsgzhEBUOBg==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-signer-access-request:
      summary: Check signer access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-signer-access-response:
      summary: Signer access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-signer-changes-response:
      summary: List of signer changes
      value:
        hash: d460bec44c09d98ef2fd98fdf2427826bd04f2af59e5bd4e241695b625e22ce0
        data:
          - luid: $snr.-01xK0qRsS1cR3vW2
            hash: 3f25f6f58e769f0e91ea35ec6f9ff5702c239a5757c854d5c41bf827ee42f111
            data:
              handle: tesla-bank-admin
              parent: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
              custom:
                name: Bob Martinez
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: ad9282f7fd48ed84f3d6d22a083d8b994d4ecff04bfe012d118317a58924f1ec
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: QNC/EyJdgtYSM+lwDeq3nka7xdF3vDS5Si5m49BRKPw3NL3rLfheuymMyqI6e8k/aW/lX08w6ltGH0VIlfXkAg==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: fcfc46db5f003e29e558c0330c5e8e773c3de06e7ca208afd6660a8b24938cdf
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 5xfsU3PQ9PPUF5mnj8LwohJOaV0OD01TinRb4ycKTU+7CFhDlsRFpAIeh7+vV7IJTsgTuj+bt+ROVLRQadDFDA==
                  custom:
                    luid: $snr.-01xK0qRsS1cR3vW2
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $snr.-01xK0qRsS1cR3vW2
            hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
            data:
              handle: tesla-bank-admin
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
                  custom:
                    luid: $snr.-01xK0qRsS1cR3vW2
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: b560f89160fc57b204559b9fe96edec121d66c928bdcfe0f2962f688d9782b6e
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: /6Nanc5WHmoDLpB/uSn6cHxcL6Y6hzL3ctwM603GZ/L8uMw5ena+5KE9Ja1TKNYGAcbf4t9HNnXH/zEHbqscDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-signer-change-response:
      summary: Read signer change
      value:
        luid: $snr.-01xK0qRsS1cR3vW2
        hash: f66c97de69f4a5adf04ea8f53133d44ff44295d3de26e0751934a37acfa2ecb7
        data:
          handle: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 01d46b4475721c0ed4f482fbbfd31f6bd15a0646578e177ca52416b72f0c5f9c
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: rqvAX7Z/pjLbpcTHe8Kk48uGHRjX+RPXNZ3es3v+gimsUXpV65CGYL0c5JVJ+HW6PhKTMWTEewmi1GHxlZT4Aw==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: abd28fa9ceab7b95e6762449f65894bd4077b1db2b58310ce9d08b3a58be21e3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 1Evc27DzOcv8zcVJgAAMC7vy2+MiyqqdJxipBAtNxWXcBARf9g7KXMzF+RVH/6VNGqg3LIDtF+v44FDqdK47Bg==
              custom:
                luid: $snr.-01xK0qRsS1cR3vW2
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-signer-factors-response:
      summary: List of signer-factors
      value:
        hash: f1f9438adc85718d9ead3928951798246bcf303696ea7e66896af875b09ebd0b
        data:
          - luid: $snf.-01xK1rTtU2dS4wX3
            hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
            data:
              handle: signing-key
              signer: tesla-bank-admin
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
              schema: key-pair
              custom:
                title: Admin backup signing key
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
                  custom:
                    luid: $snf.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $snf.-01xG28V2qdcBt3fR
            hash: 0c46a7a8abe9be9080ac15a754810bcda1eec6a6e61bfc27bad5e050422a2cae
            data:
              handle: otp-factor
              parent: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
              signer: tesla-bank-admin
              schema: totp
              custom:
                title: Two-factor authentication
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 3b9e56ed7b7e7d458608a8ab960fb36b0264fabda8add4284845d329babc6cf4
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: X+v/Hcl5NzsgImYfOaTGVoq/jrgvX2mfcARpy4EAxDyjb+rszoJcSnd8TRWtYED5AO79VqLdh0ZlzV+c8cPMAg==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 96920b31532700a54de8eaaea4b9239841a11ae02bf14a7cd67ea0952b2cda01
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: jp+hiOVAeeqJHoNayVqK1ocgtatTQSa7l4aFlOjpZWuwSljAbYE0MO+XO/Fl5CoO3sAlTtNxooA9QicbZg57Bg==
                  custom:
                    luid: $snf.-01xG28V2qdcBt3fR
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 1b2ca854741445350a09c741b39dd7002e0cefdbf660c52b6479b0ab1bc96db9
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: xx9HmIxSxyWUcKxjVPbGDuz7BjX8vKhsF7ocMOtpQVdt8HJFjba39q94Mtaf0aRLgPp8j/UFlfYUof9Hf+4KBA==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-signer-factor-request:
      summary: Create signer-factor
      value:
        hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
        data:
          handle: signing-key
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin backup signing key
        meta:
          proofs:
            - method: ed25519-v2
              digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-signer-factor-response:
      summary: Created signer-factor
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
        data:
          handle: signing-key
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin backup signing key
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
              custom:
                luid: $snf.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-signer-factor-response:
      summary: Read signer-factor
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
        data:
          handle: signing-key
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin backup signing key
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
              custom:
                luid: $snf.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-signer-factor-request:
      summary: Update signer-factor
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: a3ea08b8ae78413c3e211b783bc5f124042698064e455cae87d9e17ae8d06003
        data:
          handle: signing-key
          parent: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin primary signing key
        meta:
          proofs:
            - method: ed25519-v2
              digest: a03c71c10e300256f7257cdb7ac4b498ba5cee5156c0abc66b549934138a051e
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: TX0zmtCCd8mCYNKEodWQFk4RZzOE8Zkmdy+mHPW1bPfuarHIB9v4mgJphY6iaAA2Z62+CONrihzHWjtpiBKQCg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-signer-factor-response:
      summary: Updated signer-factor
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: a3ea08b8ae78413c3e211b783bc5f124042698064e455cae87d9e17ae8d06003
        data:
          handle: signing-key
          parent: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin primary signing key
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: a03c71c10e300256f7257cdb7ac4b498ba5cee5156c0abc66b549934138a051e
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: TX0zmtCCd8mCYNKEodWQFk4RZzOE8Zkmdy+mHPW1bPfuarHIB9v4mgJphY6iaAA2Z62+CONrihzHWjtpiBKQCg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: 9a65e23893bdb7bc00ab6cfe3e3380b756c73386e52292f7e3268b8d5f825f32
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 0kyeKtb3YTv1oVS7+igdv3rFeCEgU0j25+KCKRc1SWiX6s2QwCPfc2si4RyeLuOsUTDyjxZvqgJC5Zt6nDC/CA==
              custom:
                luid: $snf.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.220Z'
    sign-signer-factor-request:
      summary: Sign signer-factor
      value:
        method: ed25519-v2
        public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
        digest: 616418590e4b28cb117123cb0eafb93a69d0c5ea83a2662304c05a1b55d99a2d
        result: BIuybAnOeD+QAoU6L6fTVusQTloboX4cITyoxeQt8Sc+C5UYXs/XiQcXQ+rpl83cwGmaTQr/cb1bR1wyaYABDQ==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-signer-factor-response:
      summary: Signed signer-factor
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
        data:
          handle: signing-key
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin backup signing key
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
              custom:
                luid: $snf.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 616418590e4b28cb117123cb0eafb93a69d0c5ea83a2662304c05a1b55d99a2d
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: BIuybAnOeD+QAoU6L6fTVusQTloboX4cITyoxeQt8Sc+C5UYXs/XiQcXQ+rpl83cwGmaTQr/cb1bR1wyaYABDQ==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-signer-factor-access-request:
      summary: Check signer-factor access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: aVDBsQtDWmvuxtI8vfEOTtZOtZUE+mV+DCX351sVqkkVIshR4uTLO+HNFjFxX2AwsypKRfK09HNIl345CzXkBQ==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-signer-factor-access-response:
      summary: Signer-factor access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-signer-factor-changes-response:
      summary: List of signer-factor changes
      value:
        hash: 826577c415ee6ffd49cbbb2ea267852022fc90897b7b010f7dd9f7e398384099
        data:
          - luid: $snf.-01xK1rTtU2dS4wX3
            hash: a3ea08b8ae78413c3e211b783bc5f124042698064e455cae87d9e17ae8d06003
            data:
              handle: signing-key
              parent: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
              signer: tesla-bank-admin
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
              schema: key-pair
              custom:
                title: Admin primary signing key
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: a03c71c10e300256f7257cdb7ac4b498ba5cee5156c0abc66b549934138a051e
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: TX0zmtCCd8mCYNKEodWQFk4RZzOE8Zkmdy+mHPW1bPfuarHIB9v4mgJphY6iaAA2Z62+CONrihzHWjtpiBKQCg==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: 9a65e23893bdb7bc00ab6cfe3e3380b756c73386e52292f7e3268b8d5f825f32
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 0kyeKtb3YTv1oVS7+igdv3rFeCEgU0j25+KCKRc1SWiX6s2QwCPfc2si4RyeLuOsUTDyjxZvqgJC5Zt6nDC/CA==
                  custom:
                    luid: $snf.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $snf.-01xK1rTtU2dS4wX3
            hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
            data:
              handle: signing-key
              signer: tesla-bank-admin
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              format: ed25519-raw
              schema: key-pair
              custom:
                title: Admin backup signing key
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
                  custom:
                    luid: $snf.-01xK1rTtU2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 9742ea0b894583a92a8e1d1d0930184f9e6ff0e0c8bd6cbcee3ab74822b9783c
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: c7/fR7BSRSTD7IFrsrfzkIMn5b1Wo5NQvjBroD/2D2GSvwHC76STBAOfShBAYbT68ih3rXapJIyIwe2pFzdTAw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-signer-factor-change-response:
      summary: Read signer-factor change
      value:
        luid: $snf.-01xK1rTtU2dS4wX3
        hash: 82baa21c2f24351786a768bb66bf258cbbee9092f53549810ac2e9fdec809036
        data:
          handle: signing-key
          signer: tesla-bank-admin
          public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          format: ed25519-raw
          schema: key-pair
          custom:
            title: Admin backup signing key
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: bcbc413a6415be50a9551e3c76f5c32bb00d20025cf5a3c1176ba04752484ddc
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: JonHuzyJ1iX1Kr9BYd3BxjZPJkZurFki/3XzMdgSU1HZk72LKYH5Jxoml+q7FytzCQ7h6z1Mg8Ghn9UVEUksDA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: a24ccbca89db875fe98ce4d1b3f0b9b286e7891cc8e1377b0252be3420e8423a
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 0g5td5sn76a0LKm6rywjdmj8oldC42AqvvMMS90x4UEPln2BcNVx//9oyM0kwEpUs9hkxoibuVHDxX618577Bw==
              custom:
                luid: $snf.-01xK1rTtU2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-symbols-response:
      summary: List of symbols
      value:
        hash: aa4eb1b79475de8b1be562c827291216a89b8b29b017fed5d00b202ad31f84f8
        data:
          - luid: $sym.-01xK8nRqT2dS4wX3
            hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
            data:
              handle: usd
              factor: 100
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
                  custom:
                    luid: $sym.-01xK8nRqT2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $sym.-01xG38W3rdcCu4gS
            hash: 424bc136bf4ce108142ac958eb3fd5588d79dcc3be91b33496d187b36aa99c81
            data:
              handle: eur
              parent: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
              factor: 100
              custom:
                description: Euro
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: ada4d1bf7fc9c3903d6aba36d51ad7799f236ade9c6dc69f411d97ea5c4f93f5
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: M/bpRzgrJRTqJVE+ImEKfKLuiCjHpZ+6C85ab8/Gw+aC+sCLdW38EODmeeq4b3W1XExlvsOXi28bXC9bcsYwBA==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 77409d8a851ca1fbd9fc4033654ab62d2e2566c13ea6375e049d88f0a9d860af
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: XeIZl21Z6nyWtaSfn14YqFeJawuplq1Z1kQGfZSjRI9TC3Sh1NdtSptYYYKAk3geFrHiBXhlagVeqe0w9445AQ==
                  custom:
                    luid: $sym.-01xG38W3rdcCu4gS
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 1ac1be56a7d9316e139069978c34ee72da82969699ccd2876f1a6759ad74aa2b
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: ZhOV1TvQEO8wCIgIdjxumetsrVn5rADVHbLethYP0Lwo4iCBR/6Ux5SCAsteIJbBZwV0o2mOmD6zZvXVGE0jCA==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-symbol-request:
      summary: Create symbol
      value:
        hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
        data:
          handle: usd
          factor: 100
        meta:
          proofs:
            - method: ed25519-v2
              digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-symbol-response:
      summary: Created symbol
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
        data:
          handle: usd
          factor: 100
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
              custom:
                luid: $sym.-01xK8nRqT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-symbol-response:
      summary: Read symbol
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
        data:
          handle: usd
          factor: 100
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
              custom:
                luid: $sym.-01xK8nRqT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-symbol-request:
      summary: Update symbol
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: 3af05224f112dd0e731544a0a9725527c9c50c3be8650ab8ed01867eb8daf1de
        data:
          handle: usd
          parent: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
          factor: 100
          custom:
            description: United States Dollar
        meta:
          proofs:
            - method: ed25519-v2
              digest: 6c584cf836f01fcf751a063e57b5e273458e20865fee07f12b43ad48c88058e9
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: pkK04VFjq41GdfOH3cDTlJkGmRX7kPrLIRKKhwo/oD0Xwqrmd5HHCVEHQfTewpyVrJK3BgyXrchV6e11cbF4Cg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-symbol-response:
      summary: Updated symbol
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: 3af05224f112dd0e731544a0a9725527c9c50c3be8650ab8ed01867eb8daf1de
        data:
          handle: usd
          parent: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
          factor: 100
          custom:
            description: United States Dollar
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 6c584cf836f01fcf751a063e57b5e273458e20865fee07f12b43ad48c88058e9
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: pkK04VFjq41GdfOH3cDTlJkGmRX7kPrLIRKKhwo/oD0Xwqrmd5HHCVEHQfTewpyVrJK3BgyXrchV6e11cbF4Cg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: bd20d18c9b5640b68af457e8a16d1a48f2fdffbe4bdaba92d464d22185e49d22
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: UF0IqI1F09rD8GMpgqYoIjT7rot2h2GF9crhUx2qGmnQIi/Pl3LTiXNWlHKzI0OBk3QaelH50jQgosC9ltJAAw==
              custom:
                luid: $sym.-01xK8nRqT2dS4wX3
                moment: '2025-04-05T14:30:00.220Z'
    sign-symbol-request:
      summary: Sign symbol
      value:
        method: ed25519-v2
        public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
        digest: 039ff5c79901e9d6883ac10a57d3ff52360e95b7a44a571bbd987c26e909839b
        result: RJ9P7Y27WFGdUUfT9GXWX4iZROScQsBKRTGMh0y9RpgHRvQ7FsuSCnv4K9cPOuuFa6JHw2cAFlel8PERRtCeAw==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-symbol-response:
      summary: Signed symbol
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
        data:
          handle: usd
          factor: 100
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
              custom:
                luid: $sym.-01xK8nRqT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: ach-admin
              method: ed25519-v2
              digest: 039ff5c79901e9d6883ac10a57d3ff52360e95b7a44a571bbd987c26e909839b
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: RJ9P7Y27WFGdUUfT9GXWX4iZROScQsBKRTGMh0y9RpgHRvQ7FsuSCnv4K9cPOuuFa6JHw2cAFlel8PERRtCeAw==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    check-symbol-access-request:
      summary: Check symbol access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: uDDbNWWIChcbXC5+0lf3p7kDyrtzPeCPXoM/fV5uR7VQpGHL7KAWPUA+fuH7nUhtVccEsLSdja6Wj/mvmN32AA==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-symbol-access-response:
      summary: Symbol access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-symbol-changes-response:
      summary: List of symbol changes
      value:
        hash: 0592ab536f712e989481f3674a0d06fe46347f8de946c8f7c1ec36483a2b546e
        data:
          - luid: $sym.-01xK8nRqT2dS4wX3
            hash: 3af05224f112dd0e731544a0a9725527c9c50c3be8650ab8ed01867eb8daf1de
            data:
              handle: usd
              parent: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
              factor: 100
              custom:
                description: United States Dollar
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 6c584cf836f01fcf751a063e57b5e273458e20865fee07f12b43ad48c88058e9
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: pkK04VFjq41GdfOH3cDTlJkGmRX7kPrLIRKKhwo/oD0Xwqrmd5HHCVEHQfTewpyVrJK3BgyXrchV6e11cbF4Cg==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: bd20d18c9b5640b68af457e8a16d1a48f2fdffbe4bdaba92d464d22185e49d22
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: UF0IqI1F09rD8GMpgqYoIjT7rot2h2GF9crhUx2qGmnQIi/Pl3LTiXNWlHKzI0OBk3QaelH50jQgosC9ltJAAw==
                  custom:
                    luid: $sym.-01xK8nRqT2dS4wX3
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $sym.-01xK8nRqT2dS4wX3
            hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
            data:
              handle: usd
              factor: 100
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              proofs:
                - signer: ach-admin
                  method: ed25519-v2
                  digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
                  public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
                  result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
                  custom:
                    luid: $sym.-01xK8nRqT2dS4wX3
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: f2bd42b17acd70b9e159ed40e7b0caf7cbf20afadbfe5936871c923faab6cf79
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: KohSh3LZodYXD7nNam2d/R0gZa9/VsXXcIJkDWFocq1uvX/iG4/5CL+ehbll9lhzlZum9wcQGgmwcMj+/tcdAg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-symbol-change-response:
      summary: Read symbol change
      value:
        luid: $sym.-01xK8nRqT2dS4wX3
        hash: d8ba7197becbb432ccc0400d176f14d45e70176c13fcf51b68bd3b471875ce8a
        data:
          handle: usd
          factor: 100
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
          proofs:
            - signer: ach-admin
              method: ed25519-v2
              digest: 471f3fb93a190089f116977d0837cb93bec66684d29ae0486a4e885df51d73a2
              public: AN6XpZ7T8FDCkjbSpIVE2cioQ7hajp8DBTOioz/TSZ8=
              result: hp/s6DeY6k2Csx2lbgoT0P4fMYoD6GTHjsRnbTPcklAzo9eyPDpV0S598T+Mv8sp0QyeEHcGj0pNttnMMDtFCg==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: caca7516ee43f7cc71f915027e7fe80c88a1f2dad0ff5939e5051c14f53c399d
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: aZ+5+qHFAuy66BpaW/4ActjpyuA7o4E02EEw4b9Fz185yZ+Ox2wmGScH8if/5Geyfnxz2pMtQvSBtTJJaol8Cg==
              custom:
                luid: $sym.-01xK8nRqT2dS4wX3
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    list-requests-response:
      summary: List requests
      value:
        hash: a9d7d88d3b0b8688a6c04968c1ce5ff2a6cddf43a7c1f02c2b169ccbe15e2785
        data:
          - luid: $req.-01xK0rStT2dS4wX3
            hash: f1ce9ed7de04b389a6a2ae6aac7ec1ae7280795eebdfb060f98c3fc09fd02903
            data:
              handle: F33aRjVTkwqZ6ybX6
              schema: rest
              record: wallet
              action: create
              source: signer:tesla-bank-admin
              target: ledger:instant-payments
              params:
                method: POST
                url: https://ldg-dev.one/api/v2/wallets
                headers:
                  content-type: application/json
                  x-ledger: instant-payments
                  Authorization: '[REDACTED]'
                body: '{"hash":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","data":{"handle":"tesla-bank-wallet","custom":{"name":"Tesla Bank Wallet","description":"Primary wallet for Tesla Bank"}},"meta":{"proofs":[{"method":"ed25519-v2","digest":"ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed","public":"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=","result":"0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==","custom":{"moment":"2025-04-05T14:30:00.000Z","status":"created"}}]}}'
                moment: '2025-04-05T14:30:00.000Z'
              result:
                status: 201
                headers:
                  content-type: application/json; charset=utf-8
                body: '{"luid":"$wlt.-01xK9pStU3eT5xY4","hash":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","data":{"handle":"tesla-bank-wallet","custom":{"name":"Tesla Bank Wallet","description":"Primary wallet for Tesla Bank"}},"meta":{"status":"created","moment":"2025-04-05T14:30:00.050Z","owners":["dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="],"proofs":[{"signer":"tesla-bank-admin","method":"ed25519-v2","digest":"ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed","public":"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=","result":"0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==","custom":{"moment":"2025-04-05T14:30:00.000Z","status":"created"}},{"signer":"system","method":"ed25519-v2","digest":"75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3","public":"bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=","result":"4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==","custom":{"luid":"$wlt.-01xK9pStU3eT5xY4","moment":"2025-04-05T14:30:00.050Z","status":"created"}}]}}'
                moment: '2025-04-05T14:30:00.050Z'
              access:
                - action: any
            meta:
              status: created
              moment: '2025-04-05T14:30:00.060Z'
              owners:
                - bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: b6ddf978144fa05e1c2b1b1b5c3eca7469d6eeb0cbe67f2ffaa232a629d09e2e
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: ZMkaGM4iM5pJ+bJmvsyu/OzuVUeVcYnqqez4yxb/E9sXFmZxHWWKF08jAzoXAUBGy075gFjK8Pn2r0RpK2smAA==
                  custom:
                    luid: $req.-01xK0rStT2dS4wX3
                    moment: '2025-04-05T14:30:00.060Z'
          - luid: $req.-01xK0rStT2dS4wX4
            hash: 3b912e7e7035ea646e84d54b95b5b7d283e39d79b50087cf4e50ef0b9b72ca53
            data:
              handle: wdKhrIdmQwZRzUPuC
              schema: rest
              record: wallet
              action: query
              source: signer:tesla-bank-admin
              target: ledger:instant-payments
              params:
                method: GET
                url: https://ldg-dev.one/api/v2/wallets
                headers:
                  x-ledger: instant-payments
                  Authorization: '[REDACTED]'
                body: '{}'
                moment: '2025-04-05T14:30:01.000Z'
              result:
                status: 200
                headers:
                  content-type: application/json; charset=utf-8
                body: '{"hash":"9a408586c772ea13552a87dca52280eea555079b2c03635c5800fa439c2a185c","data":[{"luid":"$wlt.-01xK9pStU3eT5xY4","hash":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","data":{"handle":"tesla-bank-wallet","custom":{"name":"Tesla Bank Wallet","description":"Primary wallet for Tesla Bank"}},"meta":{"status":"created","moment":"2025-04-05T14:30:00.050Z","owners":["dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="],"proofs":[{"signer":"tesla-bank-admin","method":"ed25519-v2","digest":"ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed","public":"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=","result":"0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==","custom":{"moment":"2025-04-05T14:30:00.000Z","status":"created"}},{"signer":"system","method":"ed25519-v2","digest":"75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3","public":"bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=","result":"4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==","custom":{"luid":"$wlt.-01xK9pStU3eT5xY4","moment":"2025-04-05T14:30:00.050Z","status":"created"}}]}},{"luid":"$wlt.-01xG49X4seDD6yZT","hash":"f3ddf0b88ff2286b94d362a061fdf176be43b1d43a4108a820bf2b908fd6c734","data":{"handle":"nova-bank-wallet","parent":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","custom":{"name":"Nova Bank Wallet","description":"Participant wallet for Nova Bank"}},"meta":{"status":"created","moment":"2025-04-05T14:21:40.025Z","owners":["i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0="],"proofs":[{"signer":"nova-bank-admin","method":"ed25519-v2","digest":"58bd7f82f0e5f628bb00e377e7d5aa108de958f0a00a71e911f29c68698cb768","public":"i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=","result":"rc7UmWikd8wvliVvFPgRHyVhzlRZoje1JYChB4Y98PeawK2fhcE64/CjwlovgdTu4SiGs0keYpgoYUBq6FE4Bw==","custom":{"moment":"2025-04-05T14:21:40.000Z","status":"created"}},{"signer":"system","method":"ed25519-v2","digest":"6d6ef1e91c08426733091f9adf4e6443ac9bd2aaa07eab29a39717032f91a4fa","public":"bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=","result":"cpCw1Jp+RGedJAKqKkucS5m2GvbtZvnrDz7wSo+wCbPObYqnOte6934BVRMdNbbbKp750xxEEp2KZRPvbAVtAQ==","custom":{"luid":"$wlt.-01xG49X4seDD6yZT","moment":"2025-04-05T14:21:40.025Z","status":"created"}}]}}],"page":{"index":0,"limit":20},"meta":{"proofs":[{"signer":"system","method":"ed25519-v2","digest":"01930bcf36610d733a3873ddb09a918bca1ee22cd6b45715aa3236fa93010676","public":"bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=","result":"RPCxKMgoQc2z5t1AyKKdkBsmr9vPbjfynF+9KbeN+ekXglBVgKuZ7sQKfTRyMc/JNJWV+C1O+Pwslz/1VyKVBg==","custom":{"moment":"2025-04-05T14:30:00.100Z"}}]}}'
                moment: '2025-04-05T14:30:01.020Z'
              access:
                - action: any
            meta:
              status: created
              moment: '2025-04-05T14:30:01.030Z'
              owners:
                - bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: e87ebec48edd6431b614d085ae2bf8f771adcdb44256de16c5bd9eb48a958caf
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: Z/HGez7q/hLyFb3M3n70uChqDaEMT+1e3mRJVPdBAtXYAu/B00AnEFnpT0FSuhEjz+X1oMyJSCpxdaBghUFKDQ==
                  custom:
                    luid: $req.-01xK0rStT2dS4wX4
                    moment: '2025-04-05T14:30:01.030Z'
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 68b87ecb3e3961ff07af637727d70656d1ac13ba96d969289f7dc8ed1347a1ab
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: +OBi2N2RzasnQLW2erR24hGp/XyuqMAATzD4lfAi04MZCx2HR/e0D/fCfo+AjHBp18cRuKcp0vZVzNB+4t9ADg==
              custom:
                moment: '2025-04-05T14:30:01.050Z'
    read-request-response:
      summary: Read request
      value:
        luid: $req.-01xK0rStT2dS4wX3
        hash: f1ce9ed7de04b389a6a2ae6aac7ec1ae7280795eebdfb060f98c3fc09fd02903
        data:
          handle: F33aRjVTkwqZ6ybX6
          schema: rest
          record: wallet
          action: create
          source: signer:tesla-bank-admin
          target: ledger:instant-payments
          params:
            method: POST
            url: https://ldg-dev.one/api/v2/wallets
            headers:
              content-type: application/json
              x-ledger: instant-payments
              Authorization: '[REDACTED]'
            body: '{"hash":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","data":{"handle":"tesla-bank-wallet","custom":{"name":"Tesla Bank Wallet","description":"Primary wallet for Tesla Bank"}},"meta":{"proofs":[{"method":"ed25519-v2","digest":"ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed","public":"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=","result":"0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==","custom":{"moment":"2025-04-05T14:30:00.000Z","status":"created"}}]}}'
            moment: '2025-04-05T14:30:00.000Z'
          result:
            status: 201
            headers:
              content-type: application/json; charset=utf-8
            body: '{"luid":"$wlt.-01xK9pStU3eT5xY4","hash":"0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b","data":{"handle":"tesla-bank-wallet","custom":{"name":"Tesla Bank Wallet","description":"Primary wallet for Tesla Bank"}},"meta":{"status":"created","moment":"2025-04-05T14:30:00.050Z","owners":["dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="],"proofs":[{"signer":"tesla-bank-admin","method":"ed25519-v2","digest":"ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed","public":"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=","result":"0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==","custom":{"moment":"2025-04-05T14:30:00.000Z","status":"created"}},{"signer":"system","method":"ed25519-v2","digest":"75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3","public":"bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=","result":"4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==","custom":{"luid":"$wlt.-01xK9pStU3eT5xY4","moment":"2025-04-05T14:30:00.050Z","status":"created"}}]}}'
            moment: '2025-04-05T14:30:00.050Z'
          access:
            - action: any
        meta:
          status: created
          moment: '2025-04-05T14:30:00.060Z'
          owners:
            - bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
          proofs:
            - signer: system
              method: ed25519-v2
              digest: b6ddf978144fa05e1c2b1b1b5c3eca7469d6eeb0cbe67f2ffaa232a629d09e2e
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: ZMkaGM4iM5pJ+bJmvsyu/OzuVUeVcYnqqez4yxb/E9sXFmZxHWWKF08jAzoXAUBGy075gFjK8Pn2r0RpK2smAA==
              custom:
                luid: $req.-01xK0rStT2dS4wX3
                moment: '2025-04-05T14:30:00.060Z'
    list-wallets-response:
      summary: List of wallets
      value:
        hash: 9a408586c772ea13552a87dca52280eea555079b2c03635c5800fa439c2a185c
        data:
          - luid: $wlt.-01xK9pStU3eT5xY4
            hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
            data:
              handle: tesla-bank-wallet
              custom:
                name: Tesla Bank Wallet
                description: Primary wallet for Tesla Bank
            meta:
              status: created
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
                  custom:
                    luid: $wlt.-01xK9pStU3eT5xY4
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
          - luid: $wlt.-01xG49X4seDD6yZT
            hash: f3ddf0b88ff2286b94d362a061fdf176be43b1d43a4108a820bf2b908fd6c734
            data:
              handle: nova-bank-wallet
              parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
              custom:
                name: Nova Bank Wallet
                description: Participant wallet for Nova Bank
            meta:
              status: created
              moment: '2025-04-05T14:21:40.025Z'
              owners:
                - i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
              proofs:
                - signer: nova-bank-admin
                  method: ed25519-v2
                  digest: 58bd7f82f0e5f628bb00e377e7d5aa108de958f0a00a71e911f29c68698cb768
                  public: i90xMpGuWFGxnnKRX/7slzF/vH+1XW2UcAl/e7kUKa0=
                  result: rc7UmWikd8wvliVvFPgRHyVhzlRZoje1JYChB4Y98PeawK2fhcE64/CjwlovgdTu4SiGs0keYpgoYUBq6FE4Bw==
                  custom:
                    moment: '2025-04-05T14:21:40.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 6d6ef1e91c08426733091f9adf4e6443ac9bd2aaa07eab29a39717032f91a4fa
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: cpCw1Jp+RGedJAKqKkucS5m2GvbtZvnrDz7wSo+wCbPObYqnOte6934BVRMdNbbbKp750xxEEp2KZRPvbAVtAQ==
                  custom:
                    luid: $wlt.-01xG49X4seDD6yZT
                    moment: '2025-04-05T14:21:40.025Z'
                    status: created
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 01930bcf36610d733a3873ddb09a918bca1ee22cd6b45715aa3236fa93010676
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: RPCxKMgoQc2z5t1AyKKdkBsmr9vPbjfynF+9KbeN+ekXglBVgKuZ7sQKfTRyMc/JNJWV+C1O+Pwslz/1VyKVBg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    create-wallet-request:
      summary: Create wallet
      value:
        hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        data:
          handle: tesla-bank-wallet
          custom:
            name: Tesla Bank Wallet
            description: Primary wallet for Tesla Bank
        meta:
          proofs:
            - method: ed25519-v2
              digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
    create-wallet-response:
      summary: Created wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        data:
          handle: tesla-bank-wallet
          custom:
            name: Tesla Bank Wallet
            description: Primary wallet for Tesla Bank
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
              custom:
                luid: $wlt.-01xK9pStU3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    read-wallet-response:
      summary: Read wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        data:
          handle: tesla-bank-wallet
          custom:
            name: Tesla Bank Wallet
            description: Primary wallet for Tesla Bank
        meta:
          status: created
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
              custom:
                luid: $wlt.-01xK9pStU3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
    update-wallet-request:
      summary: Update wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: e34883a7a8dcad9fdecdce86471bc56a789f1bdf195b839028b5d72c516f8a93
        data:
          handle: tesla-bank-wallet
          parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
          custom:
            name: Tesla Bank Primary Wallet
            description: Updated primary wallet for Tesla Bank
        meta:
          proofs:
            - method: ed25519-v2
              digest: 8e5364b61bae13a220e1f5b53e9d2ee464182ca3c23e73df735bd0195ab8d3d9
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: HR/swDr5IerSRkU0buaCnNsZII5uvh7NiqaVsq90FX148RrksmQbrqra/6larbwryu1tjvZB/azLj4XBOyVpCg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
    update-wallet-response:
      summary: Updated wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: e34883a7a8dcad9fdecdce86471bc56a789f1bdf195b839028b5d72c516f8a93
        data:
          handle: tesla-bank-wallet
          parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
          custom:
            name: Tesla Bank Primary Wallet
            description: Updated primary wallet for Tesla Bank
        meta:
          status: created
          moment: '2025-04-05T14:30:00.220Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 8e5364b61bae13a220e1f5b53e9d2ee464182ca3c23e73df735bd0195ab8d3d9
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: HR/swDr5IerSRkU0buaCnNsZII5uvh7NiqaVsq90FX148RrksmQbrqra/6larbwryu1tjvZB/azLj4XBOyVpCg==
              custom:
                moment: '2025-04-05T14:30:00.200Z'
            - signer: system
              method: ed25519-v2
              digest: c0d531830508c6c9577df5393f9d639098aa67b8009b55f83bfc4f3c9f1973e6
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 9dtr5oO2kaT21oDiLevlLTIt6WUHo94GTZLkJLxE5s845+4b4JMfNIp4JmIsmf8rMuCURl1m6tZZGJ0tEXISCg==
              custom:
                luid: $wlt.-01xK9pStU3eT5xY4
                moment: '2025-04-05T14:30:00.220Z'
    drop-wallet-request:
      summary: Drop wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: bf676c8a1b31cdc30f2f397678097fc115653d2c8745103813ea476fd1e2e940
        data:
          parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        meta:
          proofs:
            - method: ed25519-v2
              digest: 536b7984eee3b07accd0acf1f58cf8851bfac8295fc3e7901ab76842355c300c
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: hQiC7N8Ar0qrKfvg1DD7UJ4GhTt9tw+jeB2yspIS0ztUeaHINjrzHEamDm/BbXrshi7ngnx9n6lvc6jMeiWAAg==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                status: dropped
    drop-wallet-response:
      summary: Drop wallet response
      value: ''
    sign-wallet-request:
      summary: Sign wallet
      value:
        method: ed25519-v2
        public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
        digest: 655a06bac038ec3a858c17115d95baa39490c681ec16512301c0437419f8835e
        result: aDFySRINgetqnvVzhAIOnId/vYr8dFjPMqB+CcuB+Aewf7iVRxsEklEkwsZCXLoyryMUAQnXL1Jyc50TCfUcDA==
        custom:
          moment: '2025-04-05T14:30:10.000Z'
          status: active
    sign-wallet-response:
      summary: Signed wallet
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        data:
          handle: tesla-bank-wallet
          custom:
            name: Tesla Bank Wallet
            description: Primary wallet for Tesla Bank
        meta:
          status: active
          moment: '2025-04-05T14:30:10.020Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
              custom:
                luid: $wlt.-01xK9pStU3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: 655a06bac038ec3a858c17115d95baa39490c681ec16512301c0437419f8835e
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: aDFySRINgetqnvVzhAIOnId/vYr8dFjPMqB+CcuB+Aewf7iVRxsEklEkwsZCXLoyryMUAQnXL1Jyc50TCfUcDA==
              custom:
                moment: '2025-04-05T14:30:10.000Z'
                status: active
    list-wallet-balances-response:
      summary: Wallet balances
      value:
        hash: 1a13f7083eda9f955e47b168f74cd6fec353fa66a1deb03c9c153a33eb7dfb31
        data:
          - luid: $bal.-01xK0aRsT1bQ2vW1
            hash: 435a43b702dd65b745c3ad3d362e1b1aecfc773c925a7aef2d7447363f7caa75
            data:
              schema: available
              wallet: tesla-bank-wallet
              symbol: usd
              amount: 1500000
            meta:
              moment: '2025-04-05T14:30:00.500Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: b504c021a5c87b4a67d79197124b94549bb14ee289fdb855a43c59cfac1b0a72
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: LMn3mXU63tU9+YuSVHQM3EhWK+ulw2p2RW/APyxVyNs2jC7VpVOpnbglk3V4Ct/PhQTK8kVvtUoUEIXhyIEhDw==
                  custom:
                    luid: $bal.-01xK0aRsT1bQ2vW1
                    moment: '2025-04-05T14:30:00.500Z'
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: d6e8f6a734b8c55d0043ad0090d75ac7659ce106dcb36322b2220a79d7dd64a4
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 2jHq7QMHJeMyowWxjTVu++94/xZ1FGxhzG6OEgSYDsfJNLU9Cxp2C/cn6RKYnQbNZP3ABwAEHRUOACuJgmPDAg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    list-wallet-limits-response:
      summary: Wallet limits
      value:
        hash: a691a97f50f84f3628e094654a8c5978f48536d10f755ef036b2208cf886ab04
        data:
          - luid: $lmt.-01xK1bStU2cR3wX2
            hash: 0582abcb4e9bfe82192b261f4c2773a956035ffd53135852991428f74e872af9
            data:
              wallet: tesla-bank-wallet
              symbol: usd
              amount: 0
              metric: minBalance
            meta:
              moment: '2025-04-05T14:30:00.510Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: 14dc7b0cb70cd380ca5a79f1ab84dea499a0f65096c6bddcdf46cbc54b05eeca
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 7+O8nk9HpuUWwWTCcqk808fCzpv+OMKhQQ5TXHlsMYh8q/wEnsfILeD4o7TDvutxTk++Qzg2xYiDQ14XvvGpBg==
                  custom:
                    luid: $lmt.-01xK1bStU2cR3wX2
                    moment: '2025-04-05T14:30:00.510Z'
          - luid: $lmt.-01xK1bStU2cR3wX3
            hash: 8ccdbda697141862d062c1aa8b86b75491e16f7d6553873bf1aa747daedddb46
            data:
              wallet: tesla-bank-wallet
              symbol: usd
              amount: 10000000
              metric: maxBalance
            meta:
              moment: '2025-04-05T14:30:00.515Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: 05092581baf9fceec703fe66aad4721bc7c2f17a5c43ceb29997f2183b82bc1b
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: MgU2I1TJAKiOnpTtp5S7RPCfYJiDLJk3fXAPUnkaiB7EpKSdsaenCXli6y1Vjv5Fk6WOliCiwujOHR/xxuH7AA==
                  custom:
                    luid: $lmt.-01xK1bStU2cR3wX3
                    moment: '2025-04-05T14:30:00.515Z'
        page:
          index: 0
          limit: 20
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 5b9d01b6d7f2825ffd7c98e208d51b2c9456e9d5435c0a96d67dd3400116f163
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: yZwPkM0mB9x2+KQbZyEiGQCv1zH7ukj6j59+tspnbIitAr9Ym3sqAdotcdGGtIgo33hp9H7FIp6uFgU51qpnBg==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-wallet-anchors-response:
      summary: Wallet anchors
      value:
        hash: 349215864c5972a1b48cdc791f575d611d08bb9829dfe177d28ab33f38e12f28
        data:
          - luid: $anc.-01xK2cTuV3dS4xY3
            hash: b907d26c8dc13a9f147ddf61412ec0690befbe5389b491fb8a132b2e7560df87
            data:
              handle: tel:+1234567890
              wallet: tesla-bank-wallet
              target: svgs:1001001234@tesla-bank.com
              symbol: usd
              custom:
                name: John Doe
                entityType: individual
            meta:
              moment: '2025-04-05T14:30:00.520Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: 6ab5772cc1cf45af4c943bcbd49704b1a27f2cff20d05c8946ec1949bdbcf041
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: XdDctHONO7mPP4rNK47jff4kfT452fjd2cF+Z3pqImVlyW0XlDGK/SPfVR4m1rDjsVml8MQqYVAwFi9C/PHwBQ==
                  custom:
                    luid: $anc.-01xK2cTuV3dS4xY3
                    moment: '2025-04-05T14:30:00.520Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 99cc95b4a6e80ef5e3f7c838042ef9366118f8fa5179e5b4277f5cd1cc0c8397
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: XVF5wbVsfoFMiuNC8oPbEoSJk5jae1v5SFYoNXvELGFX/8Bm6HCT60BSQtkX3kO1QMoItUx/NEPL0ARYlF6JDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    lookup-wallet-anchors-request:
      summary: Lookup wallet anchors
      value:
        hash: f4cf1f02ebec6637d14ece86dc4e00819fb23d9eea47d0a67403757f12746967
        data:
          wallet: tesla-bank-wallet
        meta:
          proofs:
            - method: ed25519-v2
              digest: be24c2b7b68c42b390b6e252e00275e0dbcd5df1704deeec9b1020c0f95255a2
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: IejjxcKL4iwHkRg71OBg3NXq2PY7V4bLBQAf5hAMBLwBFUjEhtlP2HAd2NkYBp3UkegY6qmLoQ6xy1KVCLw4Bg==
              custom:
                moment: '2025-04-05T14:30:00.530Z'
    lookup-wallet-anchors-response:
      summary: Wallet anchors lookup result
      value:
        hash: 349215864c5972a1b48cdc791f575d611d08bb9829dfe177d28ab33f38e12f28
        data:
          - luid: $anc.-01xK2cTuV3dS4xY3
            hash: b907d26c8dc13a9f147ddf61412ec0690befbe5389b491fb8a132b2e7560df87
            data:
              handle: tel:+1234567890
              wallet: tesla-bank-wallet
              target: svgs:1001001234@tesla-bank.com
              symbol: usd
              custom:
                name: John Doe
                entityType: individual
            meta:
              moment: '2025-04-05T14:30:00.520Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: 6ab5772cc1cf45af4c943bcbd49704b1a27f2cff20d05c8946ec1949bdbcf041
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: XdDctHONO7mPP4rNK47jff4kfT452fjd2cF+Z3pqImVlyW0XlDGK/SPfVR4m1rDjsVml8MQqYVAwFi9C/PHwBQ==
                  custom:
                    luid: $anc.-01xK2cTuV3dS4xY3
                    moment: '2025-04-05T14:30:00.520Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 99cc95b4a6e80ef5e3f7c838042ef9366118f8fa5179e5b4277f5cd1cc0c8397
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: XVF5wbVsfoFMiuNC8oPbEoSJk5jae1v5SFYoNXvELGFX/8Bm6HCT60BSQtkX3kO1QMoItUx/NEPL0ARYlF6JDQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-wallet-domains-response:
      summary: Wallet domains
      value:
        hash: 0e288dbc19144c6e44cb0332464c5b572aff0baf9a6f9b0fe4af46dc4bd1dfaf
        data:
          - luid: $dom.-01xK3dUvW4eT5yZ4
            hash: d95e28d043522c1fd1b14e32a9d8e14365b1d4e0e82545bdb08523812262fa2b
            data:
              handle: tesla-bank.com
              schema: bank
              custom:
                bankName: Tesla Bank
                bankBic: TSLAUS33
            meta:
              moment: '2025-04-05T14:30:00.540Z'
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: 30751ff35889de4a25f603149ada685c22a697a3a309ec442f7c0e1545f4a921
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 6/aTlPhfMcJJiPzJ925E8LWtt/J5dVQHXRMHq5rP1VPuwM74n/Tq5+RokPsiUEOSskqr3gEypJ088zy2BCMZBA==
                  custom:
                    luid: $dom.-01xK3dUvW4eT5yZ4
                    moment: '2025-04-05T14:30:00.540Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 4d104122b4e7b375c7665baf8ac1bd678098dfa9b5cf6e79c7ce5e4b13c129fc
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: uXvf9rqDgtIvEYxU0SJtVagt45bp8M3NUgJawrzOgReoU+qh8AuU/UTrTqdRM+YrgSsloprI2fakY2U/oLUPBw==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    drop-wallet-post-request:
      summary: Drop wallet (POST)
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: bf676c8a1b31cdc30f2f397678097fc115653d2c8745103813ea476fd1e2e940
        data:
          parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        meta:
          proofs:
            - method: ed25519-v2
              digest: 0cfb9588d062a3147465e100a95200aba1b76e5000c627f54f9ae0afaddd8292
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: /mj9/emldOpkeA5tE38UzGGcse67gca4zOKr1SORIPrTLsXw4CbQ8aSBNOzPk6d9oPenpWv01zGSR73K3EnpDg==
              custom:
                moment: '2025-04-05T14:30:50.000Z'
                reason: Account closed by customer request
                status: dropped
    drop-wallet-post-response:
      summary: Drop wallet response (POST)
      value: ''
    check-wallet-access-request:
      summary: Check wallet access
      value:
        hash: 82ec2db864a10213d3a53faf0c48b482adf95be5b7cecfa05fdce05887db0a70
        data:
          action: update
        meta:
          proofs:
            - method: ed25519-v2
              digest: b4c170e807545bc0d4044ae68d32535112e1671c0d2578aece4f4d5246b53e18
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: aVDBsQtDWmvuxtI8vfEOTtZOtZUE+mV+DCX351sVqkkVIshR4uTLO+HNFjFxX2AwsypKRfK09HNIl345CzXkBQ==
              custom:
                moment: '2025-04-05T14:30:00.400Z'
    check-wallet-access-response:
      summary: Wallet access
      value:
        hash: 9bd3bacf92a1575da51c087165c0971f9d025deae395797a55553563f48a4385
        data:
          - hash: 025df7863203da41282a910802a1f50a943adfdbb824152f81caea881d2a251d
            data:
              record: any
              action: any
            meta:
              proofs:
                - signer: system
                  method: ed25519-v2
                  digest: adc6689e64ea57e4039c1c099e244fdc000f4ac95ad97b64b62ca07d5bb8bd6d
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: rb1kggq6WLtesxG8vwdCaEf6qBuSt/b0O92h1yExKGEyF1tm7TrXd2sHrExV2kqKavkIRUd8JTaXm96WJz+wAg==
                  custom:
                    moment: '2025-04-05T14:30:00.415Z'
        meta:
          proofs:
            - signer: system
              method: ed25519-v2
              digest: 32227151eeea827d2f6bfe0c0851fc85abfd866ecbeeb8c4dbe61337e1bb5675
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: D8Yc4TbrKXPZLxbxfgsSxG0Gm7LgR7/pr8lt2+LC3tn2VbvP1rnGbST4vaRNLno0oFWqmFiLlWhHpbSmdgt+Aw==
              custom:
                moment: '2025-04-05T14:30:00.415Z'
    list-wallet-changes-response:
      summary: List of wallet changes
      value:
        hash: 2766883e216f6abe543f25d53328d4b98fb6e3b67e1e2c6d38172c3e9bf3b702
        data:
          - luid: $wlt.-01xK9pStU3eT5xY4
            hash: e34883a7a8dcad9fdecdce86471bc56a789f1bdf195b839028b5d72c516f8a93
            data:
              handle: tesla-bank-wallet
              parent: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
              custom:
                name: Tesla Bank Primary Wallet
                description: Updated primary wallet for Tesla Bank
            meta:
              status: created
              action: update
              change: 2
              moment: '2025-04-05T14:30:00.220Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: 8e5364b61bae13a220e1f5b53e9d2ee464182ca3c23e73df735bd0195ab8d3d9
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: HR/swDr5IerSRkU0buaCnNsZII5uvh7NiqaVsq90FX148RrksmQbrqra/6larbwryu1tjvZB/azLj4XBOyVpCg==
                  custom:
                    moment: '2025-04-05T14:30:00.200Z'
                - signer: system
                  method: ed25519-v2
                  digest: c0d531830508c6c9577df5393f9d639098aa67b8009b55f83bfc4f3c9f1973e6
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 9dtr5oO2kaT21oDiLevlLTIt6WUHo94GTZLkJLxE5s845+4b4JMfNIp4JmIsmf8rMuCURl1m6tZZGJ0tEXISCg==
                  custom:
                    luid: $wlt.-01xK9pStU3eT5xY4
                    moment: '2025-04-05T14:30:00.220Z'
          - luid: $wlt.-01xK9pStU3eT5xY4
            hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
            data:
              handle: tesla-bank-wallet
              custom:
                name: Tesla Bank Wallet
                description: Primary wallet for Tesla Bank
            meta:
              status: created
              action: create
              change: 1
              moment: '2025-04-05T14:30:00.050Z'
              owners:
                - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              proofs:
                - signer: tesla-bank-admin
                  method: ed25519-v2
                  digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
                  public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
                  result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
                  custom:
                    moment: '2025-04-05T14:30:00.000Z'
                    status: created
                - signer: system
                  method: ed25519-v2
                  digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
                  public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
                  result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
                  custom:
                    luid: $wlt.-01xK9pStU3eT5xY4
                    moment: '2025-04-05T14:30:00.050Z'
                    status: created
        page:
          index: 0
          limit: 20
          total: 2
        meta:
          moment: '2025-04-05T14:30:00.300Z'
          proofs:
            - signer: system
              method: ed25519-v2
              digest: e0814111a965077c8477bc5cf31b889f8f5b335c60f3d16a88c7bcc435bb7764
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: aEcwFr72FupM8CCamY6q3qhgE2ZXk+j+MLyUwIJeC3u8Zl1whFjccgnwmy9PaMDHjqfRAh3FfkOSWGIuGyTfAQ==
              custom:
                moment: '2025-04-05T14:30:00.100Z'
    read-wallet-change-response:
      summary: Read wallet change
      value:
        luid: $wlt.-01xK9pStU3eT5xY4
        hash: 0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b
        data:
          handle: tesla-bank-wallet
          custom:
            name: Tesla Bank Wallet
            description: Primary wallet for Tesla Bank
        meta:
          status: created
          action: create
          change: 1
          moment: '2025-04-05T14:30:00.050Z'
          owners:
            - dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
          proofs:
            - signer: tesla-bank-admin
              method: ed25519-v2
              digest: ae6506402682b12e805b1d75cf3997f18b41e5a24eb318fb223b7e5e39ca40ed
              public: dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=
              result: 0H17ehu2rXMaNKwqV7l2EDe1VGqJbOgCFCq+8D5tVsz1qp7D6TXjfNTatijNpFi7nLlYf+LhlqLLnVSm1aMVAA==
              custom:
                moment: '2025-04-05T14:30:00.000Z'
                status: created
            - signer: system
              method: ed25519-v2
              digest: 75545655dad3c6ac9a9e7552262de308ed18e7377d6d4fe273d2254c86a9e5a3
              public: bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=
              result: 4NdQ4MSg7RoHtBEX8lUe9uxfNgfhcHLybvFyNLBzlJy7s78mBPxjCjErn7YQX4vxGdkm3zcpo+4bkJejO2oUDQ==
              custom:
                luid: $wlt.-01xK9pStU3eT5xY4
                moment: '2025-04-05T14:30:00.050Z'
                status: created
  responses:
    error-auth-unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/auth-unauthorized-error'
          examples:
            no-auth:
              $ref: '#/components/examples/auth-unauthorized-error'
    error-auth-forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/auth-forbidden-error'
          examples:
            forbidden:
              $ref: '#/components/examples/auth-forbidden-error'
    error-request-timeout:
      description: Request timeout
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/api-request-timeout-error'
          examples:
            request-timeout:
              $ref: '#/components/examples/api-request-timeout-error'
    error-unprocessable-entity-default:
      description: Unprocessable entity
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error'
              - type: object
                properties:
                  data:
                    title: ValidationErrorData
                    allOf:
                      - $ref: '#/components/schemas/error-data'
                      - type: object
                        properties:
                          reason:
                            type: string
                            enum:
                              - record.schema-invalid
                              - crypto.hash-invalid
                              - record.invalid
                              - crypto.signature-invalid
          examples:
            schema-invalid:
              $ref: '#/components/examples/record-schema-invalid-error'
            hash-invalid:
              $ref: '#/components/examples/crypto-hash-invalid-error'
            record-invalid:
              $ref: '#/components/examples/record-invalid-error'
    error-unexpected:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/api-unexpected-error'
          examples:
            unexpected:
              $ref: '#/components/examples/api-unexpected-error'
    error-record-duplicated:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/record-duplicated-error'
          examples:
            record-duplicated:
              $ref: '#/components/examples/record-duplicated-error'
    error-record-not-found:
      description: No record found for the provided `handle`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/record-not-found-error'
          examples:
            record-not-found:
              $ref: '#/components/examples/record-not-found-error'
    error-unprocessable-entity-update:
      description: Unprocessable entity
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error'
              - type: object
                properties:
                  data:
                    title: ValidationErrorData
                    allOf:
                      - $ref: '#/components/schemas/error-data'
                      - type: object
                        properties:
                          reason:
                            type: string
                            enum:
                              - record.schema-invalid
                              - crypto.hash-invalid
                              - record.invalid
                              - crypto.signature-invalid
                              - record.update-rejected
                              - record.relation-not-found
          examples:
            schema-invalid:
              $ref: '#/components/examples/record-schema-invalid-error'
            hash-invalid:
              $ref: '#/components/examples/crypto-hash-invalid-error'
            record-invalid:
              $ref: '#/components/examples/record-invalid-error'
            record-relation-not-found:
              $ref: '#/components/examples/record-relation-not-found-error'
    error-unprocessable-entity-delete:
      description: Unprocessable entity
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error'
              - type: object
                properties:
                  data:
                    title: ValidationErrorData
                    allOf:
                      - $ref: '#/components/schemas/error-data'
                      - type: object
                        properties:
                          reason:
                            type: string
                            enum:
                              - record.schema-invalid
                              - crypto.hash-invalid
                              - record.invalid
                              - crypto.signature-invalid
                              - record.drop-rejected
          examples:
            schema-invalid:
              $ref: '#/components/examples/record-schema-invalid-error'
            hash-invalid:
              $ref: '#/components/examples/crypto-hash-invalid-error'
            record-invalid:
              $ref: '#/components/examples/record-invalid-error'
            record-drop-rejected:
              $ref: '#/components/examples/record-drop-rejected-error'
