Get DeFi positions of a wallet
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"protocol_name": "Uniswap v2",
"protocol_id": "uniswap-v2",
"protocol_url": "https://app.uniswap.org/pools/v2",
"protocol_logo": "https://cdn.moralis.io/defi/uniswap.png",
"position": {
"label": "liquidity",
"tokens": [
{
"token_type": "defi-token",
"name": "Wrapped Ether",
"symbol": "WETH",
"contract_address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"decimals": "18",
"balance": "1000000",
"balance_formatted": "1.000000",
"logo": "https://cdn.moralis.io/tokens/0x0000000000085d4780b73119b644ae5ecd22b376.png",
"thumbnail": "https://cdn.moralis.io/tokens/0x0000000000085d4780b73119b644ae5ecd22b376.png",
"usd_price": "1000000",
"usd_value": "1000000"
}
],
"balance_usd": "1000000",
"total_unclaimed_usd_value": "1000000",
"address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"position_details": {
"fee_tier": 123,
"range_tnd": 123,
"reserves": [
"<string>"
],
"current_price": 123,
"is_in_range": true,
"price_upper": 123,
"price_lower": 123,
"price_label": "<string>",
"liquidity": 123,
"range_start": 123,
"pool_address": "<string>",
"position_key": "<string>",
"nft_metadata": {},
"asset_standard": "<string>",
"apy": 123,
"is_debt": true,
"is_variable_debt": true,
"is_stable_debt": true,
"shares": "<string>",
"reserve0": "<string>",
"reserve1": "<string>",
"factory": "<string>",
"pair": "<string>",
"share_of_pool": 123,
"no_price_available": true,
"shares_in_strategy": "<string>",
"strategy_address": "<string>",
"base_type": "<string>",
"health_factor": 123,
"is_enabled_collateral": true
}
}
}
]Legacy
Wallet Positions
Get a concise overview of a wallet’s DeFi positions across all protocols.
GET
/
wallets
/
{address}
/
defi
/
positions
Get DeFi positions of a wallet
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/wallets/{address}/defi/positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"protocol_name": "Uniswap v2",
"protocol_id": "uniswap-v2",
"protocol_url": "https://app.uniswap.org/pools/v2",
"protocol_logo": "https://cdn.moralis.io/defi/uniswap.png",
"position": {
"label": "liquidity",
"tokens": [
{
"token_type": "defi-token",
"name": "Wrapped Ether",
"symbol": "WETH",
"contract_address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"decimals": "18",
"balance": "1000000",
"balance_formatted": "1.000000",
"logo": "https://cdn.moralis.io/tokens/0x0000000000085d4780b73119b644ae5ecd22b376.png",
"thumbnail": "https://cdn.moralis.io/tokens/0x0000000000085d4780b73119b644ae5ecd22b376.png",
"usd_price": "1000000",
"usd_value": "1000000"
}
],
"balance_usd": "1000000",
"total_unclaimed_usd_value": "1000000",
"address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"position_details": {
"fee_tier": 123,
"range_tnd": 123,
"reserves": [
"<string>"
],
"current_price": 123,
"is_in_range": true,
"price_upper": 123,
"price_lower": 123,
"price_label": "<string>",
"liquidity": 123,
"range_start": 123,
"pool_address": "<string>",
"position_key": "<string>",
"nft_metadata": {},
"asset_standard": "<string>",
"apy": 123,
"is_debt": true,
"is_variable_debt": true,
"is_stable_debt": true,
"shares": "<string>",
"reserve0": "<string>",
"reserve1": "<string>",
"factory": "<string>",
"pair": "<string>",
"share_of_pool": 123,
"no_price_available": true,
"shares_in_strategy": "<string>",
"strategy_address": "<string>",
"base_type": "<string>",
"health_factor": 123,
"is_enabled_collateral": true
}
}
}
]Authorizations
Path Parameters
Wallet address
Example:
"0xd100d8b69c5ae23d6aa30c6c3874bf47539b95fd"
Query Parameters
The chain to query
Available options:
eth, 0x1, sepolia, 0xaa36a7, polygon, 0x89, bsc, 0x38, bsc testnet, 0x61, avalanche, 0xa86a, cronos, 0x19, arbitrum, 0xa4b1, chiliz, 0x15b38, gnosis, 0x64, base, 0x2105, base sepolia, 0x14a34, optimism, 0xa, polygon amoy, 0x13882, linea, 0xe708, moonbeam, 0x504, moonriver, 0x505, flow, 0x2eb, flow-testnet, 0x221, ronin, 0x7e4, ronin-testnet, 0x31769, lisk, 0x46f, pulse, 0x171, sei-testnet, 0x530, sei, 0x531, monad, 0x8f Example:
"eth"
Response
200 - application/json
Returns all defi positions for the wallet address.
The name of the protocol
Example:
"Uniswap v2"
The id of the protocol
Example:
"uniswap-v2"
The url of the protocol
Example:
"https://app.uniswap.org/pools/v2"
The logo of the protocol
Example:
"https://cdn.moralis.io/defi/uniswap.png"
The position of the protocol
Show child attributes
Show child attributes
⌘I

