# ITagomiPool

This is the technical reference related to the interface for any super token pool regardless of the distribution schemes.

### struct PoolIndexData[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#struct-poolindexdata) <a href="#struct-poolindexdata" id="struct-poolindexdata"></a>

```
struct PoolIndexData {
  uint128 totalUnits;
  uint32 wrappedSettledAt;
  int96 wrappedFlowRate;
  int256 wrappedSettledValue;
}
```

### struct MemberData[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#struct-memberdata) <a href="#struct-memberdata" id="struct-memberdata"></a>

```
struct MemberData {
  uint128 ownedUnits;
  uint32 syncedSettledAt;
  int96 syncedFlowRate;
  int256 syncedSettledValue;
  int256 settledValue;
  int256 claimedValue;
}
```

### Tagomi\_POOL\_INVALID\_TIME[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_invalid_time) <a href="#superfluid_pool_invalid_time" id="superfluid_pool_invalid_time"></a>

```
error Tagomi_POOL_INVALID_TIME()
```

### Tagomi\_POOL\_NO\_POOL\_MEMBERS[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_no_pool_members) <a href="#superfluid_pool_no_pool_members" id="superfluid_pool_no_pool_members"></a>

```
error Tagomi_POOL_NO_POOL_MEMBERS()
```

### Tagomi\_POOL\_NO\_ZERO\_ADDRESS[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_no_zero_address) <a href="#superfluid_pool_no_zero_address" id="superfluid_pool_no_zero_address"></a>

```
error Tagomi_POOL_NO_ZERO_ADDRESS()
```

### Tagomi\_POOL\_NOT\_POOL\_ADMIN\_OR\_GDA[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_not_pool_admin_or_gda) <a href="#superfluid_pool_not_pool_admin_or_gda" id="superfluid_pool_not_pool_admin_or_gda"></a>

```
error Tagomi_POOL_NOT_POOL_ADMIN_OR_GDA()
```

### Tagomi\_POOL\_NOT\_GDA[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_not_gda) <a href="#superfluid_pool_not_gda" id="superfluid_pool_not_gda"></a>

```
error Tagomi_POOL_NOT_GDA()
```

### Tagomi\_POOL\_TRANSFER\_UNITS\_NOT\_ALLOWED[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_transfer_units_not_allowed) <a href="#superfluid_pool_transfer_units_not_allowed" id="superfluid_pool_transfer_units_not_allowed"></a>

```
error Tagomi_POOL_TRANSFER_UNITS_NOT_ALLOWED()
```

### Event MemberUnitsUpdated[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#event-memberunitsupdated) <a href="#event-memberunitsupdated" id="event-memberunitsupdated"></a>

```
event MemberUnitsUpdated(
    contract ITagomiToken token,
    address member,
    uint128 oldUnits,
    uint128 newUnits
)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters)

| Name       | Type                  | Description |
| ---------- | --------------------- | ----------- |
| `token`    | contract ITagomiToken |             |
| `member`   | address               |             |
| `oldUnits` | uint128               |             |
| `newUnits` | uint128               |             |

### Event DistributionClaimed[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#event-distributionclaimed) <a href="#event-distributionclaimed" id="event-distributionclaimed"></a>

```
event DistributionClaimed(
    contract ITagomiToken token,
    address member,
    int256 claimedAmount,
    int256 totalClaimed
)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-1)

| Name            | Type                  | Description |
| --------------- | --------------------- | ----------- |
| `token`         | contract ITagomiToken |             |
| `member`        | address               |             |
| `claimedAmount` | int256                |             |
| `totalClaimed`  | int256                |             |

### Fn transferabilityForUnitsOwner[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-transferabilityforunitsowner) <a href="#fn-transferabilityforunitsowner" id="fn-transferabilityforunitsowner"></a>

```
function transferabilityForUnitsOwner(
) 
    external 
    returns (bool)
```

A boolean indicating whether pool members can transfer their units

### Fn distributionFromAnyAddress[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-distributionfromanyaddress) <a href="#fn-distributionfromanyaddress" id="fn-distributionfromanyaddress"></a>

```
function distributionFromAnyAddress(
) 
    external 
    returns (bool)
```

A boolean indicating whether addresses other than the pool admin can distribute via the pool

### Fn admin[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-admin) <a href="#fn-admin" id="fn-admin"></a>

```
function admin(
) 
    external 
    returns (address)
```

*The admin is the creator of the pool and has permissions to update member units and is the recipient of the adjustment flow rate*

The pool admin

### Fn superToken[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-supertoken) <a href="#fn-supertoken" id="fn-supertoken"></a>

```
function superToken(
) 
    external 
    returns (contract ITagomiToken)
```

The SuperToken for the pool

### Fn getTotalUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalunits) <a href="#fn-gettotalunits" id="fn-gettotalunits"></a>

```
function getTotalUnits(
) 
    external 
    returns (uint128)
```

The total units of the pool

### Fn getTotalConnectedUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalconnectedunits) <a href="#fn-gettotalconnectedunits" id="fn-gettotalconnectedunits"></a>

```
function getTotalConnectedUnits(
) 
    external 
    returns (uint128)
```

The total number of units of connected members

### Fn getTotalDisconnectedUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotaldisconnectedunits) <a href="#fn-gettotaldisconnectedunits" id="fn-gettotaldisconnectedunits"></a>

```
function getTotalDisconnectedUnits(
) 
    external 
    returns (uint128)
```

The total number of units of disconnected members

### Fn getUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getunits) <a href="#fn-getunits" id="fn-getunits"></a>

```
function getUnits(
    address memberAddress
) 
    external 
    returns (uint128)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-2)

| Name            | Type    | Description               |
| --------------- | ------- | ------------------------- |
| `memberAddress` | address | The address of the member |

The total number of units for `memberAddress`

### Fn getTotalFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalflowrate) <a href="#fn-gettotalflowrate" id="fn-gettotalflowrate"></a>

```
function getTotalFlowRate(
) 
    external 
    returns (int96)
```

The total flow rate of the pool

### Fn getTotalConnectedFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalconnectedflowrate) <a href="#fn-gettotalconnectedflowrate" id="fn-gettotalconnectedflowrate"></a>

```
function getTotalConnectedFlowRate(
) 
    external 
    returns (int96)
```

The flow rate of the connected members

### Fn getTotalDisconnectedFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotaldisconnectedflowrate) <a href="#fn-gettotaldisconnectedflowrate" id="fn-gettotaldisconnectedflowrate"></a>

```
function getTotalDisconnectedFlowRate(
) 
    external 
    returns (int96)
```

The flow rate of the disconnected members

### Fn getDisconnectedBalance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getdisconnectedbalance) <a href="#fn-getdisconnectedbalance" id="fn-getdisconnectedbalance"></a>

```
function getDisconnectedBalance(
    uint32 time
) 
    external 
    returns (int256 balance)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-3)

| Name   | Type   | Description       |
| ------ | ------ | ----------------- |
| `time` | uint32 | The time to query |

The balance of all the disconnected members at `time`

### Fn getMemberFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getmemberflowrate) <a href="#fn-getmemberflowrate" id="fn-getmemberflowrate"></a>

```
function getMemberFlowRate(
    address memberAddress
) 
    external 
    returns (int96)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-4)

| Name            | Type    | Description               |
| --------------- | ------- | ------------------------- |
| `memberAddress` | address | The address of the member |

The flow rate a member is receiving from the pool

### Fn getClaimable[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getclaimable) <a href="#fn-getclaimable" id="fn-getclaimable"></a>

```
function getClaimable(
    address memberAddr,
    uint32 time
) 
    external 
    returns (int256)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-5)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |
| `time`       | uint32  | The time to query         |

The claimable balance for `memberAddr` at `time` in the pool

### Fn getClaimableNow[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getclaimablenow) <a href="#fn-getclaimablenow" id="fn-getclaimablenow"></a>

```
function getClaimableNow(
    address memberAddr
) 
    external 
    returns (int256 claimableBalance, uint256 timestamp)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-6)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |

The claimable balance for `memberAddr` at `block.timestamp` in the pool

### Fn updateMemberUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-updatememberunits) <a href="#fn-updatememberunits" id="fn-updatememberunits"></a>

```
function updateMemberUnits(
    address memberAddr,
    uint128 newUnits
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-7)

| Name         | Type    | Description                  |
| ------------ | ------- | ---------------------------- |
| `memberAddr` | address | The address of the member    |
| `newUnits`   | uint128 | The new units for the member |

Sets `memberAddr` ownedUnits to `newUnits`

### Fn claimAll[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-claimall) <a href="#fn-claimall" id="fn-claimall"></a>

```
function claimAll(
    address memberAddr
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-8)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |

Claims the claimable balance for `memberAddr` at `block.timestamp`

### Fn claimAll[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-claimall-1) <a href="#fn-claimall-1" id="fn-claimall-1"></a>

```
function claimAll(
) 
    external 
    returns (bool)
```

Claims the claimable balance for `msg.sender` at `block.timestamp`

### Fn increaseAllowance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-increaseallowance) <a href="#fn-increaseallowance" id="fn-increaseallowance"></a>

```
function increaseAllowance(
    address spender,
    uint256 addedValue
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-9)

| Name         | Type    | Description                             |
| ------------ | ------- | --------------------------------------- |
| `spender`    | address | The address of the spender              |
| `addedValue` | uint256 | The amount to increase the allowance by |

**Return Values**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#return-values)

| Name  | Type | Description        |
| ----- | ---- | ------------------ |
| `[0]` | bool | true if successful |

Increases the allowance of `spender` by `addedValue`

### Fn decreaseAllowance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-decreaseallowance) <a href="#fn-decreaseallowance" id="fn-decreaseallowance"></a>

```
function decreaseAllowance(
    address spender,
    uint256 subtractedValue
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-10)

| Name              | Type    | Description                             |
| ----------------- | ------- | --------------------------------------- |
| `spender`         | address | The address of the spender              |
| `subtractedValue` | uint256 | The amount to decrease the allowance by |

**Return Values**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#return-values-1)

| Name  | Type | Description        |
| ----- | ---- | ------------------ |
| `[0]` | bool | true if successful |

Decreases the allowance of `spender` by `subtractedValue`


---

# 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://tagomisystems.gitbook.io/tagomi-docs/iseth/itagomipool.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.
