---
title: "Validator Change-Control Receipt"
method: POST
path: "/v1/tools/build_validator_change_control_receipt"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# Validator Change-Control Receipt

`POST /v1/tools/build_validator_change_control_receipt`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/build_validator_change_control_receipt`
- Auth: none declared

Turns one permissioned-validator event on an Avalanche Evergreen L1 -- a validator add, remove, or weight change -- into change-control evidence in the shape the SOX/ICFR control family already uses: the authorization chain of named identities, the weight delta and its share-of-total effect against a caller-supplied total network stake, and a quorum verdict comparing the caller's declared approval-quorum policy against what the caller states was achieved, plus a structural exceptions list (nonzero prior weight on an add, nonzero posterior weight on a remove, no delta on a weight change, an unauthorized change, an achieved-quorum count exceeding the number of named authorizers). No baked-in quorum threshold: quorum_required is the caller's own policy for that Evergreen L1, exactly as art-445/art-494 refuse to bake in their own thresholds. No chain observation, no P-Chain query, no RPC: the event is transcribed by the caller. Not X: use art-503 for a §27 dual-control certification that counts distinct approvers against a statutory-or-policy threshold across a subject; this node evidences one validator-set change event, not an approval-count certification. compliance_control. Zero PII: validator_ref and every authorizing identity are opaque references.

**Tool URL:** https://ainumbers.co/chaingraph/art-497-validator-change-control-receipt.html

## Request body

- object
  - `as_of` unknown, required
  - `authorizing_identities` unknown[], required
    - unknown
  - `change_type` unknown, required
  - `effective_epoch` unknown, required
  - `posterior_weight` unknown, required
  - `prior_weight` unknown, required
  - `quorum_achieved` unknown, required
  - `quorum_required` unknown, required
  - `total_stake_weight` unknown, required
  - `validator_ref` unknown, required

## Response `200`

Successful tool execution result

- object
  - `as_of` string
  - `authorization_chain` string[]
  - `authorized` boolean
  - `change_type` string
  - `change_type_valid` boolean
  - `effective_epoch` string
  - `exceptions` unknown[]
    - unknown
  - `posterior_weight` integer
  - `prior_weight` integer
  - `quorum_achieved` integer
  - `quorum_required` integer
  - `quorum_status` string
  - `share_of_total_pct` number
  - `total_stake_weight` integer
  - `validator_ref` string
  - `weight_delta` integer

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
