Skip to content

Treasury reference ​

Shapes and identifiers the Treasury console reads. These are on-chain objects and events from the access_gate package; the console only displays them.

Deployed identifiers (testnet) ​

ThingID
access_gate package0xd7ddaa94b74330979b2b618fc81206d160a264f1c9ca148a77fa2144301388c9
PlatformConfig object0x3f81489df58233d96798f34ad44de325e1b4df7e4d615affe72ca181969ee7b5

Mainnet identifiers are pending. The console takes these from the published @meddleware/access-gate-client deployment record (never from its own configuration); the canonical list is on the on-chain reference pages.

PlatformConfig ​

The shared object holding platform-wide settings.

json
{
  "version": "1",                    // the only package version allowed to act (raised by `migrate`)
  "treasury": "0x…",                 // address that receives commission
  "commission_bps": "20",            // commission in basis points (20 = 0.20%)
  "min_commission_mist": "500000",   // floor on a paid purchase's commission
  "free_gate_fee_mist": "1000000000" // one-off fee for a free (price 0) gate
}

A paid purchase's commission is price × commission_bps / 10000, raised to min_commission_mist and never more than 10% of the price. The console shows the rate as commission_bps / 100 percent; the contract caps commission_bps at 1000 (10%).

Treasury balance ​

The balance is the treasury address's total SUI: coin objects plus its address balance (the gRPC GetBalance balance field, which is coinBalance + addressBalance).

Gate ​

A shared object representing one access class. The console shows a subset of its fields:

json
{
  "nft_name": "My Community Pass",
  "price_mist": "1000000000",   // price in MIST (1 SUI = 1e9 MIST)
  "paused": false,
  "frozen": false
}

AdminCap ​

The owned capability that authorises managing a gate. Gate discovery walks the treasury's AdminCap objects and resolves each gate:

json
{
  "gate_id": "0x…"   // the Gate this cap administers
}

Why capability-based discovery? Full nodes prune old events (including the one-time GateCreatedEvent), so counting gates from events under-reports. Reading treasury → AdminCap objects → Gate always reflects live state.

Events ​

The Activity tab and the counters read these access_gate events:

EventMeaningAddress shown
AccessMintedEventa pass was bought or airdroppedrecipient
AccessConsumedEventa use of a pass was spentconsumer

Events are decoded from their BCS bytes with the Move layouts, accepted only from the deployment's package, and listed newest first. When the operator's read-indexer is configured the console reads from it (display data only) and falls back to the full node.

Developer note

To read the same objects and events from code, use @meddleware/access-gate-client — see the Access Gate integration guide on the developer site.

2026 Meddleware. All jams preserved.