# Developer Overview

### Contract Overview

The Capsule Protocol utilizes three main Ethereum contracts to perform all of its on-chain functions.

* [**Capsule NFT contract**](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/contracts/capsule.sol)&#x20;
* [**CapsuleFactory contract**](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/contracts/capsulefactory.sol)
* [**CapsuleMinter contract**](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/contracts/capsuleminter.sol)

The *CapsuleMinter* and *CapsuleFactory* contracts are attached to a proxy contract, meaning they are upgradable.&#x20;

The *Capsule NFT* contract can be 'upgraded' by changing the deploy address. This allows future Collections to support much greater functionality, such as storing other token types or storing combinations of other tokens.&#x20;

{% hint style="info" %}
For more information on the *contracts utilized in the Capsule Protocol*, please read [contracts](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/contracts "mention").
{% endhint %}

### Developer Walkthroughs

Walkthroughs of which methods to use when incorporating the Capsule Protocol in your application can be found in [](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs "mention").

The example scenarios that are covered include:

* [User wants to mint any type of Capsule NFT](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/developer-mint-a-capsule-nft)
* [User wants to redeem any type of Capsule NFT](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/developer-redeem-a-capsule-nft)
* [User wants to create a Capsule Collection](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/developer-create-a-capsule-collection)
* [User wants to manage their created Capsule Collection](https://docs.capsulelabs.xyz/capsulenft/developer-walkthroughs/developer-managing-a-capsule-collection)

### Decentralization

All Capsule Protocol contracts are decentralized. If the Capsule Team vanished tomorrow, the ecosystem would continue to work exactly as coded.
