Notus API
Smart wallets

Get Smart Wallet Portfolio

Get the portfolio of a smart wallet by its account abstraction address. The portfolio is a list of the user's balances in different tokens.

GET
/api/v1/wallets/{walletAddress}/portfolio
x-api-key<token>

In: header

Path Parameters

walletAddressstring

Wallet address that you want to see the portfolio of

Query Parameters

includeTokens?boolean

Include ERC20 tokens balances in the output

includeNFTs?boolean

Include NFTs in the output

includePnL?boolean

Include profit and loss data in the output

timerange?string

Timerange used to calculate profit and loss values. Only applies when includePnL is true.

Default"1d"
Value in"1d" | "7d" | "1m" | "1a" | "all"

Response Body

curl -X GET "https://api.notuslabs.xyz/api/v1/wallets/0x6e397ddf51d9f15dbe0414538e7529f51f2e5464/portfolio?includeTokens=true&includeNFTs=true&includePnL=true&timerange=1d"
{
  "tokens": [
    {
      "address": "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6",
      "name": "Wrapped Bitcoin",
      "symbol": "WBTC",
      "decimals": 8,
      "logo": "https://wbtclogo.com",
      "chain": {
        "id": 137,
        "name": "POLYGON",
        "logo": "https://logopolygon.com"
      },
      "balance": "100000000",
      "balanceFormatted": "1",
      "balanceUsd": "2.1522",
      "priceUsd": "1.0",
      "pnl": {
        "profitAbsUsd": "152.45",
        "roi": "0.026",
        "inflowUsd": "2400.0",
        "outflowUsd": "150.0",
        "averageBuyPriceUsd": "0.998",
        "averageBuyPricePeriodUsd": "0.999",
        "timerange": "all"
      }
    }
  ],
  "nfts": [
    {
      "address": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
      "collection": {
        "name": "Uniswap V3 Positions NFT-V1",
        "symbol": "UNI-V3-POS",
        "logo": "https://univ3nft.com"
      },
      "tokenId": "2472425",
      "name": "Uniswap - 0.05% - USDT/WETH - 1517.8<>2550.4",
      "description": "This NFT represents a liquidity position in a Uniswap V3 USDT-WETH pool.",
      "image": "https://remilio.org/remilio/2830.png",
      "amount": "2450",
      "chain": {
        "id": 137,
        "name": "POLYGON",
        "logo": "https://logopolygon.com"
      }
    }
  ],
  "portfolio": [
    {
      "address": "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6",
      "name": "Wrapped Bitcoin",
      "symbol": "WBTC",
      "decimals": 8,
      "logo": "https://wbtclogo.com",
      "chain": {
        "id": 137,
        "name": "POLYGON",
        "logo": "https://logopolygon.com"
      },
      "balance": "100000000",
      "balanceFormatted": "1",
      "balanceUsd": "2.1522",
      "priceUsd": "1.0",
      "pnl": {
        "profitAbsUsd": "152.45",
        "roi": "0.026",
        "inflowUsd": "2400.0",
        "outflowUsd": "150.0",
        "averageBuyPriceUsd": "0.998",
        "averageBuyPricePeriodUsd": "0.999",
        "timerange": "all"
      }
    }
  ],
  "pnl": {
    "timerange": "all",
    "total": {
      "realizedUsd": "152.45",
      "unrealizedUsd": "-23.10",
      "totalUsd": "129.35"
    }
  }
}
{
  "statusCode": 403,
  "id": "UNAVAILABLE_COMPUTE_UNITS",
  "message": "The project doesn't have enough compute units to perform this action. Please upgrade your plan."
}
{
  "statusCode": 500,
  "id": "NFT_METADATA_DECODE_FAILED",
  "message": "An error occurred when trying to decode the metadata for an NFT."
}