ssUSD Analytics API
curl --request GET \
--url https://api.stateset.com/v1/stablecoin/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.stateset.com/v1/stablecoin/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.stateset.com/v1/stablecoin/analytics', 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://api.stateset.com/v1/stablecoin/analytics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.stateset.com/v1/stablecoin/analytics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.stateset.com/v1/stablecoin/analytics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stateset.com/v1/stablecoin/analytics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyssUSD Analytics API
Real-time analytics and insights for StateSet USD (ssUSD)
GET
/
v1
/
stablecoin
/
analytics
ssUSD Analytics API
curl --request GET \
--url https://api.stateset.com/v1/stablecoin/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.stateset.com/v1/stablecoin/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.stateset.com/v1/stablecoin/analytics', 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://api.stateset.com/v1/stablecoin/analytics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.stateset.com/v1/stablecoin/analytics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.stateset.com/v1/stablecoin/analytics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stateset.com/v1/stablecoin/analytics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyPremium Feature: Advanced analytics requires a Growth or Enterprise plan. Upgrade →
🎯 Overview
The Analytics API provides real-time and historical data about ssUSD, including:- Supply metrics and growth
- Transaction velocity and patterns
- User adoption and retention
- Cross-chain activity
- Market dynamics and liquidity
📊 Real-Time Metrics
GET /v1/stablecoin/analytics/realtime
Returns current ssUSD metrics updated every second.curl https://api.stateset.com/v1/stablecoin/analytics \
-H "Authorization: Bearer sk_test_..."
const metrics = await stateset.stablecoin.analytics.realtime();
console.log('Current supply:', metrics.total_supply);
console.log('24h volume:', metrics.volume_24h);
metrics = stateset.stablecoin.analytics.realtime()
print(f"Current supply: ${metrics['total_supply']:,.2f}")
print(f"Active wallets: {metrics['active_wallets_24h']:,}")
{
"timestamp": "2024-06-25T12:00:00Z",
"total_supply": 1234567890.50,
"total_supply_formatted": "$1,234,567,890.50",
"circulation": {
"circulating_supply": 1200000000.00,
"locked_supply": 34567890.50,
"burned_supply": 0.00
},
"volume": {
"volume_24h": 89012345.67,
"volume_7d": 623456789.12,
"volume_30d": 2345678901.23,
"avg_transaction_size": 2345.67
},
"velocity": {
"velocity_24h": 0.072,
"velocity_7d": 0.519,
"velocity_30d": 1.954
},
"activity": {
"transactions_24h": 37984,
"active_wallets_24h": 12567,
"new_wallets_24h": 892,
"unique_receivers_24h": 8934
},
"distribution": {
"top_10_concentration": 0.234,
"top_100_concentration": 0.567,
"gini_coefficient": 0.72
},
"chains": {
"stateset": 987654321.00,
"base": 123456789.00,
"solana": 98765432.00,
"cosmos_ibc": 24691358.50
}
}
📈 Historical Data
GET /v1/stablecoin/analytics/historical
Query historical ssUSD metrics with customizable time ranges and granularity. Query Parameters:string
required
Start date in ISO 8601 formatExample:
2024-01-01T00:00:00Zstring
required
End date in ISO 8601 formatExample:
2024-06-25T23:59:59Zstring
default:"daily"
Data point frequencyOptions:
hourly, daily, weekly, monthlyarray
Specific metrics to includeDefault: All available metrics
const historical = await stateset.stablecoin.analytics.historical({
start_date: '2024-01-01',
end_date: '2024-06-25',
granularity: 'daily',
metrics: ['supply', 'volume', 'velocity', 'active_wallets']
});
// Plot supply growth
const supplyChart = historical.data.map(d => ({
date: d.date,
supply: d.metrics.supply
}));
🔍 Transaction Analytics
GET /v1/stablecoin/analytics/transactions
Analyze transaction patterns and behaviors. Query Parameters:string
default:"24h"
Analysis periodOptions:
1h, 24h, 7d, 30d, 90d, 1ystring
Group transactions by categoryOptions:
size, type, chain, hour_of_day, day_of_week{
"period": "24h",
"transaction_count": 37984,
"total_volume": 89012345.67,
"size_distribution": [
{ "range": "$0-100", "count": 12567, "percentage": 33.1 },
{ "range": "$100-1000", "count": 18934, "percentage": 49.8 },
{ "range": "$1000-10000", "count": 5892, "percentage": 15.5 },
{ "range": "$10000+", "count": 591, "percentage": 1.6 }
],
"type_breakdown": {
"transfers": { "count": 25678, "volume": 45678901.23 },
"payments": { "count": 8901, "volume": 23456789.01 },
"defi": { "count": 3405, "volume": 19876655.43 }
},
"peak_hours": [
{ "hour": 14, "timezone": "UTC", "transactions": 2134 },
{ "hour": 15, "timezone": "UTC", "transactions": 2098 },
{ "hour": 16, "timezone": "UTC", "transactions": 1987 }
],
"average_confirmation_time": 0.8,
"failed_transaction_rate": 0.0012
}
👥 User Analytics
GET /v1/stablecoin/analytics/users
Understand user behavior and adoption patterns.const userAnalytics = await stateset.stablecoin.analytics.users({
period: '30d',
cohort_analysis: true
});
// Cohort retention data
console.log('30-day retention:', userAnalytics.cohort_retention.day_30);
{
"total_users": 156789,
"new_users_period": 12567,
"active_users_period": 45678,
"user_segments": {
"retail": { "count": 145678, "percentage": 92.9 },
"institutional": { "count": 8901, "percentage": 5.7 },
"merchant": { "count": 2210, "percentage": 1.4 }
},
"balance_distribution": [
{ "range": "$0-100", "users": 78901, "percentage": 50.3 },
{ "range": "$100-1000", "users": 45678, "percentage": 29.1 },
{ "range": "$1000-10000", "users": 23456, "percentage": 15.0 },
{ "range": "$10000+", "users": 8754, "percentage": 5.6 }
],
"cohort_retention": {
"day_1": 0.85,
"day_7": 0.67,
"day_30": 0.52,
"day_90": 0.41
},
"user_lifetime_value": {
"average": 2345.67,
"median": 567.89,
"top_10_percent": 23456.78
}
}
🌊 Liquidity Analytics
GET /v1/stablecoin/analytics/liquidity
Monitor ssUSD liquidity across venues and chains.const liquidity = await stateset.stablecoin.analytics.liquidity();
// Find best liquidity sources
const bestVenues = liquidity.venues
.sort((a, b) => b.depth_2_percent - a.depth_2_percent)
.slice(0, 5);
{
"total_liquidity": 456789012.34,
"venues": [
{
"name": "Stateset Native",
"chain": "stateset",
"liquidity": 234567890.12,
"depth_2_percent": 12345678.90,
"spread": 0.0001,
"volume_24h": 34567890.12
},
{
"name": "Uniswap V3",
"chain": "base",
"liquidity": 123456789.01,
"depth_2_percent": 6789012.34,
"spread": 0.0003,
"volume_24h": 23456789.01
}
],
"liquidity_score": 94.5,
"market_depth": {
"buy_1m": 0.0002,
"sell_1m": 0.0002,
"buy_10m": 0.0012,
"sell_10m": 0.0013
}
}
📊 Custom Reports
POST /v1/stablecoin/analytics/reports
Generate custom analytics reports with specific parameters.// Create monthly treasury report
const report = await stateset.stablecoin.analytics.createReport({
type: 'treasury_report',
period: {
start: '2024-06-01',
end: '2024-06-30'
},
sections: [
'balance_summary',
'transaction_analysis',
'yield_performance',
'risk_metrics'
],
format: 'pdf',
email_to: 'cfo@company.com'
});
console.log('Report URL:', report.download_url);
🔔 Analytics Webhooks
Subscribe to analytics events and thresholds.# Alert when supply changes significantly
curl -X POST https://api.stateset.com/v1/webhooks \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/analytics",
"events": ["analytics.supply_change"],
"filters": { "change_percentage": 5, "time_window": "1h" }
}'
# Alert on unusual activity
curl -X POST https://api.stateset.com/v1/webhooks \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/activity",
"events": ["analytics.unusual_activity"],
"config": { "volume_spike": 3, "wallet_concentration": 0.7 }
}'
📈 Visualization Examples
Supply Growth Chart
// Fetch data for chart
const supplyData = await stateset.stablecoin.analytics.historical({
start_date: '2024-01-01',
end_date: new Date().toISOString(),
granularity: 'daily',
metrics: ['supply']
});
// Format for Chart.js
const chartData = {
labels: supplyData.data.map(d => d.date),
datasets: [{
label: 'ssUSD Supply',
data: supplyData.data.map(d => d.metrics.supply),
borderColor: 'rgb(75, 192, 192)',
tension: 0.1
}]
};
Transaction Heatmap
// Get hourly transaction data
const heatmapData = await stateset.stablecoin.analytics.transactions({
period: '7d',
breakdown_by: 'hour_and_day'
});
// Format for heatmap visualization
const heatmap = heatmapData.hourly_pattern.map(h => ({
day: h.day_of_week,
hour: h.hour,
value: h.transaction_count,
intensity: h.transaction_count / heatmapData.max_hourly
}));
🎯 Use Cases
Risk Management Dashboard
class RiskDashboard {
async getMetrics() {
const [realtime, liquidity, users] = await Promise.all([
stateset.stablecoin.analytics.realtime(),
stateset.stablecoin.analytics.liquidity(),
stateset.stablecoin.analytics.users({ period: '24h' })
]);
return {
concentration_risk: this.calculateConcentrationRisk(realtime),
liquidity_risk: this.calculateLiquidityRisk(liquidity),
velocity_risk: this.calculateVelocityRisk(realtime),
overall_score: this.calculateOverallRisk(realtime, liquidity, users)
};
}
calculateConcentrationRisk(data) {
const gini = data.distribution.gini_coefficient;
return {
score: (1 - gini) * 100,
level: gini > 0.8 ? 'high' : gini > 0.6 ? 'medium' : 'low',
recommendation: gini > 0.8 ? 'Monitor large holder activities' : 'Healthy distribution'
};
}
}
Market Making Analytics
// Analyze spread and volume for market making
const marketAnalytics = await stateset.stablecoin.analytics.liquidity({
include_orderbook: true,
depth_levels: [100000, 1000000, 10000000]
});
const opportunities = marketAnalytics.venues
.filter(v => v.spread > 0.0005 && v.volume_24h > 1000000)
.map(v => ({
venue: v.name,
potential_profit: v.volume_24h * v.spread * 0.5,
required_capital: v.depth_2_percent * 2
}));
🔗 Related Endpoints
Reserves API
Real-time reserve composition
Transactions API
Detailed transaction data
Attestations
Monthly audit reports
Webhooks
Real-time notifications
Last modified on August 31, 2026