Get position(s)

Address · Acts onchain

Returns every position an address holds across every protocol Plug indexes: fungible balances, non-fungible holdings, and the non-tokenized positions that never show up in a wallet. A lending market deposit, an LP range, a staked balance, a vault share: most of what an address is worth has no token in the wallet to prove it. The indexer derives these positions from onchain events and keeps every number a protocol tracks about them, yields, rates, health, value, in the attributes of each entry. Reach for it to render a portfolio, to find the balance a strategy is about to act on, or to answer what is this address actually holding without connecting a wallet or touching a key.

Send a request

Response

{
links: {
self: string
prev: string | undefined
next: string | undefined
} | undefined
headers: {
deposit_value:money: string | undefined
debt_value:money: string | undefined
net_worth:money: string | undefined
net_carry_apy:percent: string | undefined
claimable_value:money: string | undefined
} | undefined
data: ({
chain_id: number
address: string
token_id: string | undefined
standard: string | undefined
name: string | undefined
symbol: string | undefined
decimals: number | undefined
icon: string | undefined
description: string | undefined
status: string | undefined
attributes: Record<string, string | self> | undefined
balance: {
int: string
float: string | undefined
decimals: number | undefined
value: string | undefined
} | undefined
price: effects | undefined
relationships: Record<string, ({
chain_id: number | undefined
address: string | undefined
token_id: string
name: string | undefined
symbol: string | undefined
decimals: number | undefined
standard: string | undefined
status: string | undefined
icon: string | undefined
description: string | undefined
attributes: Record<string, string | self> | undefined
balance: {
int: string
float: string | undefined
decimals: number | undefined
value: string | undefined
} | undefined
})[]> | undefined
tokens: ({
chain_id: number | undefined
address: string | undefined
token_id: string
name: string | undefined
symbol: string | undefined
decimals: number | undefined
standard: string | undefined
status: string | undefined
icon: string | undefined
description: string | undefined
attributes: Record<string, string | self> | undefined
balance: {
int: string
float: string | undefined
decimals: number | undefined
value: string | undefined
} | undefined
})[] | undefined
visibility: string | undefined
actions: ({
protocol: string
action: string
capability: {
value: string
label: string
description: string
} | undefined
})[] | undefined
})[] | null
}

Code samples

Language

Claude

Prompt

Call the Plug API endpoint "Get position(s)".
## Endpoint
PUT /address/{address}/
Base URL: https://api.plug.to
## Description
Returns every position an address holds across every protocol Plug indexes: fungible balances, non-fungible holdings, and the non-tokenized positions that never show up in a wallet.
A lending market deposit, an LP range, a staked balance, a vault share: most of what an address is worth has no token in the wallet to prove it. The indexer derives these positions from onchain events and keeps every number a protocol tracks about them, yields, rates, health, value, in the attributes of each entry.
Reach for it to render a portfolio, to find the balance a strategy is about to act on, or to answer what is this address actually holding without connecting a wallet or touching a key.
## Path Parameters
- address (string, required) — The EVM address to get information for. In the case that you request an address we have never indexed, we will immediately index it.
Current value: 0x62180042606624f02d8a130da8a3171e9b33894d
## Query Parameters
- filter[chain_id] (integer, optional) — Filter results to specific chains from the listed of supported options.
- filter[standard] (string, optional) — Filter results to specific token standards. [erc:20, erc:721, erc:1155, erc:4626, native, position]
- filter[protocol] (string, optional) — Filter results to specific protocols from the listed of supported options.
- filter[address] (string, optional) — Filter results to specific contract addresses.
- filter[token_id] (string, optional) — Filter results to specific token ids.
- filter[verified] (boolean, optional) — Filter results to verified or unverified contracts. [true, false]
- filter[status] (string, optional) — Filter results by status. Supports 'pinned' and 'hidden' as special visibility filters.
- search[all] (string, optional) — Search by name or symbol.
- search[name] (string, optional) — Search by name only.
- search[symbol] (string, optional) — Search by symbol only.
- action[refresh] (boolean, optional) — Refresh underlying metadata of returned items. [true, false]
- action[hide] (boolean, optional) — Hide positions from the response. [true, false]
- action[visibility] (string, optional) — Set visibility for matched positions. Values: 'pinned', 'hidden', or '' (clear).
- sort[by] (string, optional) — Field to sort results by. [value, name, symbol]
- sort[direction] (string, optional) — Sort direction (ascending or descending). [asc, desc]
- limit[count] (integer, optional) — Maximum number of results to return.
- limit[offset] (integer, optional) — Number of results to skip for pagination.
- limit[groups] (string, optional) — Group results by specified fields.
## Headers
- Accept (string, required) — For a typical single-time JSON response, set this to application/json. To receive realtime updates through a stream, set this to text/event-stream. (default: application/json) [application/json, text/event-stream]
Current value: application/json
## Response Schema
- links (object, optional)
- self (string, required)
- prev (string, optional)
- next (string, optional)
- headers (object, optional)
- deposit_value:money (string, optional) — Total USD value deposited across all positions.
- debt_value:money (string, optional) — Total USD value borrowed across all positions.
- net_worth:money (string, optional) — Deposit value minus debt value in USD.
- net_carry_apy:percent (string, optional) — Net carry APY across all positions as a 0..1 fraction, the unit every :percent value carries; the display layer scales ×100.
- claimable_value:money (string, optional) — Total USD value of unclaimed rewards.
- data (array
- chain_id (integer, required)
- address (string, required)
- token_id (string, optional)
- standard (string, optional)
- name (string, optional)
- symbol (string, optional)
- decimals (integer, optional)
- icon (string, optional)
- description (string, optional)
- status (string, optional)
- attributes (Record<string, string | self>, optional) — Arbitrarily nested map holding everything indexed about this entry beyond its identity: section keys group leaves, and a leaf key may carry a display format after a colon (value:money, rate:percentage). Sections seen in production include net (value, rate, balance), supply, borrow, stake, lp, position, portfolio, media (image, animation, html), and address (backfill_percentage); the set is protocol-defined and open, so read what is present rather than assuming a fixed shape. Every yield, rate, health, and position number the product displays lives here and nowhere else: an entry with no attributes is not an entry without those numbers, it is an entry whose attributes were not requested or not indexed.
- balance (object, optional)
- int (string, required)
- float (string, optional)
- decimals (integer, optional)
- value (string, optional)
- price (effects, optional)
- relationships (Record<string, array>, optional)
- tokens (array
- chain_id (integer, optional)
- address (string, optional)
- token_id (string, required)
- name (string, optional)
- symbol (string, optional)
- decimals (integer, optional)
- standard (string, optional)
- status (string, optional)
- icon (string, optional)
- description (string, optional)
- attributes (Record<string, string | self>, optional) — Arbitrarily nested map holding everything indexed about this entry beyond its identity: section keys group leaves, and a leaf key may carry a display format after a colon (value:money, rate:percentage). Sections seen in production include net (value, rate, balance), supply, borrow, stake, lp, position, portfolio, media (image, animation, html), and address (backfill_percentage); the set is protocol-defined and open, so read what is present rather than assuming a fixed shape. Every yield, rate, health, and position number the product displays lives here and nowhere else: an entry with no attributes is not an entry without those numbers, it is an entry whose attributes were not requested or not indexed.
- balance (object, optional)
- int (string, required)
- float (string, optional)
- decimals (integer, optional)
- value (string, optional), optional)
- visibility (string, optional)
- actions (array
- protocol (string, required)
- action (string, required)
- capability (object, optional)
- value (string, required)
- label (string, required)
- description (string, required), optional), optional)
## Example Request
PUT https://api.plug.to/address/0x62180042606624f02d8a130da8a3171e9b33894d/