Address · Reads onchain state
Returns everything Plug knows about an address at the identity level: its metadata and the signal flags the indexing graph has raised on it. The response is the address as the indexer sees it, not as a wallet does. Graph signals classify what the address is (a contract, a token, a router, a known entity) and how it behaves, derived from indexed history rather than a registry someone maintains by hand. Requesting an address that has never been seen queues it for indexing immediately, so a cold address warms up by being asked about. Reach for it as the first call in any flow that starts from a raw address: resolving what something is before deciding which of the other surfaces to read next.
Send a request
Response
{links: {self: stringprev: string | undefinednext: string | undefined} | undefinedheaders: unknown | 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 address".## EndpointGET /address/{address}/Base URL: https://api.plug.to## DescriptionReturns everything Plug knows about an address at the identity level: its metadata and the signal flags the indexing graph has raised on it.The response is the address as the indexer sees it, not as a wallet does. Graph signals classify what the address is (a contract, a token, a router, a known entity) and how it behaves, derived from indexed history rather than a registry someone maintains by hand. Requesting an address that has never been seen queues it for indexing immediately, so a cold address warms up by being asked about.Reach for it as the first call in any flow that starts from a raw address: resolving what something is before deciding which of the other surfaces to read next.## 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## 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 (unknown, optional)- data (object, optional)- 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)## Example RequestGET https://api.plug.to/address/0x62180042606624f02d8a130da8a3171e9b33894d/