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

# Wallet Insights

> Retrieve comprehensive wallet insight metrics including activity age, transfer counts, counterparties, and swap volume.

export const SupportedChains = ({chains}) => {
  const chainData = {
    ethereum: {
      name: "Ethereum",
      chainId: "0x1",
      alias: "eth"
    },
    polygon: {
      name: "Polygon",
      chainId: "0x89",
      alias: "polygon"
    },
    binance: {
      name: "BNB Chain",
      chainId: "0x38",
      alias: "bsc"
    },
    avalanche: {
      name: "Avalanche",
      chainId: "0xa86a",
      alias: "avalanche"
    },
    base: {
      name: "Base",
      chainId: "0x2105",
      alias: "base"
    },
    optimism: {
      name: "Optimism",
      chainId: "0xa",
      alias: "optimism"
    },
    arbitrum: {
      name: "Arbitrum",
      chainId: "0xa4b1",
      alias: "arbitrum"
    },
    cronos: {
      name: "Cronos",
      chainId: "0x19",
      alias: "cronos"
    },
    gnosis: {
      name: "Gnosis",
      chainId: "0x64",
      alias: "gnosis"
    },
    chiliz: {
      name: "Chiliz",
      chainId: "0x15b38",
      alias: "chiliz"
    },
    moonbeam: {
      name: "Moonbeam",
      chainId: "0x504",
      alias: "moonbeam"
    },
    moonriver: {
      name: "Moonriver",
      chainId: "0x505",
      alias: "moonriver"
    },
    flow: {
      name: "Flow",
      chainId: "0x2eb",
      alias: "flow"
    },
    ronin: {
      name: "Ronin",
      chainId: "0x7e4",
      alias: "ronin"
    },
    lisk: {
      name: "Lisk",
      chainId: "0x46f",
      alias: "lisk"
    },
    linea: {
      name: "Linea",
      chainId: "0xe708",
      alias: "linea"
    },
    pulse: {
      name: "PulseChain",
      chainId: "0x171",
      alias: "pulse"
    },
    sei: {
      name: "Sei",
      chainId: "0x531",
      alias: "sei"
    },
    monad: {
      name: "Monad",
      chainId: "0x8f",
      alias: "monad"
    },
    solana: {
      name: "Solana",
      chainId: "mainnet",
      alias: "solana"
    }
  };
  const resolved = chains.map(c => {
    const key = c.toLowerCase().trim();
    return chainData[key] || ({
      name: c,
      chainId: "—",
      alias: "—"
    });
  });
  return <Accordion title="Supported Chains (Beta)">
      <p style={{
    marginBottom: "12px",
    fontSize: "14px"
  }}>
        This endpoint currently supports <strong>{resolved.length}</strong>{" "}
        chain{resolved.length !== 1 && "s"}:
      </p>
      <table>
        <thead>
          <tr>
            <th>Chain</th>
            <th>Query Params</th>
          </tr>
        </thead>
        <tbody>
          {resolved.map(chain => <tr key={chain.chainId}>
              <td>{chain.name}</td>
              <td>
                <code>{chain.alias}</code> · <code>{chain.chainId}</code>
              </td>
            </tr>)}
        </tbody>
      </table>
    </Accordion>;
};

export const EndpointMeta = ({premium, cus, cusUnit, mainnetOnly}) => {
  const items = [];
  const planName = typeof premium === "string" ? premium : "Pro";
  if (premium) {
    items.push({
      icon: "\u26a0\ufe0f",
      label: "Premium endpoint",
      text: <>
          Requires the <strong>{planName} plan</strong> or above.{" "}
          <a href="/data-api/introduction/resources/premium-endpoints">
            View all
          </a>
          .
        </>
    });
  }
  if (cus) {
    const isDynamic = !!cusUnit;
    items.push({
      icon: "\u26a1",
      label: isDynamic ? "Dynamic cost" : "Endpoint cost",
      text: isDynamic ? <>
          {cus} CUs per {cusUnit}.{" "}
          <a href="/get-started/pricing#dynamic-endpoints">Learn more</a>.
        </> : <>
          {cus} CUs.{" "}
          <a href="/get-started/pricing">Learn more</a>.
        </>
    });
  }
  if (mainnetOnly) {
    items.push({
      icon: "\ud83d\udd17",
      label: "Mainnet only",
      text: <>Testnet chains are not supported.</>
    });
  }
  if (items.length === 0) return null;
  return <div className="endpoint-meta" style={{
    border: "1px solid var(--border-color, #e2e8f0)",
    borderRadius: "8px",
    overflow: "hidden",
    marginBottom: "16px",
    fontSize: "14px",
    lineHeight: "1.6",
    maxWidth: "100%"
  }}>
      <style dangerouslySetInnerHTML={{
    __html: `
            .endpoint-meta {
              --border-color: #e2e8f0;
              --row-bg: #f8fafc;
              --label-color: #0f172a;
              --text-color: #1f2937;
            }
            .endpoint-meta a {
              color: #0f7fff !important;
              text-decoration: underline;
            }
            @media (prefers-color-scheme: dark) {
              .endpoint-meta {
                --border-color: #374151 !important;
                --row-bg: #1e293b !important;
                --label-color: #f9fafb !important;
                --text-color: #e5e7eb !important;
              }
              .endpoint-meta a {
                color: #60a5fa !important;
              }
            }
            html.dark .endpoint-meta,
            [data-theme="dark"] .endpoint-meta {
              --border-color: #374151 !important;
              --row-bg: #1e293b !important;
              --label-color: #f9fafb !important;
              --text-color: #e5e7eb !important;
            }
            html.dark .endpoint-meta a,
            [data-theme="dark"] .endpoint-meta a {
              color: #60a5fa !important;
            }
          `
  }} />
      {items.map((item, i) => <div key={i} style={{
    display: "flex",
    alignItems: "baseline",
    gap: "8px",
    padding: "10px 14px",
    borderBottom: i < items.length - 1 ? "1px solid var(--border-color, #e2e8f0)" : "none",
    backgroundColor: "var(--row-bg, #f8fafc)"
  }}>
          <span style={{
    flexShrink: 0
  }}>{item.icon}</span>
          <span style={{
    wordBreak: "break-word",
    color: "var(--text-color, #1f2937)"
  }}>
            <strong style={{
    color: "var(--label-color, #0f172a)"
  }}>
              {item.label}:
            </strong>{" "}
            {item.text}
          </span>
        </div>)}
    </div>;
};

<EndpointMeta premium cus={100} cusUnit="chain" mainnetOnly />

<SupportedChains
  chains={[
"ethereum",
"pulse",
"base",
"binance",
"sei",
"polygon",
"monad",
"optimism",
"avalanche",
]}
/>


## OpenAPI

````yaml openapi-files/data-api/api.json GET /wallets/{address}/insight
openapi: 3.0.0
info:
  title: EVM API
  version: '2.2'
servers:
  - url: https://deep-index.moralis.io/api/v2.2
security:
  - ApiKeyAuth: []
tags: []
paths:
  /wallets/{address}/insight:
    get:
      tags:
        - Wallets
      summary: Get wallet insight metrics
      description: >-
        Retrieve comprehensive wallet insight metrics including activity age,
        transfer counts, counterparties, and swap volume.
      operationId: getWalletInsight
      parameters:
        - in: path
          name: address
          description: The wallet address to get insight for
          required: true
          schema:
            type: string
            example: '0xcB1C1FdE09f811B294172696404e88E658659905'
        - in: query
          name: chains
          description: >-
            The chains to query. If not provided, aggregates across all
            supported chains.
          required: false
          schema:
            type: array
            items:
              type: string
            example:
              - '0x1'
              - '0x89'
        - in: query
          name: includeChainBreakdown
          description: >-
            When true, includes a per-chain breakdown array in the response with
            both native and USD values.
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Returns wallet insight metrics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletInsightResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    WalletInsightResponse:
      type: object
      properties:
        address:
          type: string
          description: The wallet address
          example: '0xcB1C1FdE09f811B294172696404e88E658659905'
        addressType:
          type: string
          description: The type of address
          example: evm
        walletAgeDays:
          type: integer
          description: Wallet age in days since first activity
          example: 1314
        firstActivityAt:
          $ref: '#/components/schemas/ActivityMetadata'
        lastActivityAt:
          $ref: '#/components/schemas/ActivityMetadata'
        firstInitiatedAt:
          $ref: '#/components/schemas/ActivityMetadata'
        lastInitiatedAt:
          $ref: '#/components/schemas/ActivityMetadata'
        activeDays:
          type: integer
          description: Number of unique active days
          example: 503
        activeChains:
          type: integer
          description: Number of unique chains the wallet is active on
          example: 9
        mostActiveChain:
          type: string
          nullable: true
          description: The chain ID with the most active days
          example: '0x1'
        transactionsInitiated:
          type: integer
          description: Number of transactions initiated by the wallet
          example: 724
        transactionsInvolved:
          type: integer
          description: Number of transactions involving the wallet
          example: 754
        nativeTransfers:
          $ref: '#/components/schemas/TransferCounts'
        erc20Transfers:
          $ref: '#/components/schemas/TransferCounts'
        nftTransfers:
          $ref: '#/components/schemas/TransferCounts'
        uniqueCounterparties:
          $ref: '#/components/schemas/CounterpartyCounts'
        swapVolumeUsd:
          type: number
          description: Total swap volume in USD
          example: 11778.556304337722
        totalGasSpentUsd:
          type: string
          description: Total gas spent in USD across requested chains
          example: '55.23'
        avgGasPerTransactionUsd:
          type: string
          description: Average gas per initiated transaction in USD
          example: '0.59'
        nativeVolumeSentUsd:
          type: string
          description: Total native token volume sent in USD
          example: '4025.93'
        nativeVolumeReceivedUsd:
          type: string
          description: Total native token volume received in USD
          example: '2081.83'
        nativeNetFlowUsd:
          type: string
          description: Net native token flow in USD. Negative means outflow
          example: '-1944.10'
        uniqueTokensInteracted:
          type: integer
          description: Number of unique ERC20 token contracts interacted with
          example: 4
        contractsCreated:
          type: integer
          description: Number of contracts created (deployed)
          example: 58
        largestNativeTransferInUsd:
          type: string
          description: Largest single native transfer received in USD
          example: '2061.94'
        largestNativeTransferOutUsd:
          type: string
          description: Largest single native transfer sent in USD
          example: '1570.53'
        chainBreakdown:
          type: array
          description: >-
            Per-chain breakdown with both native and USD values. Only included
            when includeChainBreakdown=true.
          items:
            $ref: '#/components/schemas/ChainBreakdownEntry'
    ActivityMetadata:
      type: object
      nullable: true
      properties:
        chain:
          type: string
          description: Chain ID
          example: '0x1'
        blockNumber:
          type: string
          description: Block number
          example: '23583751'
        blockTimestamp:
          type: string
          description: Block timestamp
          example: '2025-10-15T14:41:23.000Z'
        transactionHash:
          type: string
          description: Transaction hash
          example: 0x...
        type:
          type: string
          description: Activity type
          example: tokenTransfer
        direction:
          type: string
          description: Direction (in or out)
          example: in
    TransferCounts:
      type: object
      properties:
        sent:
          type: integer
          description: Number of transfers sent
          example: 210
        received:
          type: integer
          description: Number of transfers received
          example: 272
        total:
          type: integer
          description: Total number of transfers
          example: 482
    CounterpartyCounts:
      type: object
      properties:
        sentTo:
          type: integer
          description: Number of unique counterparties sent to
          example: 412
        receivedFrom:
          type: integer
          description: Number of unique counterparties received from
          example: 615
    ChainBreakdownEntry:
      type: object
      properties:
        chain:
          type: string
          description: The chain ID
          example: '0x1'
        walletAgeDays:
          type: integer
          description: Wallet age in days on this chain
        firstActivityAt:
          $ref: '#/components/schemas/ActivityMetadata'
        lastActivityAt:
          $ref: '#/components/schemas/ActivityMetadata'
        firstInitiatedAt:
          $ref: '#/components/schemas/ActivityMetadata'
        lastInitiatedAt:
          $ref: '#/components/schemas/ActivityMetadata'
        activeDays:
          type: integer
          description: Number of unique active days on this chain
        transactionsInitiated:
          type: integer
          description: Number of transactions initiated on this chain
        transactionsInvolved:
          type: integer
          description: Number of transactions involving the wallet on this chain
        nativeTransfers:
          $ref: '#/components/schemas/TransferCounts'
        erc20Transfers:
          $ref: '#/components/schemas/TransferCounts'
        nftTransfers:
          $ref: '#/components/schemas/TransferCounts'
        uniqueCounterparties:
          $ref: '#/components/schemas/CounterpartyCounts'
        swapVolumeUsd:
          type: number
          description: Total swap volume in USD on this chain
        totalGasSpentNative:
          type: string
          description: Total gas spent in native token
        totalGasSpentUsd:
          type: string
          description: Total gas spent in USD
        avgGasPerTransactionNative:
          type: string
          description: Average gas per initiated transaction in native token
        avgGasPerTransactionUsd:
          type: string
          description: Average gas per initiated transaction in USD
        nativeVolumeSent:
          type: string
          description: Total native token volume sent
        nativeVolumeSentUsd:
          type: string
          description: Total native token volume sent in USD
        nativeVolumeReceived:
          type: string
          description: Total native token volume received
        nativeVolumeReceivedUsd:
          type: string
          description: Total native token volume received in USD
        nativeNetFlow:
          type: string
          description: Net native token flow (received - sent). Negative means outflow
        nativeNetFlowUsd:
          type: string
          description: Net native token flow in USD
        uniqueTokensInteracted:
          type: integer
          description: Number of unique ERC20 token contracts interacted with
        contractsCreated:
          type: integer
          description: Number of contracts created (deployed)
        largestNativeTransferIn:
          type: string
          description: Largest single native transfer received
        largestNativeTransferInUsd:
          type: string
          description: Largest single native transfer received in USD
        largestNativeTransferOut:
          type: string
          description: Largest single native transfer sent
        largestNativeTransferOutUsd:
          type: string
          description: Largest single native transfer sent in USD
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      x-default: test

````