# Auditing Department Amendment v5

<figure><img src="/files/noFEwzAzReTtsfWyvhFS" alt=""><figcaption></figcaption></figure>

### Amendment v5

Callisto Security Auditing Department starts operating with SoulBound Tokens.

* SBT source code: <https://github.com/EthereumCommonwealth/Auditing/blob/master/sec_dep_sbt.sol>
* SBT on CLO Mainnet: 0xf98bFBAD4427b91344dB25a01d7D4e842F76c615

## Extending the audit report as SBT

Upon completing the audit report, the Auditing Manager must create and assign a special SBT to the contract address that was audited on Callisto Network. Even if the original contract is deployed on some other network (in most cases Ethereum) the SBT can be issued for the similar address on CLO chain. This would allow for future transition should it become necessary.

The issued SBT will contain 3 *properties*.

* Properties\[ 0 ] - this property is used by the owner of the contract by default. Address that the SBT is assigned to has writing permission.
* Properties\[ 1 ] - this property must contain the link to the Github issue of the Audit Request. Auditing Manager and Owner of the contract must have writing permission to this property.
* Properties\[ 2 ] - this property must contain the link to IPFS copy of the report which is stored persistently. Auditing Manager and Owner of the contract must have writing permission to this property.

When the SBT is being minted the following parameters must be applied:

* `TokenID` must be set to the Github Issue number on EthereumCommonwealth/Auditing/issues
* `Address` must be the mainnet address of the audited contract. If the requester of the audit refuses to provide the address of the contract then the SBT must be issued to the address of SBT contract (0xf98bFBAD4427b91344dB25a01d7D4e842F76c615)
* `Properties Count` should be 2 by default

## Example

We are issuing the example SBT to MechaChain token. MechaChain passed a Security Audit on Nov 27, 2021 [EthereumCommonwealth/Auditing#604](https://github.com/EthereumCommonwealth/Auditing/issues/604)

The issuing is done via [mintWithProperties](https://github.com/EthereumCommonwealth/Auditing/blob/master/sec_dep_sbt.sol#L233) function. MechaChain had issue # 604 so the SBT will be minted with `TokenID` 604

* Minting the token: <https://explorer.callisto.network/tx/0xc688c7d7fef6acf938c8e4a77eccefbea33827ce6ad3bf04368023a6a4f91dde>

<figure><img src="https://user-images.githubusercontent.com/26142412/206543865-12794889-c9dc-4b26-8954-b3061ea6dabc.png" alt=""><figcaption></figcaption></figure>

Then the `property[1]` must be assigned. Property assignment is done via [setProperty](https://github.com/EthereumCommonwealth/Auditing/blob/master/sec_dep_sbt.sol#L210) function

* Assigning the token property 1: <https://explorer.callisto.network/tx/0x2479d082f867db9126cb48b1d9d0ffac699fca4f85248155a842e6eebdc26562>

<figure><img src="https://user-images.githubusercontent.com/26142412/206544381-b1cb5fd1-6ae1-47ca-b38d-e0e5d06db403.png" alt=""><figcaption></figcaption></figure>

Then property 2 must be assigned in a similar way. <https://explorer.callisto.network/tx/0x295e5def074d470f9177f765ecd3a1e64a6c99473261b7cc6f640369261307b0>

Now the SBT is completed. It is possible to read the audit data from on-chain now:&#x20;

<figure><img src="https://user-images.githubusercontent.com/26142412/206544569-06a7c9ff-a93a-4a97-a8f0-57723a7334a2.png" alt=""><figcaption></figcaption></figure>


---

# 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://callisto-network.gitbook.io/callisto-network/security-department/auditing-department/auditing-department-amendment-v5.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.
