Get wallet labels
curl --request GET \
--url https://demo-api.mobula.io/api/2/wallet/labelsimport requests
url = "https://demo-api.mobula.io/api/2/wallet/labels"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/wallet/labels', 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://demo-api.mobula.io/api/2/wallet/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://demo-api.mobula.io/api/2/wallet/labels"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo-api.mobula.io/api/2/wallet/labels")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/wallet/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"walletAddress": "<string>",
"labels": [
"<string>"
],
"walletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>"
},
"platform": {
"id": "<string>",
"name": "<string>",
"logo": "<string>"
},
"fundingInfo": {
"from": "<string>",
"date": "<string>",
"chainId": "<string>",
"txHash": "<string>",
"formattedAmount": 123,
"currency": {
"name": "<string>",
"symbol": "<string>",
"logo": "<string>",
"decimals": 123,
"address": "<string>"
},
"fromWalletTag": "<string>",
"fromWalletLogo": "<string>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
}
}
]
}Wallet APIs
Get Wallet Labels
Retrieve wallet labels (proTrader, smartTrader, freshTrader, sniper, insider, bundler, etc.) for a given wallet address and token address (optional). GET version with query parameters.
GET
/
2
/
wallet
/
labels
Get wallet labels
curl --request GET \
--url https://demo-api.mobula.io/api/2/wallet/labelsimport requests
url = "https://demo-api.mobula.io/api/2/wallet/labels"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/wallet/labels', 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://demo-api.mobula.io/api/2/wallet/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://demo-api.mobula.io/api/2/wallet/labels"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://demo-api.mobula.io/api/2/wallet/labels")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/wallet/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"walletAddress": "<string>",
"labels": [
"<string>"
],
"walletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>"
},
"platform": {
"id": "<string>",
"name": "<string>",
"logo": "<string>"
},
"fundingInfo": {
"from": "<string>",
"date": "<string>",
"chainId": "<string>",
"txHash": "<string>",
"formattedAmount": 123,
"currency": {
"name": "<string>",
"symbol": "<string>",
"logo": "<string>",
"decimals": 123,
"address": "<string>"
},
"fromWalletTag": "<string>",
"fromWalletLogo": "<string>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
}
}
]
}Query Details
| Name | Required | Description |
|---|---|---|
walletAddresses | No | Comma-separated wallet addresses (max 100) |
tokenAddress | No | Token address, if set, will return token-specific labels |
Usage Examples
- Query by
Wallet Address
curl 'https://api.mobula.io/api/2/wallet/labels?walletAddresses=0x28c6c06298d514db089934071355e5743bf21d60'
- Query by multiple
Wallet Addresses
curl 'https://api.mobula.io/api/2/wallet/labels?walletAddresses=0x28c6c06298d514db089934071355e5743bf21d60,HFtFXatqaDqTsE4e4Cf7E8sRBx9zE7bmFzcHKCyXLzEx'
- Query by
Wallet Address&Token Address
curl 'https://api.mobula.io/api/2/wallet/labels?walletAddresses=0x28c6c06298d514db089934071355e5743bf21d60&tokenAddress=0xdac17f958d2ee523a2206206994597c13d831ec7'
Response Fields
The response includes the following fields for each wallet:| Field | Description |
|---|---|
walletAddress | The wallet address |
labels | Array of labels (proTrader, smartTrader, freshTrader, sniper, insider, bundler, etc.) |
walletMetadata | Entity metadata (name, logo, type, socials) if the wallet belongs to a known entity |
platform | Platform metadata (id, name, logo) if the wallet is linked to a known platform |
fundingInfo | Funding source information for the wallet (see below) |
fundingInfo Object
| Field | Description |
|---|---|
from | Address that initially funded this wallet |
date | Date of the funding transaction |
chainId | Chain where the funding occurred (e.g. evm:8453) |
txHash | Transaction hash of the funding transaction |
formattedAmount | Human-readable amount of native currency received |
currency | Native token details (name, symbol, logo, decimals, address) |
fromWalletTag | Label/entity name of the funding wallet, if known |
fromWalletLogo | Logo of the funding wallet, if known |
fromWalletMetadata | Full entity metadata of the funding wallet (see below), if known |
fromWalletMetadata Object (nullable)
| Field | Description |
|---|---|
entityName | Name of the entity (e.g. “Binance”, “Solana”) |
entityLogo | Logo URL of the entity |
entityLabels | Array of entity labels (e.g. [“CEX”]) |
entityType | Entity type (e.g. “exchange”, “smart-contract-platform”) |
entityDescription | Description of the entity |
entityTwitter | Twitter URL |
entityWebsite | Website URL |
entityGithub | GitHub URL |
entityDiscord | Discord URL |
entityTelegram | Telegram URL |
⌘I