> For the complete documentation index, see [llms.txt](https://tagomisystems.gitbook.io/tagomi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tagomisystems.gitbook.io/tagomi-docs/tagomi-1/advanced-topics/protocol-architecture.md).

# Protocol Architecture

The Tagomi Protocol is designed with a modular and upgradable architecture, consisting of several smart contract components that interact with each other to facilitate real-time finance on the blockchain.

### Overview[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#overview) <a href="#overview" id="overview"></a>

The architecture diagram below provides a high-level overview of the Tagomi Protocol's components and their relationships. It is the protocol deployed when a new Tagomi`FrameworkDeployer` instance is created and the method `deployFramework()`.

<figure><img src="https://3425745615-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoQ11KBdeNwXTcfgvNHzv%2Fuploads%2FlqWynuP8ZWSUzRULjLTF%2Fimage.png?alt=media&amp;token=27bfb05e-9046-4084-86a8-3a22d272bd31" alt=""><figcaption></figcaption></figure>

*Architecture of the* Tagomi *Protocol*

### Legend[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#legend) <a href="#legend" id="legend"></a>

* **Immutable Instance**: These are contract instances that are not intended to be upgraded or changed.
* **Upgradable Instance**: These are contract instances that are intended to be upgraded or changed, eventually by the Tagomi Protocol's Governance.
* **Link**: Represents the relationship or interaction between components.

### Components[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#components) <a href="#components" id="components"></a>

#### SuperToken (UUPS Proxy - EIP-1967)[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#supertoken-uups-proxy---eip-1967) <a href="#supertoken-uups-proxy---eip-1967" id="supertoken-uups-proxy---eip-1967"></a>

This is the fundamental smart contract within the Tagomi Protocol, which is an upgradable advanced token contract which inherits from the BEP20 standard, and enhances it with additional features such as Money Streaming and Distributions.

Unmanaged SuperTokens

Super Token contracts can be created by anyone, and can either be managed by the Tagomi Protocol (The Host), or completely unmanaged with no influence from the Host. They can be used to represent any asset or right, and can be used in any context.

#### Tagomi Agreements[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#superfluid-agreements) <a href="#superfluid-agreements" id="superfluid-agreements"></a>

**ConstantFlowAgreementV1 (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#constantflowagreementv1-uups-proxy)

A versioned agreement that governs the continuous flow of tokens between parties, ie Money Streaming.

**InstantDistributionAgreementV1 (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#instantdistributionagreementv1-uups-proxy)

A smart contract that manages the mechanisms for the instant distribution of tokens, a feature that allows for scalable one-to-many token distributions.

Deprecated

This agreement is in the process of being deprecated in favor of the more flexible GeneralDistributionAgreementV1.

**GeneralDistributionAgreementV1 (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#generaldistributionagreementv1-uups-proxy)

A smart contract that manages the mechanisms for everything related to one-to-many transfers and streams, ie Distributions.

#### Infrastructure[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#infrastructure) <a href="#infrastructure" id="infrastructure"></a>

Tagomi **Host Contract (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#superfluid-host-contract-uups-proxy)

The central contract that hosts the Tagomi Protocol, managing the various tokens and agreements.

**SuperTokenFactory (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#supertokenfactory-uups-proxy)

A factory contract for creating SuperTokens, likely with specific initial conditions or properties.

Tagomi**Pool (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#superfluidpool-uups-proxy)

This a contract representing the [Pools](https://docs.superfluid.finance/docs/protocol/distributions/guides/pools) created to manage Distributions.

#### Tagomi Governance[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#superfluid-governance) <a href="#superfluid-governance" id="superfluid-governance"></a>

Tagomi**GovernanceII (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#superfluidgovernanceii-uups-proxy)

The main governance contract that will allow Tagomi community members to participate in the governance of the protocol.

#### Existential NFTs[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#existential-nfts) <a href="#existential-nfts" id="existential-nfts"></a>

**ConstantFlowNFT (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#constantflownft-uups-proxy)

Smart contract for non-fungible tokens (NFTs) that have a constant flow rate associated with them. These are NFTs minted to represent Money Streaming flows.

**PoolAdminNFT (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#pooladminnft-uups-proxy)

NFT contract representing admin rights over a TagomiPool.

**PoolMemberNFT (UUPS Proxy)**[**​**](https://docs.superfluid.finance/docs/technical-reference/Architecture#poolmembernft-uups-proxy)

This is an NFT contract where tokens represent membership within a pool, granting units to members in that pool.

### Learn more[​](https://docs.superfluid.finance/docs/technical-reference/Architecture#learn-more) <a href="#learn-more" id="learn-more"></a>

The technical details and contract interactions are further documented in the codebase. Refer to the following for an in-depth understanding:

* Tagomi Framework Deployment Steps.
* Tagomi Protocol Monorepo Wiki.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://tagomisystems.gitbook.io/tagomi-docs/tagomi-1/advanced-topics/protocol-architecture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
