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: stringprev: string | undefinednext: string | undefined} | undefinedheaders: {deposit_value:money: string | undefineddebt_value:money: string | undefinednet_worth:money: string | undefinednet_carry_apy:percent: string | undefinedclaimable_value:money: string | undefined} | undefineddata: ({chain_id: numberaddress: stringtoken_id: string | undefinedstandard: string | undefinedname: string | undefinedsymbol: string | undefineddecimals: number | undefinedicon: string | undefineddescription: string | undefinedstatus: string | undefinedattributes: Record<string, string | self> | undefinedbalance: {int: stringfloat: string | undefineddecimals: number | undefinedvalue: string | undefined} | undefinedprice: effects | undefinedrelationships: Record<string, ({chain_id: number | undefinedaddress: string | undefinedtoken_id: stringname: string | undefinedsymbol: string | undefineddecimals: number | undefinedstandard: string | undefinedstatus: string | undefinedicon: string | undefineddescription: string | undefinedattributes: Record<string, string | self> | undefinedbalance: {int: stringfloat: string | undefineddecimals: number | undefinedvalue: string | undefined} | undefined})[]> | undefinedtokens: ({chain_id: number | undefinedaddress: string | undefinedtoken_id: stringname: string | undefinedsymbol: string | undefineddecimals: number | undefinedstandard: string | undefinedstatus: string | undefinedicon: string | undefineddescription: string | undefinedattributes: Record<string, string | self> | undefinedbalance: {int: stringfloat: string | undefineddecimals: number | undefinedvalue: string | undefined} | undefined})[] | undefinedvisibility: string | undefinedactions: ({protocol: stringaction: stringcapability: {value: stringlabel: stringdescription: string} | undefined})[] | undefined})[] | null}
Code samples
Language
Prompt
Call the Plug API endpoint "Get position(s)".## EndpointPUT /address/{address}/Base URL: https://api.plug.to## DescriptionReturns 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 RequestPUT https://api.plug.to/address/0x62180042606624f02d8a130da8a3171e9b33894d/