# Security

## NFT Storage

One of the biggest challenges for NFTs is decentralized storage and data permanence. While most NFTs utilize [IPFS](https://ipfs.io/) for data storage,  there is often a centralized point of failure, i.e. images themselves are hosted on a centralized server. In the event the centralized web server went offline, decided to censor the project in question, or the project creators were unable to pay for hosting costs for any reason, the image linked to the NFT would become null and potentially unrecoverable.

MicroBuddies attempts to solve this efficiently by ensuring all of the base traits comprising a MicroBuddy are stored over IPFS via a service from [Protocol Labs](https://protocol.ai/) (the creators of IPFS and Filecoin), named simply [NFT Storage](https://nft.storage/). NFT Storage aims to provide free, decentralized data storage that preserves NFT permanence. Because we will store the traits themselves, the file size is under 100MB, small enough for almost anyone to download as a backup.

So, in the event of a worst-case-scenario centralized failure, anybody with the trait images can then reference them to the on-chain DNA and reconstruct all of the MicroBuddies in the game along with the front-end. MicroBuddies is setup to exist for as long as people desire it to.

## Buddy Locking

On the open market, it is possible for users to list a buddy for sale and still play the game with it, meaning you might buy a buddy with 0 replications used and 100,000 GOO only to realize that the previous owner used up all the GOO and replications at the last minute before you purchased.

To help prevent this scenario from occurring and increase buyer confidence, sellers can optionally "lock" their buddy from performing any actions in the game on their buddy's profile page. Buyers should consider the risks before purchasing any high value unlocked buddy off the market.

{% hint style="info" %}
After unlocking, a buddy will have to wait 5 minutes before it can resume game activities.
{% endhint %}

## Code Audits

MicroBuddies aims to be audited by a reputable cybersecurity company. We will provide a link to the audit on our github page once it is complete.


---

# 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.microbuddies.io/more-info/security.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.
