What this does
On Sui, a wallet’s standing can be expressed as a capability object it holds. Because the object cannot be transferred, simply holding it is proof the wallet earned its standing, nobody can buy, borrow, or pass it along. Your code requires the capability to run a gated action, and the check happens onchain. This is how TrustGate’s own gated pool works, and you build your own gate the same way.The pieces
A few onchain objects are involved.The capability
A non-transferable object held by wallets that meet the required standing. Holding it is the proof.
The score registry
Where reads live onchain, so standing can be referenced by contracts directly.
How gating works
Require the capability in your function
Write your gated action to take the capability. If the caller does not hold one, the call cannot succeed.
Holding it is the check
Because the object is non-transferable, you do not need to trust anything off-chain. Reaching the body of the function already means the caller earned a valid capability.
Onchain reference
Public testnet identifiers, safe to publish, left blank rather than guessed. Send me the canonical values and I will fill them here and on the Sui network page at once.
Good to know
The gate is enforced onchain, so there is no off-chain trust step you have to wire up. It is non-transferable by design, which is the whole reason holding it means something. And it is on testnet today, so treat standing as a testnet signal. The required bar is set by the trust system and is not a public number, which keeps the gate honest without exposing how it is drawn.Next
Gated Pools product page
The concept, and why reputation makes a good door.
The Sui network page
What is Sui-specific, and the onchain reference.
