# How it works

The coolest part of deQuiz is that nobody can spy other players answers before the end of the quiz itself. In fact, using commitments, answers are kept private till this end. This is done to make sure the quiz is fair and to prevent people from cheating.

### Quiz Phases

Every quiz has 6 phases. Which are defined by a mix of times and internal status of the smart contract

#### Starting Phase

Quiz is only scheduled, and will start in the future

#### Awaiting Questions

Quiz is started, but owner still has to submit questions

#### Started

Quiz is started, and players can now submit answers commitements.

During this phase, players can submit a commitment for each answer, which remains private until the reveal phase.

**Note**: At this stage you cannot yet know whether you have answered the questions correctly or not.

#### Awaiting Solutions

Answering phase is ended, and we are now waiting the Owner to submit quiz solutions.

#### Awaiting reveals

Users can now reveal their answers submitting those + commitment + salt to the smart contract. This data will be used to award points.

Note:&#x20;

**Note**: At this stage if the user does not perform the reveal transaction, he will not be able to access the prize pool.

#### Closed

When everybody, or after a timeout, has revealed the answers quiz can be closed. During the closed phase, players who scored at least 1 point can withdraw a share of the prize.

### Timeouts

When quiz is first created, the owner have to set 3 timeouts:

* **Answer start time:** The time at which owner can submit questions, and the time at which players can start answering
* **Answer end time:** The time at which owner have to submit solutions, and the time at which players can start revealing their answers + commitments. Answering is not possible anymore.
* **Reveal end time:** The time at which reveals are closed (timout). At this stage is not possible to reveal answers anymore, if a player answered but forgot to reveal its own answers they'll score 0 points.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dequiz.zone/dequiz/how-it-works.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
