> For the complete documentation index, see [llms.txt](https://docs.virtuswap.io/virtuswap-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.virtuswap.io/virtuswap-documentation/technical-reference/smart-contracts-v1/dex-contracts/structures.md).

# Structures

Data Structures used in VirtuSwap DEX contracts

#### VirtualPoolModel

```solidity
struct VirtualPoolModel {
    uint24 fee;
    address token0;
    address token1;
    uint256 balance0;
    uint256 balance1;
    address commonToken;
    address jkPair;
    address ikPair;
}
```

A structure representing a virtual pool.

Contains the following members:

* fee - the fee in the Reference Pool
* token0 - the token that can be sold to the virtual pool
* token1 - the token that can be bought from the virtual pool
* balance0, balance1 - the balances of the two tokens in the virtual pool
* commonToken - the token that is common between the Active Pool and the Reference Pool that construct the Virtual Pool
* jkPair - address of the Active Pool&#x20;
* ikPair - address of the Reference Pool

The structure is returned from [`vPoolManager.getVirtualPool`](/virtuswap-documentation/technical-reference/smart-contracts-v1/dex-contracts/vpoolmanager.md#function-getvirtualpool) and [`vPoolManager.getVirtualPools`](/virtuswap-documentation/technical-reference/smart-contracts-v1/dex-contracts/vpoolmanager.md#function-getvirtualpools) methods

See [Virtual Pools](/virtuswap-documentation/virtuswap-basics/virtuswap-technology.md) for more detail on VirtuSwap Virtual Pools.
