> For the complete documentation index, see [llms.txt](https://docs.dcaf.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dcaf.so/products/drip/programming-model/position.md).

# Position

The `Position` represents information on a user/account's DCA. It keeps track of a users withdrawal and deposits and is owned by the `Vault`. Authority of the `Position` is given to whoever owns the NFT token that has a `mint == position_authority.`<br>

```rust
pub struct Position {
    // The A/B/G vault the position belongs to
    pub vault: Pubkey, // 32
    // The position authority NFT mint
    pub position_authority: Pubkey, // 32
    // The address to send referral fees too
    pub referrer: Pubkey, // 32
    // Total deposited
    pub deposited_token_a_amount: u64, // 8
    // Total withdrawn B (amount sent to the user + amount sent to the treasury)
    pub withdrawn_token_b_amount: u64, // 8
    pub deposit_timestamp: i64,        // 8
    // The drip period ID of the vault that happened prior to the user opening this position
    pub drip_period_id_before_deposit: u64, // 8
    // Number of drips/Swaps that this position will be a part of
    pub number_of_swaps: u64, // 8
    // deposit_amount_token_a / number_of_swaps
    pub periodic_drip_amount: u64, // 8
    pub is_closed: bool,           // 1
    pub bump: u8,                  // 1
}
```


---

# 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://docs.dcaf.so/products/drip/programming-model/position.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.
