> 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/tokenomics-contracts/structures.md).

# Structures

Data Structures used in VirtuSwap Tokenomics contracts

#### VrswStake

```solidity
struct VrswStake {
    uint128 startTs;
    uint128 lockDuration;
    SD59x18 discountFactor;
    SD59x18 amount;
}
```

The Stake structure represents a single VRSW staking/locking position

Contains the following members:

* startTs - start time of the staking position
* lockDuration - lock duration of the current posisiton (0 if position is not locked)
* discountFactor - discount factor for the current position equals exp(lockDuration \* r). Used in formula (3) in [Virtuswap Tokenomics Whitepaper](https://virtuswap.io/docs/Tokenomics-VirtuSwap-Apr-4-2023.pdf)
* amount - amount of tokens staked in the current position

#### LpStake

```solidity
struct LpStake {
    address lpToken;
    SD59x18 amount;
}
```

The Stake structure represents a single LP token staking position
