> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pariprotocol.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Moderation

> What is checked on every upload and how takedowns work.

## What it is

Every image goes through the same checks, whether it comes from the Pari site or from an integrator. Pari does not hold anyone's mint, so moderation covers what Pari hosts and what its site lists, not what exists on chain.

## When it applies

On every upload, and whenever someone reports a stored file.

## Step by step

### What happens on an upload

**1. The file is checked**

Type from the bytes, size and dimensions. See [Uploads](https://docs.pariprotocol.xyz/build/uploads.md).

**2. The image is matched against hash lists**

This happens before anything is stored, and again on the re-encoded copy that would be stored. The lists are not published, and the service never logs image bytes.

**3. A match stops the upload**

A match returns `451` and nothing is written.

### How to report a file

**1. Write to support**

Write to [support@pariprotocol.xyz](mailto:support@pariprotocol.xyz) with the URL (`/i/<id>` or `/m/<id>`) and the reason.

**2. Pari acts on a valid report**

A takedown deletes the stored file and makes its URL return `404`.

**3. The same bytes stay out**

The file's digest goes on the takedown list, so the same bytes are refused with `451` from then on.

## Numbers and limits

| | |
| - | - |
| Takedown deadline | A valid report is acted on within 24 hours |
| Name comparison | After normalization, so lookalike letters, accents and digits do not get around the name lock |

## The brand list

Pari's moderation includes a brand list against impersonation of other projects, people and companies. Matching an image against it happens on the Pari site. The hosted service does not do it.

## What can go wrong

> [accordion] An upload fails with 503 matcher\_unavailable
>
> The check fails closed. An upload is never accepted because a check could not run. Retry later.

> [accordion] An upload returns 451
>
> See [A 451 response](https://docs.pariprotocol.xyz/build/uploads.md#a-451-response).

> [accordion] A key is refused with 403 revoked
>
> The operator can revoke an integrator's key.

## Next

> [card] [Uploads](https://docs.pariprotocol.xyz/build/uploads.md)
>
> Endpoints, limits and error codes.

> [card] [Infrastructure](https://docs.pariprotocol.xyz/security/infrastructure.md)
>
> What runs around the programs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.