> ## Documentation Index
> Fetch the complete documentation index at: https://docs.p2p.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started

<Warning>
  **Accessing the Pooled Staking public vault**

  Contact our [team](/docs/contacts) for dedicated assistance before setting up your pooled staking flow.
</Warning>

Staking via the Pooled Staking API enables enterprise partners to offer secure, seamless ETH staking to their users, without the 32 ETH minimum. The process consists of the following steps:

1. Get the list of available vaults.
2. Prepare a deposit transaction.
3. Sign and broadcast the transaction.

You can also track the staking rewards, as well as monitor historical balance and APY.

Below, a lifecycle diagram of the process is provided.

```mermaid theme={null}
sequenceDiagram
    participant USER as User (wallet/app)
    participant PARTNER as Partner Backend
    participant API as Pooled Staking API
    participant ETH as Ethereum Network

    %% --- DEPOSIT FLOW ---
    USER->>PARTNER: Stake ETH (<32 ETH)
    PARTNER->>API: POST /staking/deposit
    API-->>PARTNER: Unsigned deposit transaction
    PARTNER->>USER: User signs transaction
    USER-->>PARTNER: Signed deposit transaction
    PARTNER->>API: POST /transaction/send
    API-->>ETH: Broadcast to Ethereum

    %% --- WITHDRAWAL FLOW ---
    USER->>PARTNER: Unstake (withdraw) ETH
    PARTNER->>API: POST /staking/withdraw
    API-->>PARTNER: Unsigned withdrawal transaction
    PARTNER->>USER: User signs transaction
    USER-->>PARTNER: Signed withdrawal transaction
    PARTNER->>API: POST /transaction/send
    API-->>ETH: Broadcast to Ethereum

    %% --- OPTIONAL: STATUS/CLAIM ---
    Note over USER,PARTNER: ETH claimable after 1–4 days.
    PARTNER->>API: POST /staking/claim (when claimable)
    API-->>PARTNER: Unsigned claim transaction
    PARTNER->>USER: User signs transaction
    USER-->>PARTNER: Signed claim transaction
    PARTNER->>API: POST /transaction/send
    API-->>ETH: Broadcast to Ethereum
    ETH-->>USER: ETH returned to user wallet
```

[Get an authentication token](/docs/authentication) to start using Pooled Staking API.

Request examples are provided using [cURL](https://curl.se/).

<Warning>
  **Please note**

  The Pooled Staking API does not use base URL switching to differentiate between Mainnet and Testnet as compared to other ETH APIs. It uses path switching in the endpoints.
</Warning>

<Steps>
  <Step title="Get list of vaults">
    Before depositing, retrieve the list of vaults associated to your token by sending a GET request to [/api/v1/staking/pool/\{network}/staking/vaults](/reference/eth-pool-staking-vaults-list).

    Example request (for `hoodi` network):

    <CodeGroup>
      ```bash curl theme={null}
      curl --request GET \
           --url https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/vaults \
           --header 'accept: application/json' \
           --header 'authorization: Bearer <token>'
      ```

      ```typescript TypeScript theme={null}
      const response = await fetch(
        "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/vaults",
        {
          method: "GET",
          headers: {
            "accept": "application/json",
            "authorization": "Bearer <token>",
          },
        }
      );
      const data = await response.json();
      console.log(data);
      ```

      ```python Python theme={null}
      import requests

      response = requests.get(
          "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/vaults",
          headers={
              "accept": "application/json",
              "authorization": "Bearer <token>",
          },
      )
      print(response.json())
      ```

      ```go Go theme={null}
      package main

      import (
      	"fmt"
      	"io"
      	"net/http"
      )

      func main() {
      	req, _ := http.NewRequest("GET", "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/vaults", nil)
      	req.Header.Set("accept", "application/json")
      	req.Header.Set("authorization", "Bearer <token>")
      	resp, _ := http.DefaultClient.Do(req)
      	defer resp.Body.Close()
      	respBody, _ := io.ReadAll(resp.Body)
      	fmt.Println(string(respBody))
      }
      ```
    </CodeGroup>

    Example response:

    <CodeGroup>
      ```json theme={null}
      {
          "error": null,
          "result": {
                "network": "hoodi",
                "vaults": [
                    {
                        "vaultAddress": "0xba447498DC4c169f2b4f427B2c4D532320457E89",
                        "displayName": "Genesis Vault",
                        "apy": 2.183411246189064,
                        "baseApy": 2.183411246189064,
        								"capacity": 1000000.0,
                        "totalAssets": 1565.298221320626932191,
                        "feePercent": 5,
                        "isPrivate": false,
                        "isGenesis": true,
                        "isSmoothingPool": true,
                        "isErc20": false,
                        "tokenName": null,
                        "tokenSymbol": null,
                        "createdAt": 1743445116000
                    },
                    {
                        "vaultAddress": "0x2b3eB77e5cbde5DEb70c928E1E2814F8A6f143e0",
                        "displayName": "NodeSet Hoodi Test Vault",
                        "apy": 0.11080513448983267,
                        "baseApy": 0.11080513448983267,
        								"capacity": 1000000.0,
                        "totalAssets": 12015.065998077636066564,
                        "feePercent": 10,
                        "isPrivate": false,
                        "isGenesis": false,
                        "isSmoothingPool": true,
                        "isErc20": false,
                        "tokenName": null,
                        "tokenSymbol": null,
                        "createdAt": 1744827492000
                    }
                ]
            }
        }
      ```
    </CodeGroup>

    * `network` — network name: `mainnet` or `hoodi`.

    * `vaults` — detailed information on each vault available to integration:

      * `vaultAddress` — Ethereum address of the vault.
      * `displayName` — vault name.
      * `apy` — current annual percentage yield (APY) including boost incentives.
      * `baseApy` — average weekly base APY of the vault (without extra incentives).
      * `capacity` — vault maximum total value locked (TVL).
      * `totalAssets` — current amount of funds staked on the vault.
      * `feePercent` — amount of fee in percent charged by the vault.
      * `isPrivate` — parameter indicating if this vault is exclusive to current integration: `true` means the vault is private, `false` means the vault is public or shared.
      * `isGenesis` — parameter indicating if this vault is a [StakeWise](https://docs.stakewise.io/) vault.
      * `isSmoothingPool` — parameter indicating if this vault is a [Smoothing Pool](https://docs.stakewise.io/protocol-overview-in-depth/vaults#eth-8) or a [Vault Escrow](https://docs.stakewise.io/protocol-overview-in-depth/vaults#eth-8:~:text=thief%22%20status%20internally.-,Own%20Escrow,-Own%20Escrow%20allows).
      * `isErc20` — parameter indicating if this vault has its own ERC-20 token.
      * `tokenName` — name of the ERC-20 token that represents ETH staked by delegators in the vault.
      * `tokenSymbol` — symbol of the vault's ERC-20 token.
      * `createAt` — timestamp of the vault creation in the ISO 8601 format.
  </Step>

  <Step title="Prepare the transaction">
    To create an unsigned deposit transaction for the selected vault, send a POST request to [/api/v1/staking/pool/\{network}/staking/deposit](/reference/eth-pool-staking-deposit).

    Example request (for `hoodi` network):

    <CodeGroup>
      ```bash curl theme={null}
      curl --request POST \
           --url https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/deposit \
           --header 'accept: application/json' \
           --header 'authorization: Bearer <token>' \
           --header 'content-type: application/json' \
           --data '
      {
          "delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
          "vaultAddress": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
          "amount": 0.07
      }
      ```

      ```typescript TypeScript theme={null}
      const response = await fetch(
        "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/deposit",
        {
          method: "POST",
          headers: {
            "accept": "application/json",
            "authorization": "Bearer <token>",
            "content-type": "application/json",
          },
          body: JSON.stringify({
            delegatorAddress: "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
            vaultAddress: "0xba447498dc4c169f2b4f427b2c4d532320457e89",
            amount: 0.07,
          }),
        }
      );
      const data = await response.json();
      console.log(data);
      ```

      ```python Python theme={null}
      import requests

      response = requests.post(
          "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/deposit",
          headers={
              "accept": "application/json",
              "authorization": "Bearer <token>",
              "content-type": "application/json",
          },
          json={
              "delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
              "vaultAddress": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
              "amount": 0.07,
          },
      )
      print(response.json())
      ```

      ```go Go theme={null}
      package main

      import (
      	"bytes"
      	"encoding/json"
      	"fmt"
      	"io"
      	"net/http"
      )

      func main() {
      	payload := map[string]interface{}{
      		"delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
      		"vaultAddress":     "0xba447498dc4c169f2b4f427b2c4d532320457e89",
      		"amount":           0.07,
      	}
      	body, _ := json.Marshal(payload)
      	req, _ := http.NewRequest("POST", "https://api-test.p2p.org/api/v1/staking/pool/hoodi/staking/deposit", bytes.NewBuffer(body))
      	req.Header.Set("accept", "application/json")
      	req.Header.Set("authorization", "Bearer <token>")
      	req.Header.Set("content-type", "application/json")
      	resp, _ := http.DefaultClient.Do(req)
      	defer resp.Body.Close()
      	respBody, _ := io.ReadAll(resp.Body)
      	fmt.Println(string(respBody))
      }
      ```
    </CodeGroup>

    * `delegatorAddress` — account address of the user initiating the staking transaction.
    * `vaultAddress` — Ethereum address of the vault to which the deposit is being made. Mind to specify the correct `vaultAddress` for all staking operations.
    * `amount` — amount of tokens in ETH to deposit. The value must be decimal, e.g., 0.01.

    Example response:

    <CodeGroup>
      ```bash theme={null}

          "error": null,
          "result": {
              "amount": 0.07,
              "vaultAddress": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
              "delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
              "unsignedTransaction": {
                  "serializeTx": "0x02f87683088bb0168459682f0084d16be71082d54e94ba447498dc4c169f2b4f427b2c4d532320457e8987f8b0a10e470000b844f9609f08000000000000000000000000092af80778ff3c3d27fd2744c39f6e9326d9aaee0000000000000000000000000000000000000000000000000000000000000000c0",
                  "to": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
                  "data": "0xf9609f08000000000000000000000000092af80778ff3c3d27fd2744c39f6e9326d9aaee0000000000000000000000000000000000000000000000000000000000000000",
                  "value": "70000000000000000",
                  "nonce": 22,
                  "chainId": 560048,
                  "gasLimit": "54606",
                  "type": 2,
                  "maxFeePerGas": "3513509648",
                  "maxPriorityFeePerGas": "1500000000"
              },
              "createdAt": "2025-07-21T12:05:59.015Z"
          }
      }
      ```
    </CodeGroup>

    * `amount` — amount of tokens in ETH to deposit.

    * `vaultAddress` — Ethereum address of the vault to which the deposit is being made.

    * `delegatorAddress` — account address of the user initiating the staking transaction.

    * `unsignedTransaction` — unsigned transaction in Base64 encrypted format. Sign the transaction and submit it to the blockchain to perform the called action.

      * `serializeTx` — unsigned serialized transaction.
      * `to` — recipient address for this transaction.
      * `data` — transaction data payload in the hexadecimal format.
      * `value` — amount this transaction is sending in Wei.
      * `nonce` — nonce of the sender account.
      * `chainId` — chain ID this transaction is authorized on, as specified by [EIP-155](https://eips.ethereum.org/EIPS/eip-155).
      * `gasLimit` — maximum <Tooltip tip="A measure of computational effort required to execute a transaction or smart contract on a blockchain. Users must pay a gas fee, usually in the native token, to have their transactions processed by the network.">gas</Tooltip> limit for this block.
      * `type` — [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) type of this transaction envelope.
      * `maxFeePerGas` — maximum price per unit of gas this transaction will pay for the combined [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) block's base fee and this transaction's priority fee in Wei.
      * `maxPriorityFeePerGas` — price per unit of gas in Wei, which is added to the [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) block's base fee. This added fee is used to incentivize miners to prioritize this transaction.

    * `createdAt` — timestamp of the transaction in the ISO 8601 format.
  </Step>

  <Step title="Sign and send the transaction">
    Use `unsignedTransaction` from the previous step to [sign and send](/docs/signing-transaction-eth) the signed transaction to the Ethereum network.

    By broadcasting this transaction, you're initiating the staking operation on the Ethereum vault.
  </Step>
</Steps>

## Additional operations

### Get account info

To track delegator balances, staking status, and withdrawal eligibility, send a GET request to [/api/v1/staking/pool/\{network}/account/\{delegatorAddress}/vault/\{vaultAddress}/](/reference/eth-pool-account-info).

Example request (for `hoodi` network):

<CodeGroup>
  ```bash curl theme={null}
  curl --request GET \
       --url https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/ \
       --header 'accept: application/json' \
       --header 'authorization: Bearer <token>' \
       --header 'content-type: application/json'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/",
    {
      method: "GET",
      headers: {
        "accept": "application/json",
        "authorization": "Bearer <token>",
        "content-type": "application/json",
      },
    }
  );
  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/",
      headers={
          "accept": "application/json",
          "authorization": "Bearer <token>",
          "content-type": "application/json",
      },
  )
  print(response.json())
  ```

  ```go Go theme={null}
  package main

  import (
  	"fmt"
  	"io"
  	"net/http"
  )

  func main() {
  	req, _ := http.NewRequest("GET", "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/", nil)
  	req.Header.Set("accept", "application/json")
  	req.Header.Set("authorization", "Bearer <token>")
  	req.Header.Set("content-type", "application/json")
  	resp, _ := http.DefaultClient.Do(req)
  	defer resp.Body.Close()
  	respBody, _ := io.ReadAll(resp.Body)
  	fmt.Println(string(respBody))
  }
  ```
</CodeGroup>

* `delegatorAddress` — account address of the user initiated the staking transaction.
* `vaultAddress` — Ethereum address of the vault.

Example response:

<CodeGroup>
  ```json theme={null}
  {
        "error": null,
        "result": {
            "delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
            "vaultAddress": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
            "stake": {
                "assets": 0.40002974751806797,
                "totalEarnedAssets": 0.000086455591795945
            },
            "availableToWithdraw": 0.010034115368561011,
            "exitQueue": {
                "total": 0.09007179878300194,
                "requests": [
                    {
                        "ticket": "14550213999915345334",
                        "totalAssets": 0.010034115368561011,
                        "timestamp": 1749747696000,
                        "withdrawalTimestamp": 0,
                        "isClaimable": true
                    },
                    {
                        "ticket": "23001870415343779687",
                        "totalAssets": 0.010000509804222077,
                        "timestamp": 1752413688000,
                        "withdrawalTimestamp": 1752500088000,
                        "isClaimable": false
                    },
                    {
                        "ticket": "23011815987815344974",
                        "totalAssets": 0.06000305882533247,
                        "timestamp": 1752413796000,
                        "withdrawalTimestamp": 1752500196000,
                        "isClaimable": false
                    }
                ]
            }
        }
    }
  ```
</CodeGroup>

* `delegatorAddress` — account address of the user initiated the staking transaction.

* `vaultAddress` — Ethereum address of the vault.

* `stake` — detailed information about the current stake:

  * `assets` — amount of tokens in the stake in Wei.
  * `totalEarnedAssets` — total amount of rewards received in Wei.

* `availableToWithdraw` — amount of tokens in Wei available to withdraw from the vault.

* `exitQueue` — detailed information on the tokens locked for the waiting period.

  * `total` — total amount of tokens in Wei in the exit queue.

  * `requests` — detailed information on the unstaking requests initiated by the delegator:

    * `ticket` — position of the unstaking request in a special format required for claiming.
    * `totalAssets` — total amount of tokens in Wei queued for unstaking.
    * `timestamp` — timestamp of the unstaking request creation in the ISO 8601 format.
    * `withdrawalTimestamp` — estimated timestamp in the ISO 8601 format indicating when the tokens become withdrawable.
    * `isClaimable` — parameter indicating if this amount of tokens is available to withdraw.

### Get rewards history

To retrieve daily balance and reward history, as well as current APY, send a GET request to [/api/v1/staking/pool/\{network}/account/\{delegatorAddress}/vault/\{vaultAddress}/rewards](/reference/eth-pool-account-rewards).

Example request (for `hoodi` network):

<CodeGroup>
  ```bash curl theme={null}
  curl --request GET \
       --url https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89\rewards / \
       --header 'accept: application/json' \
       --header 'authorization: Bearer <token>' \
       --header 'content-type: application/json'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/rewards",
    {
      method: "GET",
      headers: {
        "accept": "application/json",
        "authorization": "Bearer <token>",
        "content-type": "application/json",
      },
    }
  );
  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/rewards",
      headers={
          "accept": "application/json",
          "authorization": "Bearer <token>",
          "content-type": "application/json",
      },
  )
  print(response.json())
  ```

  ```go Go theme={null}
  package main

  import (
  	"fmt"
  	"io"
  	"net/http"
  )

  func main() {
  	req, _ := http.NewRequest("GET", "https://api-test.p2p.org/api/v1/staking/pool/hoodi/account/0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe/vault/0xba447498dc4c169f2b4f427b2c4d532320457e89/rewards", nil)
  	req.Header.Set("accept", "application/json")
  	req.Header.Set("authorization", "Bearer <token>")
  	req.Header.Set("content-type", "application/json")
  	resp, _ := http.DefaultClient.Do(req)
  	defer resp.Body.Close()
  	respBody, _ := io.ReadAll(resp.Body)
  	fmt.Println(string(respBody))
  }
  ```
</CodeGroup>

* `delegatorAddress` — account address of the user initiated the staking transaction.
* `vaultAddress` — Ethereum address of the vault.

Example response:

<CodeGroup>
  ```json theme={null}
  {
        "error": null,
        "result": {
            "delegatorAddress": "0x092Af80778ff3c3D27Fd2744C39f6e9326d9AaEe",
            "vaultAddress": "0xba447498dc4c169f2b4f427b2c4d532320457e89",
            "rewards": [
                {
                    "date": "2025-07-13T00:00:00.000Z",
                    "apy": 2.1705144753973515,
                    "balance": 0.4000192848063124,
                    "rewards": 0.23001511006385378
                },
                {
                    "date": "2025-07-12T00:00:00.000Z",
                    "apy": 0.6728186791771593,
                    "balance": 0.1700041747424586,
                    "rewards": 0.000003202086219675
                },
                {
                    "date": "2025-07-11T00:00:00.000Z",
                    "apy": 1.8252614817398076,
                    "balance": 0.04000089425699653,
                    "rewards": 0.000001960880296672
                },
                {
                    "date": "2025-07-10T00:00:00.000Z",
                    "apy": 1.806864874160972,
                    "balance": 0.0399988582881249,
                    "rewards": 0.000003918771522507
                },
                {
                    "date": "2025-07-08T00:00:00.000Z",
                    "apy": 2.889941328415176,
                    "balance": 0.03999476781018422,
                    "rewards": 0.000005056349354517
                },
                {
                    "date": "2025-07-06T00:00:00.000Z",
                    "apy": 1.7762765993571947,
                    "balance": 0.03998953257364396,
                    "rewards": 0.000001989611942596
                },
                {
                    "date": "2025-07-05T00:00:00.000Z",
                    "apy": 1.878205919278462,
                    "balance": 0.03998746377580935,
                    "rewards": 0.000001995075528891
                },
                {
                    "date": "2025-07-04T00:00:00.000Z",
                    "apy": 1.6840977946143212,
                    "balance": 0.03998539531683224,
                    "rewards": 0.000001903591244608
                },
                {
                    "date": "2025-07-03T00:00:00.000Z",
                    "apy": 2.9042127452251387,
                    "balance": 0.039983395559925,
                    "rewards": 0.000003130564053543
                },
                {
                    "date": "2025-07-02T00:00:00.000Z",
                    "apy": 1.8025197659824885,
                    "balance": 0.03998016066470251,
                    "rewards": 0.000002004548585118
                },
                {
                    "date": "2025-07-01T00:00:00.000Z",
                    "apy": 2.9738768552591783,
                    "balance": 0.039978033387643545,
                    "rewards": 0.000003155011811334
                },
                {
                    "date": "2025-06-30T00:00:00.000Z",
                    "apy": 1.8162541709061624,
                    "balance": 0.039974802212567426,
                    "rewards": 0.00000201347365414
                },
                {
                    "date": "2025-06-29T00:00:00.000Z",
                    "apy": 1.8075625838524545,
                    "balance": 0.03997270942400358,
                    "rewards": 0.000001992735938527
                },
                {
                    "date": "2025-06-28T00:00:00.000Z",
                    "apy": 3.5107177909087954,
                    "balance": 0.03997061537620456,
                    "rewards": 0.0000038755055009
                },
                {
                    "date": "2025-06-27T00:00:00.000Z",
                    "apy": 1.8759957590284255,
                    "balance": 0.03996661168951173,
                    "rewards": 0.000002013656908218
                },
                {
                    "date": "2025-06-26T00:00:00.000Z",
                    "apy": 1.7944579365558677,
                    "balance": 0.039964522307306544,
                    "rewards": 0.000001965603707971
                },
                {
                    "date": "2025-06-25T00:00:00.000Z",
                    "apy": 1.7550488747436979,
                    "balance": 0.03996248113678149,
                    "rewards": 0.000001944488887432
                },
                {
                    "date": "2025-06-24T00:00:00.000Z",
                    "apy": 1.8379157842851654,
                    "balance": 0.039960459210225195,
                    "rewards": 0.000001972758389168
                },
                {
                    "date": "2025-06-23T00:00:00.000Z",
                    "apy": 1.7928563914758289,
                    "balance": 0.03995841203163699,
                    "rewards": 0.000003915092206271
                },
                {
                    "date": "2025-06-21T00:00:00.000Z",
                    "apy": 2.8871373517191192,
                    "balance": 0.03995432882638032,
                    "rewards": 0.000003123063599167
                },
                {
                    "date": "2025-06-20T00:00:00.000Z",
                    "apy": 2.828933988702405,
                    "balance": 0.03995108713916603,
                    "rewards": 0.000003060285847402
                },
                {
                    "date": "2025-06-19T00:00:00.000Z",
                    "apy": 1.7454148564582386,
                    "balance": 0.0399479201945625,
                    "rewards": 0.000001900741504801
                },
                {
                    "date": "2025-06-18T00:00:00.000Z",
                    "apy": 2.788462639348563,
                    "balance": 0.0399458996835444,
                    "rewards": 0.000003144115598416
                },
                {
                    "date": "2025-06-17T00:00:00.000Z",
                    "apy": 1.8359009572035467,
                    "balance": 0.03994267570940807,
                    "rewards": 0.000001986181925313
                },
                {
                    "date": "2025-06-16T00:00:00.000Z",
                    "apy": 1.8726943585624019,
                    "balance": 0.03994061341223341,
                    "rewards": 0.000002023036371899
                },
                {
                    "date": "2025-06-15T00:00:00.000Z",
                    "apy": 1.8306555099791324,
                    "balance": 0.039938512940331676,
                    "rewards": 0.000001986143112602
                },
                {
                    "date": "2025-06-14T00:00:00.000Z",
                    "apy": 1.7559323566628742,
                    "balance": 0.03993645014333918,
                    "rewards": 0.000001984760250822
                },
                {
                    "date": "2025-06-13T00:00:00.000Z",
                    "apy": 2.350308909342375,
                    "balance": 0.03993438526261774,
                    "rewards": 0.000002537884144973
                }
            ]
        }
    }
  ```
</CodeGroup>

* `delegatorAddress` — account address of the user initiated the staking transaction.

* `vaultAddress` — Ethereum address of the vault.

* `rewards` — list of daily snapshots:

  * `date` — timestamp of each data point in the ISO 8601 format.
  * `apy` — delegator current annual percentage yield (APY) based on time, rewards, and balance.
  * `balance` — total amount of tokens in Wei staked by the delegator on the vault.
  * `rewards` — amount of tokens in Wei received as rewards.


## Related topics

- [Sign and Broadcast Transaction](/docs/pooled-staking-signing-transaction.md)
- [Withdrawal](/docs/withdrawal-aptos.md)
- [Pooled Staking API reference](/reference/introduction-pooled-staking.md)
