Skip to main content

Overview

The Monitoring API (https://kapi.cashmere.exchange) serves public data for dashboards, points trackers and transfer monitoring. Every payload uses snake_case keys.

Transactions

Every mainnet transfer made through Cashmere, newest first. /transactions takes the same parameters for testnet, which has no data newer than October 2025.

Fields

A relayer_fee in wei can exceed Number.MAX_SAFE_INTEGER, which JSON.parse rounds. Treat it as approximate, or parse the body with a big-integer JSON parser.

Leaderboard

Entries without a rank return null and come after ranked users.

Users

Two lookups:
  1. GET /users?domains=builder.csm: one profile, with each bound wallet.
  2. GET /users?wallets=0xabc…_evm,So111…_solana: points per wallet, each written as <address>_<chain_type> (evm, solana, sui or aptos).
An unknown profile returns 404 {"error":"user not found"}.

Profile query

sol, apt and sui have the same fields as evm.

Wallet query


Wallet Binding

The Cashmere app binds wallets to a profile with a signed message.

GET /users/messages

The nonce works once: request a new one for every signature.

POST /users/verify

Have the wallet sign this exact text, where each \n is a newline:
To unbind, sign Please sign this message to unbind your wallet from Cashmere:\nProfile: <username>\nnonce: <nonce> instead. Then send:
A successful call returns:

Volumes

Daily rows have date, total_volume_usd, transaction_count, avg_unique_senders, period_type and last_updated.

Fees

  • period: hourly (default), daily, weekly or monthly.
  • limit: the number of buckets, 24 by default and up to 1000.
relayer_fees_usd sums the buckets, and total_fees_usd adds NFT royalty revenue (detailed in nft_revenue). The last entry of fees is that NFT summary and has no date: skip it when charting.

Transaction Count


Chain Shares

Amounts are in USDC base units: divide amount by total_amount for each domain’s share. The list also contains IDs that aren’t CCTP domains, such as 30101, so keep only the domains you chart.

Unique Wallets

GET /stats/mainnet/wallets (mainnet) and GET /stats/wallets (testnet) return distinct sender counts:

Caching & Rate Limits

  • Stats endpoints are cached for 60 seconds, and transaction, leaderboard and user lookups for 5.
  • No rate limits are published and no rate-limit headers are sent. Poll no faster than the cache interval.
Apart from POST /users/verify for wallet binding, these endpoints only read data. Transfers happen on-chain, from the sender’s wallet.