# Structures

#### 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


---

# 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://docs.virtuswap.io/virtuswap-documentation/technical-reference/smart-contracts-v1/tokenomics-contracts/structures.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.
