> For the complete documentation index, see [llms.txt](https://docs.hypertensor.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hypertensor.org/subnet-template/dht-records/record-validator.md).

# Record Validator

## Record validators are a generic mechanism for checking the DHT records, including:

* Enforcing a data schema (e.g., checking content types)
* Enforcing security requirements (e.g., allowing only the owner to update the record)
* Enforcement using predicates/callables for customizable logic on the DHTRecord (e.g., checking keys match allowable keys, checking expiration dates, etc.)

Record validators are middleware between GET and POST/PUT requests between peers for storing data in the subnet.

When starting the [DHT](https://docs.hypertensor.org/subnet-template/dht-records/pages/rMfBHZmBr1gMqY22HB9T#class-dht.dht-initial_peers-optional-sequence-union-multiaddr-str-none-start-bool-p2p-optional-p2p-n), it can be initialized with an [Iterable](https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterable) of the RecordValidatorBase and will validate in order of priority (see [How To Use](/subnet-template/dht-records/record-validator/how-to-use.md)).

***

## Record Validators:

#### Built-in record validators:

* [Predicate Validators](/subnet-template/dht-records/record-validator/predicate-validator.md)
* [Schema Validator](/subnet-template/dht-records/record-validator/schema-validator.md)
* [Signature Validator](/subnet-template/authorizers/signature-authorizer.md)
