# Nept ## Get user NEPT unlocks **get** `/api/v1/users/{address}/nept/unlocks` Get user NEPT unlocks ### Path Parameters - `address: string` The user account address ### Query Parameters - `with_percent: optional boolean` Calculate and include proportional percentages, where applicable - `with_text: optional boolean` Include text variation fields - `with_value: optional boolean` Calculate and include USD values for amounts, where applicable ### Returns - `data: UserUnlockOverview` - `arrangements: array of object { admin, amounts, begins_at, 4 more }` A list of the user's active unlock arrangements - `admin: object { address, issued_reclaim }` The admin of the unlock, if any - `address: string` The address of the unlock arrangement's admin - `issued_reclaim: boolean` True if the admin his issued a reclaim on the unlock arrangement - `amounts: UserUnlockAmounts` Primary unlock amount and other pre-calculated/derived amounts - `amount: string` The full unlock amount This value is immutable and does not change with regards to expiry/reclamation/lock states. - `claimable: string` The amount currently claimable This takes into account: reclamation, lock state, expiry, and previously claimed. In other words, this is an accurate representation of what the user can currently claim. - `claimed: string` The amount that has already been successfully claimed by the user. - `expired: string` The amount that was claimable but has now expired due to the presence and subsequent passing of `expires_at` - `extra: object { percent, text, value }` - `percent: object { claimable, claimed, expired, 3 more }` Percentages for unlock amounts. These do not factor in the `amount_staked` or `amount_held` values. Will not be null when query param `with_percent` is `true`. - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { claimable, claimed, expired, 2 more }` Human-readable variants of percentages for unlock amounts. Will not be null when query params `with_text` and `with_percent` are `true`. - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `locked: string` - `reclaimed: string` - `text: object { amount, claimable, claimed, 3 more }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `value: object { amount, claimable, claimed, 5 more }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { amount, claimable, claimed, 4 more }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `price: string` Text representation of price - `reclaimed: string` - `locked: string` - `price: string` Price used in value calculations - `reclaimed: string` - `locked: string` The total amount of NEPT currently awaiting unlock **NOTE:** any reclaimed unlocks are excluded from the total, regardless of how much the user had claimed prior to reclamation. - `reclaimed: string` The amount that has been reclaimed from the unlock arrangement admin - `begins_at: string` The time at which the unlock begins - `expires_at: string` The time at which the unlock expires, if any - `extra: object { text }` - `text: object { begins_at, expires_at, last_claimed_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `begins_at: string` - `expires_at: string` - `last_claimed_at: string` - `last_claimed_at: string` The time at which the unlock was last claimed, if any - `schedule: UserUnlockSchedule` The schedule of the unlock - `UserUnlockScheduleLinear = object { duration, ends_at, extra, kind }` - `duration: number` The duration of the unlock in seconds - `ends_at: string` The time at which the unlock has/was/would've completed. This is identical to `begins_at + duration`. This timestamp will remain valid even if the unlock has been reclaimed. Therefore, it should not be used as a validity check. - `extra: object { text }` - `text: object { duration, ends_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `ends_at: string` - `kind: "linear"` - `"linear"` - `UserUnlockScheduleLumpSum = object { kind }` - `kind: "lump_sum"` - `"lump_sum"` - `extra: object { text }` - `text: object { last_claimed_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `last_claimed_at: string` - `last_claimed_at: string` The time at which the most recent unlock claim occurred, if any - `totals: UserUnlockAmounts` Contains pre-calculated total amounts for all unlock agreements - `error: unknown` Error data. Guaranteed `null` for successful response. - `status: number` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: string` HTTP status text ### Example ```http curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/unlocks ``` #### Response ```json { "data": { "arrangements": [ { "begins_at": "2026-07-22T08:40:54Z", "schedule": { "kind": "linear", "duration": 1692380, "ends_at": "2026-08-10T22:47:14Z", "extra": { "text": { "ends_at": "2026-08-10 10:47:14 PM +00:00", "duration": "19 days" } } }, "last_claimed_at": null, "expires_at": "2027-07-20T13:44:39Z", "admin": { "address": "inj1loremipsumdolorsitametconsecteturadipi", "issued_reclaim": false }, "extra": { "text": { "begins_at": "2026-07-22 08:40:54 AM +00:00", "last_claimed_at": "N/A", "expires_at": "2027-07-20 01:44:39 PM +00:00" } }, "amounts": { "amount": "539033513", "claimed": "0", "claimable": "0", "locked": "539033513", "expired": "0", "reclaimed": "0", "extra": { "text": { "claimable": "0.0000 NEPT", "amount": "539.0335 NEPT", "reclaimed": "0.0000 NEPT", "locked": "539.0335 NEPT", "claimed": "0.0000 NEPT", "expired": "0.0000 NEPT" }, "percent": { "reclaimed": "0", "claimable": "0", "claimed": "0", "expired": "0", "locked": "1", "extra": { "text": { "locked": "100.00%", "reclaimed": "0.00%", "claimable": "0.00%", "expired": "0.00%", "claimed": "0.00%" } } }, "value": { "reclaimed": "0", "amount": "17.564815853184007856", "claimed": "0", "expired": "0", "price": "0.032585758453916404", "claimable": "0", "locked": "17.564815853184007856", "extra": { "text": { "expired": "$0.00", "claimed": "$0.00", "price": "$0.03", "locked": "$17.56", "reclaimed": "$0.00", "amount": "$17.56", "claimable": "$0.00" } } } } } }, { "begins_at": "2026-05-13T03:54:17Z", "schedule": { "kind": "linear", "duration": 26581850, "ends_at": "2027-03-16T19:45:07Z", "extra": { "text": { "ends_at": "2027-03-16 07:45:07 PM +00:00", "duration": "307 days" } } }, "last_claimed_at": null, "expires_at": "2028-01-16T01:05:19Z", "admin": { "address": "inj1loremipsumdolorsitametconsecteturadipi", "issued_reclaim": false }, "extra": { "text": { "begins_at": "2026-05-13 03:54:17 AM +00:00", "last_claimed_at": "N/A", "expires_at": "2028-01-16 01:05:19 AM +00:00" } }, "amounts": { "amount": "47623136", "claimed": "0", "claimable": "0", "locked": "47623136", "expired": "0", "reclaimed": "0", "extra": { "text": { "claimable": "0.0000 NEPT", "amount": "47.6231 NEPT", "reclaimed": "0.0000 NEPT", "locked": "47.6231 NEPT", "claimed": "0.0000 NEPT", "expired": "0.0000 NEPT" }, "percent": { "reclaimed": "0", "claimable": "0", "claimed": "0", "expired": "0", "locked": "1", "extra": { "text": { "locked": "100.00%", "reclaimed": "0.00%", "claimable": "0.00%", "expired": "0.00%", "claimed": "0.00%" } } }, "value": { "reclaimed": "0", "amount": "1.55183600651401064", "claimed": "0", "expired": "0", "price": "0.032585758453916404", "claimable": "0", "locked": "1.55183600651401064", "extra": { "text": { "expired": "$0.00", "claimed": "$0.00", "price": "$0.03", "locked": "$1.55", "reclaimed": "$0.00", "amount": "$1.55", "claimable": "$0.00" } } } } } } ], "totals": { "amount": "586656649", "claimed": "0", "claimable": "0", "locked": "586656649", "expired": "0", "reclaimed": "0", "extra": { "text": { "claimable": "0.0000 NEPT", "amount": "586.6566 NEPT", "reclaimed": "0.0000 NEPT", "locked": "586.6566 NEPT", "claimed": "0.0000 NEPT", "expired": "0.0000 NEPT" }, "percent": { "reclaimed": "0", "claimable": "0", "claimed": "0", "expired": "0", "locked": "1", "extra": { "text": { "locked": "100.00%", "reclaimed": "0.00%", "claimable": "0.00%", "expired": "0.00%", "claimed": "0.00%" } } }, "value": { "reclaimed": "0", "amount": "19.116651859698018496", "claimed": "0", "expired": "0", "price": "0.032585758453916404", "claimable": "0", "locked": "19.116651859698018496", "extra": { "text": { "expired": "$0.00", "claimed": "$0.00", "price": "$0.03", "locked": "$19.11", "reclaimed": "$0.00", "amount": "$19.11", "claimable": "$0.00" } } } } }, "last_claimed_at": "2025-03-01T14:29:00Z", "extra": { "text": { "last_claimed_at": "2025-03-01 02:29:00 PM +00:00" } } }, "error": null, "status": 200, "status_text": "200 OK" } ``` ## Domain Types ### User Unlock Amounts - `UserUnlockAmounts = object { amount, claimable, claimed, 4 more }` - `amount: string` The full unlock amount This value is immutable and does not change with regards to expiry/reclamation/lock states. - `claimable: string` The amount currently claimable This takes into account: reclamation, lock state, expiry, and previously claimed. In other words, this is an accurate representation of what the user can currently claim. - `claimed: string` The amount that has already been successfully claimed by the user. - `expired: string` The amount that was claimable but has now expired due to the presence and subsequent passing of `expires_at` - `extra: object { percent, text, value }` - `percent: object { claimable, claimed, expired, 3 more }` Percentages for unlock amounts. These do not factor in the `amount_staked` or `amount_held` values. Will not be null when query param `with_percent` is `true`. - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { claimable, claimed, expired, 2 more }` Human-readable variants of percentages for unlock amounts. Will not be null when query params `with_text` and `with_percent` are `true`. - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `locked: string` - `reclaimed: string` - `text: object { amount, claimable, claimed, 3 more }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `value: object { amount, claimable, claimed, 5 more }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { amount, claimable, claimed, 4 more }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `price: string` Text representation of price - `reclaimed: string` - `locked: string` - `price: string` Price used in value calculations - `reclaimed: string` - `locked: string` The total amount of NEPT currently awaiting unlock **NOTE:** any reclaimed unlocks are excluded from the total, regardless of how much the user had claimed prior to reclamation. - `reclaimed: string` The amount that has been reclaimed from the unlock arrangement admin ### User Unlock Overview - `UserUnlockOverview = object { arrangements, extra, last_claimed_at, totals }` - `arrangements: array of object { admin, amounts, begins_at, 4 more }` A list of the user's active unlock arrangements - `admin: object { address, issued_reclaim }` The admin of the unlock, if any - `address: string` The address of the unlock arrangement's admin - `issued_reclaim: boolean` True if the admin his issued a reclaim on the unlock arrangement - `amounts: UserUnlockAmounts` Primary unlock amount and other pre-calculated/derived amounts - `amount: string` The full unlock amount This value is immutable and does not change with regards to expiry/reclamation/lock states. - `claimable: string` The amount currently claimable This takes into account: reclamation, lock state, expiry, and previously claimed. In other words, this is an accurate representation of what the user can currently claim. - `claimed: string` The amount that has already been successfully claimed by the user. - `expired: string` The amount that was claimable but has now expired due to the presence and subsequent passing of `expires_at` - `extra: object { percent, text, value }` - `percent: object { claimable, claimed, expired, 3 more }` Percentages for unlock amounts. These do not factor in the `amount_staked` or `amount_held` values. Will not be null when query param `with_percent` is `true`. - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { claimable, claimed, expired, 2 more }` Human-readable variants of percentages for unlock amounts. Will not be null when query params `with_text` and `with_percent` are `true`. - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `locked: string` - `reclaimed: string` - `text: object { amount, claimable, claimed, 3 more }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `reclaimed: string` - `value: object { amount, claimable, claimed, 5 more }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `extra: object { text }` - `text: object { amount, claimable, claimed, 4 more }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `claimable: string` - `claimed: string` - `expired: string` - `locked: string` - `price: string` Text representation of price - `reclaimed: string` - `locked: string` - `price: string` Price used in value calculations - `reclaimed: string` - `locked: string` The total amount of NEPT currently awaiting unlock **NOTE:** any reclaimed unlocks are excluded from the total, regardless of how much the user had claimed prior to reclamation. - `reclaimed: string` The amount that has been reclaimed from the unlock arrangement admin - `begins_at: string` The time at which the unlock begins - `expires_at: string` The time at which the unlock expires, if any - `extra: object { text }` - `text: object { begins_at, expires_at, last_claimed_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `begins_at: string` - `expires_at: string` - `last_claimed_at: string` - `last_claimed_at: string` The time at which the unlock was last claimed, if any - `schedule: UserUnlockSchedule` The schedule of the unlock - `UserUnlockScheduleLinear = object { duration, ends_at, extra, kind }` - `duration: number` The duration of the unlock in seconds - `ends_at: string` The time at which the unlock has/was/would've completed. This is identical to `begins_at + duration`. This timestamp will remain valid even if the unlock has been reclaimed. Therefore, it should not be used as a validity check. - `extra: object { text }` - `text: object { duration, ends_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `ends_at: string` - `kind: "linear"` - `"linear"` - `UserUnlockScheduleLumpSum = object { kind }` - `kind: "lump_sum"` - `"lump_sum"` - `extra: object { text }` - `text: object { last_claimed_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `last_claimed_at: string` - `last_claimed_at: string` The time at which the most recent unlock claim occurred, if any - `totals: UserUnlockAmounts` Contains pre-calculated total amounts for all unlock agreements ### User Unlock Schedule - `UserUnlockSchedule = UserUnlockScheduleLinear or UserUnlockScheduleLumpSum` - `UserUnlockScheduleLinear = object { duration, ends_at, extra, kind }` - `duration: number` The duration of the unlock in seconds - `ends_at: string` The time at which the unlock has/was/would've completed. This is identical to `begins_at + duration`. This timestamp will remain valid even if the unlock has been reclaimed. Therefore, it should not be used as a validity check. - `extra: object { text }` - `text: object { duration, ends_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `ends_at: string` - `kind: "linear"` - `"linear"` - `UserUnlockScheduleLumpSum = object { kind }` - `kind: "lump_sum"` - `"lump_sum"` ### User Unlock Schedule Linear - `UserUnlockScheduleLinear = object { duration, ends_at, extra, kind }` - `duration: number` The duration of the unlock in seconds - `ends_at: string` The time at which the unlock has/was/would've completed. This is identical to `begins_at + duration`. This timestamp will remain valid even if the unlock has been reclaimed. Therefore, it should not be used as a validity check. - `extra: object { text }` - `text: object { duration, ends_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `ends_at: string` - `kind: "linear"` - `"linear"` ### User Unlock Schedule Lump Sum - `UserUnlockScheduleLumpSum = object { kind }` - `kind: "lump_sum"` - `"lump_sum"` # Staking ## Get user staking overview **get** `/api/v1/users/{address}/nept/staking` Get user staking overview ### Path Parameters - `address: string` The user account address ### Query Parameters - `with_text: optional boolean` Include text variation fields - `with_value: optional boolean` Calculate and include USD values for amounts, where applicable ### Returns - `data: UserStake` - `asset_info: AssetInfo` Asset identifiers with associated metadata - `asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `id: string` - `group: "native" or "token"` - `"native"` - `"token"` - `group_key: string` - `classification: AssetClassification` The asset's classification metadata. Assets are classfied to provide context on their usage throughout the Neptune API (e.g. regular assets, neptune receipt tokens, LSTs, etc.) Each asset belongs to only a single classification type. This object contains metadata pertaining to the given classification. While some fields may be common among the distinct classifcations, each classification is distinct and subject to independent change. - `Regular = object { kind, neptune_receipt_asset }` - `kind: "regular"` - `"regular"` - `neptune_receipt_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `NeptuneReceiptToken = object { kind, origin_asset }` - `kind: "neptune_receipt_token"` - `"neptune_receipt_token"` - `origin_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `LiquidStakingToken = object { kind, origin_asset }` - `kind: "liquid_staking_token"` - `"liquid_staking_token"` - `origin_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `metadata: AssetMetadata` Additional metadata for assets - `decimals_denom: number` Denom exponent, or num. of decimal places that shift between denom/standard amounts (e.g. `18` for `INJ`) - `decimals_display: number` Number of decimals used when displaying amounts of this asset (this is subjective and used for generating text representations) - `name: string` Full name of the asset - `symbol: string` Symbol of the asset, e.g.: `NEPT` `INJ` - `symbol_denom: string` Denom symbol for the asset (e.g. `inj` for `INJ`, `sat` for `BTC`) - `bonding_sum: string` Total staked of all entries across all listed pools **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `claimable_rewards: string` NEPT rewarded from staking that is available yet not claimed by the user - `claimable_unbonding: string` Sum of all unbond/unstake amounts that have completed their lockup period and are ready to be claimed. - `extra: object { text, value }` - `text: object { bonding_sum, claimable_rewards, claimable_unbonding, unclaimed }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `unclaimed: string` - `value: object { bonding_sum, claimable_rewards, claimable_unbonding, 3 more }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `extra: object { text }` - `text: object { bonding_sum, claimable_rewards, claimable_unbonding, 2 more }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `price: string` Text representation of price - `unclaimed: string` - `price: string` Price used in value calculations - `unclaimed: string` - `pools: array of UserStakePool` User allocations for each staking pool - `amount_sum: string` Total staked of all entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `common: StakingPoolFull` Staking pool contents along with associated pool state and pool params - `duration: number` The lockup duration for this pool in seconds - `extra: object { text }` - `text: object { duration, index }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `index: string` - `index: number` The ordered index (position) of this pool - `params: StakingPoolParams` Staking pool contract parameters - `flash_loan_weight: string` The pool's weight (multiplier) for flash loans volume - `gov_weight: string` The pool's weight (multiplier) on governance for an associated stake - `health_weight: string` The pool's weight (multiplier) on account health for an associated stake - `reward_weight: string` The pool's weight (multiplier) on rewards for an associated stake - `state: StakingPoolState` Current contract state of staking pool - `extra: object { text, value }` - `text: object { total_bonded }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `total_bonded: string` - `value: object { extra, price, total_bonded }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: object { text }` - `text: object { price, total_bonded }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: string` Text representation of price - `total_bonded: string` - `price: string` Price used in value calculations - `total_bonded: string` - `total_bonded: string` The total amount staked to this pool - `contents: array of UserStakeBondingEntry` Bonding/stake entries **NOTE:** entries that differ only in amount are merged upon creation - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unbonding: UserStakeUnbonding` User unstake/unbonding data - `amount_sum: string` Total amount of all unbond entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `contents: array of UserStakeUnbondingEntry` Unbonding/unstake entries **NOTE:** cascade unbondings from pool >= 2 are contained in the bondings list of the lower adjacent pool from which the unbond occurred. - `amount: string` Unbonding amount - `extra: object { text, value }` - `text: object { amount, unlock_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `unlock_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unlock_at: string` Timestamp for when the unstake can be redeemed - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unclaimed: string` - `error: unknown` Error data. Guaranteed `null` for successful response. - `status: number` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: string` HTTP status text ### Example ```http curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/staking ``` #### Response ```json { "data": { "asset_info": { "asset": { "id": "native;factory/inj1v3a4zznudwpukpr8y987pu5gnh4xuf7v36jhva/nept", "group": "native", "group_key": "factory/inj1v3a4zznudwpukpr8y987pu5gnh4xuf7v36jhva/nept" }, "metadata": { "name": "Neptune Token", "symbol": "NEPT", "symbol_denom": "nept", "decimals_denom": 6, "decimals_display": 5 }, "classification": { "kind": "regular", "neptune_receipt_asset": null } }, "bonding_sum": "261303252", "pools": [ { "common": { "index": 0, "duration": 604800, "extra": { "text": { "duration": "7 days", "index": "1" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "109444445", "contents": [ { "account_index": 0, "amount": "109444445", "cascade": true, "transition_at": "2026-04-21T00:22:41.146085865Z", "last_stake_acc": "2.815383", "extra": { "text": { "amount": "109.44444 NEPT", "transition_at": "2026-04-21 12:22:41 AM +00:00" }, "value": { "amount": "3.566330248892938912", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$3.56" } } } } } ], "extra": { "text": { "amount_sum": "109.44444 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "3.566330248892938912", "extra": { "text": { "price": "$0.03", "amount_sum": "$3.56" } } } } }, { "common": { "index": 1, "duration": 2592000, "extra": { "text": { "duration": "30 days", "index": "2" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "63111066", "contents": [ { "account_index": 0, "amount": "63111066", "cascade": false, "transition_at": null, "last_stake_acc": "4.699306", "extra": { "text": { "amount": "63.11106 NEPT", "transition_at": "N/A" }, "value": { "amount": "2.056521952445176131", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$2.05" } } } } } ], "extra": { "text": { "amount_sum": "63.11106 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "2.056521952445176131", "extra": { "text": { "price": "$0.03", "amount_sum": "$2.05" } } } } }, { "common": { "index": 2, "duration": 7776000, "extra": { "text": { "duration": "90 days", "index": "3" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "88747741", "contents": [ { "account_index": 0, "amount": "88747741", "cascade": true, "transition_at": "2026-04-30T04:17:56.146113607Z", "last_stake_acc": "9.377375", "extra": { "text": { "amount": "88.74774 NEPT", "transition_at": "2026-04-30 04:17:56 AM +00:00" }, "value": { "amount": "2.891912451556733457", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$2.89" } } } } } ], "extra": { "text": { "amount_sum": "88.74774 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "2.891912451556733457", "extra": { "text": { "price": "$0.03", "amount_sum": "$2.89" } } } } } ], "unbonding": { "amount_sum": "189563302", "contents": [ { "amount": "189563302", "unlock_at": "2026-05-03T06:38:00.146126420Z", "extra": { "text": { "unlock_at": "2026-05-03 06:38:00 AM +00:00", "amount": "189.56330 NEPT" }, "value": { "price": "0.032585758453916404", "amount": "6.177063970698808374", "extra": { "text": { "amount": "$6.17", "price": "$0.03" } } } } } ], "extra": { "text": { "amount_sum": "189.56330 NEPT" }, "value": { "amount_sum": "6.177063970698808374", "price": "0.032585758453916404", "extra": { "text": { "amount_sum": "$6.17", "price": "$0.03" } } } } }, "unclaimed": "184925198", "claimable_rewards": "122236531", "claimable_unbonding": "38301584", "extra": { "text": { "claimable_rewards": "122.23653 NEPT", "bonding_sum": "261.30325 NEPT", "claimable_unbonding": "38.30158 NEPT", "unclaimed": "184.92519 NEPT" }, "value": { "bonding_sum": "8.514764652894848501", "unclaimed": "6.025927834070664885", "claimable_unbonding": "1.248086164626389276", "claimable_rewards": "3.983170073410664588", "price": "0.032585758453916404", "extra": { "text": { "unclaimed": "$6.02", "price": "$0.03", "bonding_sum": "$8.51", "claimable_rewards": "$3.98", "claimable_unbonding": "$1.24" } } } } }, "error": null, "status": 200, "status_text": "200 OK" } ``` ## Get user staking pools **get** `/api/v1/users/{address}/nept/staking/pools` Get user staking pools ### Path Parameters - `address: string` The user account address ### Query Parameters - `with_text: optional boolean` Include text variation fields - `with_value: optional boolean` Calculate and include USD values for amounts, where applicable ### Returns - `count: number` Total number of objects irrespective of any pagination parameters. - `data: array of UserStakePool` - `amount_sum: string` Total staked of all entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `common: StakingPoolFull` Staking pool contents along with associated pool state and pool params - `duration: number` The lockup duration for this pool in seconds - `extra: object { text }` - `text: object { duration, index }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `index: string` - `index: number` The ordered index (position) of this pool - `params: StakingPoolParams` Staking pool contract parameters - `flash_loan_weight: string` The pool's weight (multiplier) for flash loans volume - `gov_weight: string` The pool's weight (multiplier) on governance for an associated stake - `health_weight: string` The pool's weight (multiplier) on account health for an associated stake - `reward_weight: string` The pool's weight (multiplier) on rewards for an associated stake - `state: StakingPoolState` Current contract state of staking pool - `extra: object { text, value }` - `text: object { total_bonded }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `total_bonded: string` - `value: object { extra, price, total_bonded }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: object { text }` - `text: object { price, total_bonded }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: string` Text representation of price - `total_bonded: string` - `price: string` Price used in value calculations - `total_bonded: string` - `total_bonded: string` The total amount staked to this pool - `contents: array of UserStakeBondingEntry` Bonding/stake entries **NOTE:** entries that differ only in amount are merged upon creation - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `error: unknown` Error data. Guaranteed `null` for successful response. - `status: number` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: string` HTTP status text ### Example ```http curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/staking/pools ``` #### Response ```json { "data": [ { "common": { "index": 0, "duration": 604800, "extra": { "text": { "duration": "7 days", "index": "1" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "14652088", "contents": [ { "account_index": 0, "amount": "14652088", "cascade": false, "transition_at": null, "last_stake_acc": "1.771489", "extra": { "text": { "amount": "14.65208 NEPT", "transition_at": "N/A" }, "value": { "amount": "0.477449400413527096", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$0.47" } } } } } ], "extra": { "text": { "amount_sum": "14.65208 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "0.477449400413527096", "extra": { "text": { "price": "$0.03", "amount_sum": "$0.47" } } } } }, { "common": { "index": 1, "duration": 2592000, "extra": { "text": { "duration": "30 days", "index": "2" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "185802473", "contents": [ { "account_index": 0, "amount": "185802473", "cascade": true, "transition_at": "2026-04-10T03:03:30.146395597Z", "last_stake_acc": "6.034249", "extra": { "text": { "amount": "185.80247 NEPT", "transition_at": "2026-04-10 03:03:30 AM +00:00" }, "value": { "amount": "6.054514505318324398", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$6.05" } } } } } ], "extra": { "text": { "amount_sum": "185.80247 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "6.054514505318324398", "extra": { "text": { "price": "$0.03", "amount_sum": "$6.05" } } } } }, { "common": { "index": 2, "duration": 7776000, "extra": { "text": { "duration": "90 days", "index": "3" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "26604454", "contents": [ { "account_index": 0, "amount": "26604454", "cascade": true, "transition_at": "2026-04-22T11:37:54.146410405Z", "last_stake_acc": "7.290343", "extra": { "text": { "amount": "26.60445 NEPT", "transition_at": "2026-04-22 11:37:54 AM +00:00" }, "value": { "amount": "0.86692631184233009", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$0.86" } } } } } ], "extra": { "text": { "amount_sum": "26.60445 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "0.86692631184233009", "extra": { "text": { "price": "$0.03", "amount_sum": "$0.86" } } } } } ], "count": 3, "error": null, "status": 200, "status_text": "200 OK" } ``` ## Get user staking pool by duration/index **get** `/api/v1/users/{address}/nept/staking/pools/lookup` Get user staking pool by duration/index ### Path Parameters - `address: string` The user account address ### Query Parameters - `duration: optional number` Duration of pool to lookup (**in nanoseconds**) **NOTE:** Either index or duration must be provided. Cannot specify both. - `index: optional number` Index of pool to lookup **NOTE:** Either index or duration must be provided. Cannot specify both. - `with_text: optional boolean` Include text variation fields - `with_value: optional boolean` Calculate and include USD values for amounts, where applicable ### Returns - `data: UserStakePool` - `amount_sum: string` Total staked of all entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `common: StakingPoolFull` Staking pool contents along with associated pool state and pool params - `duration: number` The lockup duration for this pool in seconds - `extra: object { text }` - `text: object { duration, index }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `index: string` - `index: number` The ordered index (position) of this pool - `params: StakingPoolParams` Staking pool contract parameters - `flash_loan_weight: string` The pool's weight (multiplier) for flash loans volume - `gov_weight: string` The pool's weight (multiplier) on governance for an associated stake - `health_weight: string` The pool's weight (multiplier) on account health for an associated stake - `reward_weight: string` The pool's weight (multiplier) on rewards for an associated stake - `state: StakingPoolState` Current contract state of staking pool - `extra: object { text, value }` - `text: object { total_bonded }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `total_bonded: string` - `value: object { extra, price, total_bonded }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: object { text }` - `text: object { price, total_bonded }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: string` Text representation of price - `total_bonded: string` - `price: string` Price used in value calculations - `total_bonded: string` - `total_bonded: string` The total amount staked to this pool - `contents: array of UserStakeBondingEntry` Bonding/stake entries **NOTE:** entries that differ only in amount are merged upon creation - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `error: unknown` Error data. Guaranteed `null` for successful response. - `status: number` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: string` HTTP status text ### Example ```http curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/staking/pools/lookup ``` #### Response ```json { "data": { "common": { "index": 0, "duration": 604800, "extra": { "text": { "duration": "7 days", "index": "1" } }, "params": { "reward_weight": "2", "gov_weight": "2", "health_weight": "1", "flash_loan_weight": "0" }, "state": { "total_bonded": "0", "extra": { "text": { "total_bonded": "0.00000 NEPT" }, "value": { "total_bonded": "0", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "total_bonded": "$0.00" } } } } } }, "amount_sum": "103086089", "contents": [ { "account_index": 0, "amount": "103086089", "cascade": false, "transition_at": null, "last_stake_acc": "0.281368", "extra": { "text": { "amount": "103.08608 NEPT", "transition_at": "N/A" }, "value": { "amount": "3.359138396112928821", "price": "0.032585758453916404", "extra": { "text": { "price": "$0.03", "amount": "$3.35" } } } } } ], "extra": { "text": { "amount_sum": "103.08608 NEPT" }, "value": { "price": "0.032585758453916404", "amount_sum": "3.359138396112928821", "extra": { "text": { "price": "$0.03", "amount_sum": "$3.35" } } } } }, "error": null, "status": 200, "status_text": "200 OK" } ``` ## Get user unstaking pool **get** `/api/v1/users/{address}/nept/staking/unstaking` Get user unstaking pool ### Path Parameters - `address: string` The user account address ### Query Parameters - `with_text: optional boolean` Include text variation fields - `with_value: optional boolean` Calculate and include USD values for amounts, where applicable ### Returns - `data: UserStakeUnbonding` - `amount_sum: string` Total amount of all unbond entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `contents: array of UserStakeUnbondingEntry` Unbonding/unstake entries **NOTE:** cascade unbondings from pool >= 2 are contained in the bondings list of the lower adjacent pool from which the unbond occurred. - `amount: string` Unbonding amount - `extra: object { text, value }` - `text: object { amount, unlock_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `unlock_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unlock_at: string` Timestamp for when the unstake can be redeemed - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `error: unknown` Error data. Guaranteed `null` for successful response. - `status: number` HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`. - `status_text: string` HTTP status text ### Example ```http curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/staking/unstaking ``` #### Response ```json { "data": { "amount_sum": "87588537", "contents": [ { "amount": "87588537", "unlock_at": "2026-04-12T06:47:37.146770220Z", "extra": { "text": { "unlock_at": "2026-04-12 06:47:37 AM +00:00", "amount": "87.58853 NEPT" }, "value": { "price": "0.032585758453916404", "amount": "2.854138910013919746", "extra": { "text": { "amount": "$2.85", "price": "$0.03" } } } } } ], "extra": { "text": { "amount_sum": "87.58853 NEPT" }, "value": { "amount_sum": "2.854138910013919746", "price": "0.032585758453916404", "extra": { "text": { "amount_sum": "$2.85", "price": "$0.03" } } } } }, "error": null, "status": 200, "status_text": "200 OK" } ``` ## Domain Types ### User Stake - `UserStake = object { asset_info, bonding_sum, claimable_rewards, 5 more }` - `asset_info: AssetInfo` Asset identifiers with associated metadata - `asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `id: string` - `group: "native" or "token"` - `"native"` - `"token"` - `group_key: string` - `classification: AssetClassification` The asset's classification metadata. Assets are classfied to provide context on their usage throughout the Neptune API (e.g. regular assets, neptune receipt tokens, LSTs, etc.) Each asset belongs to only a single classification type. This object contains metadata pertaining to the given classification. While some fields may be common among the distinct classifcations, each classification is distinct and subject to independent change. - `Regular = object { kind, neptune_receipt_asset }` - `kind: "regular"` - `"regular"` - `neptune_receipt_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `NeptuneReceiptToken = object { kind, origin_asset }` - `kind: "neptune_receipt_token"` - `"neptune_receipt_token"` - `origin_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `LiquidStakingToken = object { kind, origin_asset }` - `kind: "liquid_staking_token"` - `"liquid_staking_token"` - `origin_asset: AssetSpec` Provides a unique identifier for an asset for use throughout the Neptune API. IDs are unique across asset domains (contract tokens, native denoms, etc) - `metadata: AssetMetadata` Additional metadata for assets - `decimals_denom: number` Denom exponent, or num. of decimal places that shift between denom/standard amounts (e.g. `18` for `INJ`) - `decimals_display: number` Number of decimals used when displaying amounts of this asset (this is subjective and used for generating text representations) - `name: string` Full name of the asset - `symbol: string` Symbol of the asset, e.g.: `NEPT` `INJ` - `symbol_denom: string` Denom symbol for the asset (e.g. `inj` for `INJ`, `sat` for `BTC`) - `bonding_sum: string` Total staked of all entries across all listed pools **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `claimable_rewards: string` NEPT rewarded from staking that is available yet not claimed by the user - `claimable_unbonding: string` Sum of all unbond/unstake amounts that have completed their lockup period and are ready to be claimed. - `extra: object { text, value }` - `text: object { bonding_sum, claimable_rewards, claimable_unbonding, unclaimed }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `unclaimed: string` - `value: object { bonding_sum, claimable_rewards, claimable_unbonding, 3 more }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `extra: object { text }` - `text: object { bonding_sum, claimable_rewards, claimable_unbonding, 2 more }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `bonding_sum: string` - `claimable_rewards: string` - `claimable_unbonding: string` - `price: string` Text representation of price - `unclaimed: string` - `price: string` Price used in value calculations - `unclaimed: string` - `pools: array of UserStakePool` User allocations for each staking pool - `amount_sum: string` Total staked of all entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `common: StakingPoolFull` Staking pool contents along with associated pool state and pool params - `duration: number` The lockup duration for this pool in seconds - `extra: object { text }` - `text: object { duration, index }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `index: string` - `index: number` The ordered index (position) of this pool - `params: StakingPoolParams` Staking pool contract parameters - `flash_loan_weight: string` The pool's weight (multiplier) for flash loans volume - `gov_weight: string` The pool's weight (multiplier) on governance for an associated stake - `health_weight: string` The pool's weight (multiplier) on account health for an associated stake - `reward_weight: string` The pool's weight (multiplier) on rewards for an associated stake - `state: StakingPoolState` Current contract state of staking pool - `extra: object { text, value }` - `text: object { total_bonded }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `total_bonded: string` - `value: object { extra, price, total_bonded }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: object { text }` - `text: object { price, total_bonded }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: string` Text representation of price - `total_bonded: string` - `price: string` Price used in value calculations - `total_bonded: string` - `total_bonded: string` The total amount staked to this pool - `contents: array of UserStakeBondingEntry` Bonding/stake entries **NOTE:** entries that differ only in amount are merged upon creation - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unbonding: UserStakeUnbonding` User unstake/unbonding data - `amount_sum: string` Total amount of all unbond entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `contents: array of UserStakeUnbondingEntry` Unbonding/unstake entries **NOTE:** cascade unbondings from pool >= 2 are contained in the bondings list of the lower adjacent pool from which the unbond occurred. - `amount: string` Unbonding amount - `extra: object { text, value }` - `text: object { amount, unlock_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `unlock_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unlock_at: string` Timestamp for when the unstake can be redeemed - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unclaimed: string` ### User Stake Bonding Entry - `UserStakeBondingEntry = object { account_index, amount, cascade, 3 more }` - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` ### User Stake Pool - `UserStakePool = object { amount_sum, common, contents, extra }` - `amount_sum: string` Total staked of all entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `common: StakingPoolFull` Staking pool contents along with associated pool state and pool params - `duration: number` The lockup duration for this pool in seconds - `extra: object { text }` - `text: object { duration, index }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `duration: string` - `index: string` - `index: number` The ordered index (position) of this pool - `params: StakingPoolParams` Staking pool contract parameters - `flash_loan_weight: string` The pool's weight (multiplier) for flash loans volume - `gov_weight: string` The pool's weight (multiplier) on governance for an associated stake - `health_weight: string` The pool's weight (multiplier) on account health for an associated stake - `reward_weight: string` The pool's weight (multiplier) on rewards for an associated stake - `state: StakingPoolState` Current contract state of staking pool - `extra: object { text, value }` - `text: object { total_bonded }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `total_bonded: string` - `value: object { extra, price, total_bonded }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `extra: object { text }` - `text: object { price, total_bonded }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `price: string` Text representation of price - `total_bonded: string` - `price: string` Price used in value calculations - `total_bonded: string` - `total_bonded: string` The total amount staked to this pool - `contents: array of UserStakeBondingEntry` Bonding/stake entries **NOTE:** entries that differ only in amount are merged upon creation - `account_index: number` User account index - `amount: string` Bonding amount - `cascade: boolean` - `extra: object { text, value }` - `text: object { amount, transition_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `transition_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `last_stake_acc: string` - `transition_at: string` - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations ### User Stake Unbonding - `UserStakeUnbonding = object { amount_sum, contents, extra }` - `amount_sum: string` Total amount of all unbond entries **NOTE:** this value is affected by active filters, if any (e.g. filtering over account index) - `contents: array of UserStakeUnbondingEntry` Unbonding/unstake entries **NOTE:** cascade unbondings from pool >= 2 are contained in the bondings list of the lower adjacent pool from which the unbond occurred. - `amount: string` Unbonding amount - `extra: object { text, value }` - `text: object { amount, unlock_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `unlock_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unlock_at: string` Timestamp for when the unstake can be redeemed - `extra: object { text, value }` - `text: object { amount_sum }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount_sum: string` - `value: object { amount_sum, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount_sum: string` - `extra: object { text }` - `text: object { amount_sum, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount_sum: string` - `price: string` Text representation of price - `price: string` Price used in value calculations ### User Stake Unbonding Entry - `UserStakeUnbondingEntry = object { amount, extra, unlock_at }` - `amount: string` Unbonding amount - `extra: object { text, value }` - `text: object { amount, unlock_at }` Human-readable field variants. Will not be null when query param `with_text` is `true`. - `amount: string` - `unlock_at: string` - `value: object { amount, extra, price }` USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well. - `amount: string` - `extra: object { text }` - `text: object { amount, price }` Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`. - `amount: string` - `price: string` Text representation of price - `price: string` Price used in value calculations - `unlock_at: string` Timestamp for when the unstake can be redeemed