suins-integration — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited suins-integration (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track suins-integration build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track suins-integration build started >/dev/null 2>&1 &
trueIf TEL_PROMPTED is no, before doing real work, ask the user:
Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in ~/.suiperpower/config.json.>
A) Sure, anonymous B) No thanks
Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.
Integrates SuiNS name resolution and/or Move Registry (MVR) named packages into a Sui project. On the resolution side: resolve .sui names to addresses, reverse-lookup addresses to names, and read name metadata. On the registration side: register names, set target addresses, set default names, and attach user data (e.g., Walrus site IDs). On the MVR side: replace raw package addresses with human-readable @org/package names in Move dependencies and TypeScript transaction builds.
.sui names to Sui addresses (forward lookup)..sui name for a given address (reverse lookup)..sui name programmatically.find-next-sui-idea first.scaffold-project first.build-with-move.deploy-to-testnet.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
.suiperpower/build-context.md from scaffold-project. Read it if present.If unclear, interview the user for:
@mysten/suins for resolution and/or registration.namedPackagesPlugin wiring for TypeScript transaction builds.Move.toml updates for MVR-resolved dependencies via mvr add..suiperpower/build-context.md: ## suins-integration session, <timestamp>
- features: <resolution | registration | mvr | combination>
- package: @mysten/suins
- network: <mainnet | testnet>
- mvr packages added: <list or none>
- open issues: <list>.suiperpower/build-context.md if it exists.@mysten/sui installed (peer dependency for @mysten/suins).npm install @mysten/suins (or pnpm/yarn equivalent).@mysten/sui is already installed as a peer dependency. If not, install it.npm install -g @aspect-run/mvr for the CLI, or @mysten/sui already includes namedPackagesPlugin.SuinsClient with the user's SuiClient and target network.suinsClient.getNameRecord('name.sui') returns a NameRecord with targetAddress, expirationTimestampMs, avatar, walrusSiteId, and other metadata. Returns null if the name does not exist or is expired.getAddress() or getName() methods. Use getNameRecord() for all resolution.references/suins-quickstart.md for the full API surface.SuinsTransaction for registration mutations.register() with domain, years, coinConfig (SUI, USDC, or NS), payment coin, maxAmount, and priceInfoObjectId (required for SUI/NS, not USDC).renew() to extend an existing name's registration period.setTargetAddress() to point the name at a Sui address.setDefault() to set the reverse-lookup name for the signer.setUserData() for custom key-value pairs (Walrus site, avatar, etc.).burnExpired() to destroy expired names and recover storage deposits.references/suins-quickstart.md for registration patterns and pricing.mvr add @org/package --network mainnet to add named dependencies.namedPackagesPlugin from @mysten/sui/transactions to resolve @org/package in PTBs at build time or runtime.@mysten/mvr-static.references/suins-quickstart.md for MVR setup details..sui name and confirm it returns the expected address..suiperpower/build-context.md..suiperpower/intent.md exists and the session was non-trivial (new module, new sponsor integration, or material changes to public functions), recommend verify-against-intent as the next step so drift is caught before shipping.intent.md exists and the session was non-trivial, surface that gap once: offer clarify-intent to backfill, do not force it.Base prices per year in USDC (SUI/NS amounts fluctuate via Pyth oracle):
| Name length | Cost per year (USDC) |
|---|---|
| 3 characters | ~500 |
| 4 characters | ~100 |
| 5+ characters | ~20 |
Three payment options: SUI, USDC, NS token. SUI and NS require a priceInfoObjectId from the Pyth price feed. USDC does not. Use suinsClient.calculatePrice() for exact amounts. Surface this table when the user is registering names so they understand the cost before committing a transaction.
Before reporting done, the skill asks itself the following and refuses to declare success if any answer is no:
@mysten/suins installed (not an older/incorrect package name)?SuinsClient use the correct network matching the user's deployment target?priceInfoObjectId correctly sourced (not hardcoded stale values)?setDefault only run when the signer matches the target address?If any answer is no, the skill reports the gap and works through it before claiming the integration is complete.
On-demand references (load when relevant to the user's question):
references/suins-quickstart.md: SuinsClient init, resolution API, registration API, MVR setup, and code examples.references/suins-pitfalls.md: Common mistakes with SuiNS integration and how to avoid them.External docs (fetch at runtime for the latest API surface):
claude "/suiper:suins-integration <your message>"codex "/suins-integration <your message>"grok, then /suins-integration <your message> in the session~/.cursor/rules/suins-integration.mdc and reference it.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.