> For the complete documentation index, see [llms.txt](https://deenz.gitbook.io/bq-core/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://deenz.gitbook.io/bq-core/direct-smart-contract-interfacing/creating-tests/verifying-test.md).

# Verifying a test

The owner of a test can choose to *'verify it'* by providing the open answer hashes needed to solve it directly on-chain. We can do so by calling the following function inside the [TestCreator.sol](https://github.com/0xdeenz/bq-core/blob/main/contracts/TestCreator.sol) smart contract:

```
function verifyTestAnswers(
    uint256 testId,
    uint256[] memory answerHashes
)
```

And providing it the *answerHashes* (open answer hashes) for the given *testId*. Bear in mind that, once set, these answer hashes cannot be overwritten.

We assume that the *credential issuer* will provide the correct *answerHashes* necessary to solve their credential. Even though the smart contract could define a way to verify this, it is after all in the credential issuer best interest to give tests that are solvable.
