all collections · daily · marketplace overlay
weekly · real (teal) vs wash (rose)
all collections · daily · marketplace overlay
weekly · real (teal) vs wash (rose)
counterparties · funders · clusters
Move packages this wallet published on-chain — what it shipped, not what it used.
This package defines and manages `PackageInfo` objects, which represent information about a software package. Each `PackageInfo` object contains a label, styling information (`Style`), an ID for its associated upgrade capability, the package's address, a `VecMap` for general metadata, and a `Table` for GitHub versioning details (`GithubInfo`). Public functions allow creating new `PackageInfo` objects, setting its label, style, and metadata (both general and GitHub-specific), and adding arbitrary custom metadata using dynamic fields. The `transfer` function allows transferring ownership of a `PackageInfo` object, and getter functions provide access to its ID, package address, and upgrade capability ID. Notably, the `new` function for `PackageInfo` includes a check to ensure the associated package address is not the zero address.
This package manages "AppRecord" objects, which represent applications and their associated metadata. Each AppRecord has an "AppCap" object, acting as an administrative capability for that specific application. The public functions allow for registering new applications, assigning a package to an application (making it immutable), and setting network-specific information for an application. A notable pattern is the use of "Name" objects for identification, which are parsed from strings and validated for length and format. The "DotMove" object, which has an expiration timestamp, is used to gate the registration of new applications, preventing registration if the DotMove object has expired. The package also uses dynamic fields (VecMap) to store network-specific AppInfo and general metadata.
This Sui package implements a decentralized application (dApp) registry and name service. It primarily manages `AppRecord` objects, which store metadata about registered dApps, and `DotMove` objects, representing domain-like names with expiration dates. Public entry functions allow users to register new dApps, assign a package to an existing dApp, and set network-specific IDs for dApps. These operations mutate the `AppRegistry` object, which uses a `Table` to store `AppRecord` objects keyed by `Name`. Notable patterns include time-gating for `DotMove` objects (they have an `expiration_timestamp_ms` and cannot be used if expired), and a form of signature gating where an `AppCap` object is required to modify an `AppRecord`, ensuring only the authorized entity can make changes. The `name` module handles parsing and validating hierarchical names (e.g., "app@org").
This package defines a `DemoNFT` object, which is a basic NFT with a unique ID. The `new_nft` function creates and returns a new `DemoNFT` object, taking a `TxContext` as input to generate the unique ID. There's also a `noop_w_type_param` function that does nothing and takes a generic type parameter, and two witness structs (`DemoWitness` and `NestedDemoWitness`) that are unused. The package does not implement any notable patterns like access control, time-gating, or dynamic fields.
This package defines a single object type, `DemoNFT`, which contains a `UID`. The `new_nft` public function creates and returns a new `DemoNFT` object, taking a `TxContext` as input to generate its `UID`. There is also a `noop_w_type_param` public function that does nothing and takes a generic type parameter. No notable patterns like signature/allowlist gating, time-gating, dynamic fields, admin caps, vault/escrow, or royalties are present.
Wallets that share a funder, were co-funded by the same personal-scale source, or land in the same behavioral cluster. A heuristic, not proof of common control.
casualRule-based labels, conservative precision.
area + brightness = call volume; hover for detail
Where this wallet's SUI first came from, and what it seeded downstream. Observational: a CEX funder suggests a real/retail origin; a high-fanout non-CEX funder is a signal worth noting — not proof of anything.
{
"wallet": "0x2a0af8d4442d09e82b5ef69afb97170f208163047223f9dc33a4b25a22ce91d6",
"n_tx": 36,
"n_successful_tx": 35,
"n_distinct_epochs": 5,
"n_distinct_sponsors": 0,
"first_seen_cp": 33334009,
"last_seen_cp": 72328371,
"first_seen_ts_ms": 1714999555141,
"last_seen_ts_ms": 1729764540693,
"total_gas_spent_mist": 450468048,
"n_self_sponsored_tx": 36,
"n_sponsored_tx": 0,
"gas_price_p50": 750,
"gas_price_p95": 750,
"active_hours_top24": [
14,
12,
13,
15,
10
],
"primary_archetype": "casual",
"labels": [
"casual"
],
"label_confidence": [
0.7
],
"bot_score": 0,
"bot_signals": [],
"cex_label": null
}Tinted amber on the bubble map when they appear in the expanded graph.
Top active hours by UTC. Circadian peak → likely C. Europe / Africa / Middle East.