---
title: The answer: Lorg Check docs
description: Every field of a Lorg Check answer, what allow, caution, block and unknown mean and what to do with each, freshness, and when to ask again.
url: https://lorglabs.com/docs-answer.html
---

# The answer

Both checks answer in the same shape. Your code reads one field, `action`; a person reads one sentence, `summary`.

## A real answer

A token check on Base, 14 Oct 2026: a token whose creator kept the power to make tokens at will, paid for by a wallet behind earlier rugs. Shortened:

```
{
  "request_id": "01a138bd-2aa6-7946-be8c-8958884270fb",
  "verdict": "block", "action": "do_not_proceed", "risk_score": 100, "confidence": "high",
  "summary": "Do not proceed. The token's creator (0x0f24…e4d8) can transfer 10× the total supply: tokens can be created without a mint and sold into the pool. …",
  "reasons": [
    { "code": "HIDDEN_MINT", "severity": "critical", "detail": "The token's creator (0x0f24…e4d8) can transfer 10× the total supply: …" },
    { "code": "DEPLOYER_RUG_FUNDED", "severity": "high", "detail": "The deployer (0x0f24…e4d8) was first funded by 0xde8e…c473, a wallet that funded the creators of tokens that were rugged." },
    { "code": "NEW_TOKEN", "severity": "medium", "detail": "Token contract was created 1 hour ago." }
  ],
  "address_type": "contract",
  "token": { "name": "Delta", "symbol": "DELTA", "main_pool": { "dex": "uniswap_v2", "liquidity_usd": 14039, … }, … },
  "checks_run": ["sanctions", "labels", "contract", "source", "deployer", "copycat", "liquidity", "holders", "lp_lock", "hidden_mint", "simulation"],
  "checks_failed": [],
  "chain": "base", "address": "0xE546173916467211B9D238Fb24DB6a63E240EB40",
  "block": 52581968, "as_of": "2026-10-14T04:48:03.815Z", "ruleset": "2026.10", "cached": false,
  "signature": { "alg": "Ed25519", "key_id": "…", "sig": "…" }
}
```

## The fields

- **verdict**: `allow`, `caution` or `block`.
- **action**: The same decision for code: `proceed`, `limit_exposure` or `do_not_proceed`.
- **summary**: One plain sentence, written to be shown to a person: the decision, then the most important details.
- **reasons**: Each with a `code`, a `severity` and a sentence, most serious first. Every code: [reason codes](https://lorglabs.com/docs-reasons.md).
- **risk_score**: The points behind the decision, 0 to 100: caution from 30, block from 70. Some findings decide on their own, whatever the score: a sale that fails always blocks.
- **confidence**: `high` when every check finished, `medium` when one could not (it is then named in `checks_failed`).
- **checks_run, checks_failed**: Which checks answered, and which could not finish. A failed check never counts in a token's favour.
- **block, as_of, ruleset**: The exact block and time the answer was true, and the version of the rules that produced it.
- **cached**: `true` when the answer came from a short cache (see below).
- **request_id**: This request's id, inside the signed answer, so an answer can't be passed off as another request's. Quote it if you [report](https://lorglabs.com/docs-report.md) an answer.
- **signature**: Proof that the answer is ours and unchanged: [signatures](https://lorglabs.com/docs-signatures.md).
- **token, wallet, address_type**: The facts behind the answer: [token](https://lorglabs.com/docs-token-check.md#token-facts), [wallet](https://lorglabs.com/docs-address-check.md#wallet-facts).

## What each answer means

| Reply | What it means | What a platform usually does |
| --- | --- | --- |
| **Allow** `200` `proceed` | No blocking risks found. | Trade. |
| **Caution** `200` `limit_exposure` | Real risks, listed in `reasons`. | Warn the user, or cap the size. |
| **Block** `200` `do_not_proceed` | A trap, a scam or a sanctioned address. `summary` says why. | Refuse, and show the summary. |
| **Unknown** `503` `CHECKS_INCOMPLETE` | A check we need couldn't finish. Not an answer, and never charged. | Treat as not verified. Ask again after `Retry-After` seconds. |

**"Allow" is not a guarantee.** It means we found nothing that should stop the trade at the moment we looked. A token can still fall in price, and things can change after the check.

## Freshness

An answer may come from a short cache, keeping its original `as_of` and `block`: at most 30 seconds for most tokens, 60 seconds for wallets, 5 minutes for well-known tokens, and 10 minutes for blocks that don't lift. An answer with a failed check is never cached. `Cache-Control: no-cache` forces a fresh check.

## When to ask again

A caution that lists a check in `checks_failed` is worth asking again a few seconds later (with a new `Idempotency-Key` if you send one). The usual cause is a token we are seeing for the very first time.
