← PRODUCT
PRODUCT · SCREEN

GateDNA: wallet fingerprint

A deterministic wallet fingerprint from public history: age, activity, stablecoin share, counterparties.

GateDNA · wallet profileevm · blockscout
Age
unknown (≥ 0 d, bounded)
Transactions
200 read · 30,422,181 total
Stablecoin share
79%
Counterparties
111
Coverage
BOUNDED
  • First activity date unknown: pages are read newest first
  • 79% of token transfers are stablecoins
Caveat: 200 of 30,422,181 transactions were read, so age and counterparty counts are lower bounds. Observed facts only, no score.

Start free sandboxTalk to us50 screenings a month free, no card.

On this page

GateDNA in simple terms

GateDNA describes one wallet from its public history: how old it is, how busy it is, whether it only ever handled stablecoins, how many other wallets it has dealt with.

It states facts and says how much of the history it managed to read. It never calls a wallet good or bad.

IN EVERYDAY TERMSThink of a used car's history report: first registered three days ago, one owner, 12 km on the clock. Not a verdict, but you would ask a question before buying.

What it does

GateDNA is a deterministic fingerprint of one address from its public history, read through Blockscout REST on EVM chains and TronGrid on Tron. It reports age, first and last seen, in/out counts, token-transfer count and stablecoin share, distinct and top counterparties (your registered wallets labelled), contract interactions, dust share, active days, burstiness, and two flags: newlyCreated and singleUse.

The profile has two main blocks. observed holds the facts. confidence says how much of the history was read: coverage FULL, BOUNDED (the page cap was hit), PARTIAL (a source failed) or NONE, plus caveats in plain language. facts contains observation sentences only.

Why a broker needs it

"Is this wallet brand new, single-use, and has it only ever touched USDT?" is the question a reviewer asks first about a deposit wallet, and public data can answer it without any vendor. A fingerprint that the same inputs always reproduce can be attached to the case and re-derived later.

How it works

GET /api/v1/wallets/profile?chain=…&address=…. The service pages through the address's transfers up to a fixed cap (five pages), computes every figure from the rows it read, labels counterparties that are registered wallets in your tenant, and records which sources answered. The same profile is shown on the wallet in the console.

You can also put GateDNA on the funding path. Switch on "attach a wallet profile note to screenings" in Settings. A screening whose wallet was first seen in the last seven days, or has almost no history, then carries one wallet-dna signal, worded as an observation. Its severity is 20, below every review threshold, so it cannot change a decision by itself. The setting is off by default because a profile costs a few seconds of explorer calls per screening. A timeout or an unavailable explorer produces no signal and never holds a deposit.

What it does not do

A profile is never a risk score and never labels an address good or bad. It does not attribute counterparties to exchanges or services, it stops at the page cap on busy addresses (and says BOUNDED), and it covers EVM chains and Tron only. On the decision path it is informational only. It is emitted at severity 20, and the policy validator refuses any behaviour rule that would act at or below that, so no policy, ours or a tenant's, can turn this observation into a block or a hold.

API

GET /api/v1/wallets/profile?chain=tron&address=T…
{
  "observed":   { "ageDays": 3, "incomingCount": 1, "outgoingCount": 0, "stablecoinShare": 1,
                  "distinctCounterparties": 1, "newlyCreated": true, "singleUse": true, … },
  "confidence": { "coverage": "FULL" | "BOUNDED" | "PARTIAL" | "NONE", "pagesFetched": 1, "pagesCapped": false, "caveats": [ "…" ] },
  "facts":      [ "…" ]     // observation sentences only
}

Full reference: /docs#profile · OpenAPI 3.1

Start free sandboxRead the API docs Talk to us