Use when fetching on-chain SUI Move contract source code for analysis, learning from existing protocols, or reverse-engineering deployed contracts. Triggers on decompile, contract source, on-chain code, or protocol analysis tasks.
From sui-dev-agentsnpx claudepluginhub first-mover-tw/sui-dev-agents --plugin sui-dev-agentsThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Fetch and analyze on-chain SUI Move contract source code from block explorers.
This skill fills the "study existing contracts" gap in the development workflow. Before writing your own contracts, study how production protocols work:
sui-decompile → sui-architect → sui-developer → sui-tester → sui-deployer
Study Plan Write Test Deploy
sui client CLI (Fastest, No Browser)For packages with verified source or when you only need the normalized bytecode representation:
# Get package object with module bytecodes
sui client object <package_id> --json
# Get specific module's normalized struct/function definitions
sui client call --package 0x2 --module display --function new --type-args '0x2::coin::Coin<0x2::sui::SUI>' --dry-run
For verified source packages, use the Revela decompiler (if available locally):
# If revela is installed
revela decompile -p <package_id> --network mainnet
Suivision often has official verified source code (via MovebitAudit).
URL pattern:
https://suivision.xyz/package/{package_id}?tab=Code
Playwright MCP workflow:
1. Navigate to https://suivision.xyz/package/{package_id}?tab=Code
2. Wait for code table to load (look for `table tr` elements)
3. If multiple modules: use browser_snapshot to find sidebar module names, then click each one
4. Extract code per module with browser_evaluate:
// Extract source code from Suivision code table
() => {
const rows = document.querySelectorAll('table tr');
const lines = [];
rows.forEach(r => {
const cells = r.querySelectorAll('td');
if (cells.length >= 2) lines.push(cells[1].textContent);
});
return lines.join('\n');
}
// List all module names from sidebar (Suivision uses plain text elements, not role="tab")
() => {
// Suivision renders module names as text items in a sidebar list near the code table
const codeSection = document.querySelector('table')?.closest('div')?.parentElement;
if (!codeSection) return [];
// Find all text-only elements that look like module names (short, no spaces, lowercase)
const candidates = codeSection.querySelectorAll('div, span, li, a');
return Array.from(candidates)
.map(el => el.textContent.trim())
.filter(t => t && /^[a-z_][a-z0-9_]*$/.test(t) && t.length < 30);
}
URL pattern:
https://suiscan.xyz/{network}/object/{package_id}/contracts
Where {network} is mainnet, testnet, or devnet.
Playwright MCP workflow:
1. Navigate to https://suiscan.xyz/mainnet/object/{package_id}/contracts
2. Click "Source" tab (default may show Bytecode)
3. Click module tabs if multiple modules exist
4. Extract code with browser_evaluate:
// Extract source code from Suiscan
() => {
const rows = document.querySelectorAll('table tr');
const lines = [];
rows.forEach(r => {
const cells = r.querySelectorAll('td');
if (cells.length >= 2) lines.push(cells[1].textContent);
});
return lines.join('\n') || 'Source not found - try clicking Source tab';
}
Many real packages (e.g., DeepBook 0xdee9) contain multiple modules:
decompiled/{module_name}.move# Suggested output structure
decompiled/
├── clob_v2.move
├── custodian_v2.move
├── math.move
└── order_query.move
| Protocol | Package ID | Network | Modules |
|---|---|---|---|
| Sui Framework | 0x2 | all | coin, transfer, object, etc. |
| Sui System | 0x3 | all | staking, validator, etc. |
| DeepBook v2 | 0xdee9 | mainnet | clob_v2, custodian_v2 |
| Cetus CLMM | 0x1eabed72c53feb73c00... | mainnet | pool, position, tick |
| Turbos Finance | 0x91bfbc386a41afcfd9b... | mainnet | pool, swap |
1. Decompile Cetus CLMM pool module
2. Analyze: concentrated liquidity math, fee calculation, tick management
3. Use learned patterns in sui-architect to design your own AMM
1. Decompile the package your contract depends on
2. Check for access control, reentrancy, integer overflow
3. Document findings before integrating
1. Decompile Sui Framework (0x2) — coin, transfer, display modules
2. Study official coding patterns: witness, capability, hot potato
3. Apply patterns via sui-developer