[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aptos-move-check":3,"mdc--bmyxl9-key":29,"related-repo-aptos-move-check":931,"related-org-aptos-move-check":1001},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":20,"topics":24,"repo":25,"sourceUrl":27,"mdContent":28},"move-check","check Move packages for compilation errors","Check a Move package for compilation errors",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aptos","Aptos Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faptos.png","aptos-labs",[13,17],{"name":14,"slug":15,"type":16},"Web3","web3","tag",{"name":18,"slug":19,"type":16},"Debugging","debugging",0,"https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-ai","2026-07-19T06:03:09.843322",null,[],{"repoUrl":21,"stars":20,"forks":20,"topics":26,"description":23},[],"https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-ai\u002Ftree\u002FHEAD\u002Fplugins\u002Fmove-flow\u002Fskills\u002Fmove-check","---\nname: move-check\ndescription: Check a Move package for compilation errors\n---\n\n\n\n\n\n## Move Language\n\nMove on Aptos is a safe, resource-oriented programming language for smart contracts on the\nAptos blockchain. It uses a linear type system to enforce ownership and prevent\ndouble-spending at compile time.\n\n## Move Language Basics\n\n- **Modules** are the unit of code organization, published at an address.\n- **Structs** define data types; abilities (`key`, `store`, `copy`, `drop`) control what\n  operations are permitted.\n- **Entry functions** (`entry fun`) are transaction entry points callable from outside Move.\n- **View functions** (`#[view]`) are read-only queries that do not modify state.\n- **Global storage** stores resources (structs with `key`) at addresses.\n- **Move 2 syntax** (required):\n    - Read resource: `&T[addr]` (not `borrow_global\u003CT>(addr)`)\n    - Mutate resource: `&mut T[addr]` (not `borrow_global_mut\u003CT>(addr)`)\n    - Access field: `T[addr].field` directly (the compiler inserts the ref op)\n    - `acquires` annotations are no longer needed — do not add them.\n- **Error codes**: Use named constants for abort codes (`const E_NOT_FOUND: u64 = 1;`) and\n  document them.\n- **Comments**: Use `\u002F\u002F` for regular comments. `\u002F\u002F\u002F` is a **doc comment** and is only valid\n  directly before a `module`, `struct`, `enum`, `fun`, or `const` declaration.\n- **Edit hook**: The edit hook auto-runs on `.move` files after edits. If it reports\n  compilation errors, fix them before proceeding with further changes.\n\n\n### Links\n\n- [The Move Book](https:\u002F\u002Faptos-labs.github.io\u002Fmove-book\u002F)\n- [Aptos Framework Book](https:\u002F\u002Faptos-labs.github.io\u002Fframework-book\u002F)\n\n\n\n## Move Packages\n\nA Move package is a directory with a `Move.toml` manifest and source files. The manifest defines the package name, dependencies, and named addresses.\n\n### Named Addresses\n\nModules are published at named addresses (e.g., `@my_package`). These must resolve to hex values for compilation.\n\n- **`[addresses]`** — production addresses (may use `_` placeholder for deploy-time assignment)\n- **`[dev-addresses]`** — development\u002Ftest values (used when compiling in dev or test mode)\n\n**Fixing \"Unresolved addresses\" errors:** For each `Named address 'X' in package 'Y'`, add `X = \"0x...\"` to `[dev-addresses]` in that package's `Move.toml`. Use `0x100` and up, avoiding reserved addresses (`0x0`=vm_reserved, `0x1`=std\u002Faptos_std\u002Faptos_framework, `0x3`=aptos_token, `0x4`=aptos_token_objects, `0x5`=aptos_trading, `0x7`=aptos_experimental, `0xA`=aptos_fungible_asset, `0xA550C18`=core_resources):\n\n```toml\n[dev-addresses]\nmy_package = \"0x100\"\nother_addr = \"0x101\"\n```\n\n\n\n## Checking Move Code\n\nUse the `move_package_status` MCP tool to check for compilation errors and warnings.\n\n- Call `move_package_status` with `package_path` set to the package directory.\n- The tool sets error and returns detailed error messages if the package does not compile.\n\nNotice that like with a build system, the tool is idempotent, and does not cause recompilation\nif the compilation result and sources are up-to-date.\n\n\n## Package Manifest\n\nUse the `move_package_manifest` MCP tool to discover source files and dependencies\nof a Move package:\n\n- Call `move_package_manifest` with `package_path` set to the package directory.\n- The result includes `source_paths` (target modules) and `dep_paths` (dependencies).\n\n\n## Querying Package Structure\n\nUse the `move_package_query` MCP tool to inspect the structure of a Move package.\n\nParameters:\n\n- **`package_path`** (required) — path to the Move package directory.\n- **`query`** (required) — one of the query types below.\n- **`function`** (required for `function_usage`) — function name in the form `module_name::function_name`.\n\n### Query Types\n\n- **`dep_graph`** — returns a map from each module to the modules it depends on.\n  Useful for understanding module layering and import structure.\n- **`module_summary`** — returns a summary of each module's constants, structs,\n  and functions. Useful for getting an overview without reading all source files.\n- **`call_graph`** — returns a function-level call graph as a map from each\n  function to the functions it calls.\n- **`function_usage`** — returns direct and transitive calls\u002Fuses for a given\n  function. \"called\" = direct calls; \"used\" = direct calls + closure captures.\n  Requires the `function` parameter.\n\n\n\n## Writing and Editing Move Code\n\n### Edit–Compile Cycle\n\nWhen fixing compilation errors, follow this iterative loop:\n\n1. Call `move_package_status` with the package path.\n2. If the package compiles cleanly, report success and stop.\n3. If there are errors, read the diagnostics carefully, and discuss fixes with the user. Then go back to step 1.\n\n\n\n\n## Task\n\nRun the Edit–Compile Cycle on the current Move package.\n",{"data":30,"body":31},{"name":4,"description":6},{"type":32,"children":33},"root",[34,43,49,55,347,354,379,385,398,404,417,456,568,608,614,627,655,660,666,678,718,724,736,741,801,807,872,878,884,889,914,920,925],{"type":35,"tag":36,"props":37,"children":39},"element","h2",{"id":38},"move-language",[40],{"type":41,"value":42},"text","Move Language",{"type":35,"tag":44,"props":45,"children":46},"p",{},[47],{"type":41,"value":48},"Move on Aptos is a safe, resource-oriented programming language for smart contracts on the\nAptos blockchain. It uses a linear type system to enforce ownership and prevent\ndouble-spending at compile time.",{"type":35,"tag":36,"props":50,"children":52},{"id":51},"move-language-basics",[53],{"type":41,"value":54},"Move Language Basics",{"type":35,"tag":56,"props":57,"children":58},"ul",{},[59,71,112,130,147,164,241,259,329],{"type":35,"tag":60,"props":61,"children":62},"li",{},[63,69],{"type":35,"tag":64,"props":65,"children":66},"strong",{},[67],{"type":41,"value":68},"Modules",{"type":41,"value":70}," are the unit of code organization, published at an address.",{"type":35,"tag":60,"props":72,"children":73},{},[74,79,81,88,90,96,97,103,104,110],{"type":35,"tag":64,"props":75,"children":76},{},[77],{"type":41,"value":78},"Structs",{"type":41,"value":80}," define data types; abilities (",{"type":35,"tag":82,"props":83,"children":85},"code",{"className":84},[],[86],{"type":41,"value":87},"key",{"type":41,"value":89},", ",{"type":35,"tag":82,"props":91,"children":93},{"className":92},[],[94],{"type":41,"value":95},"store",{"type":41,"value":89},{"type":35,"tag":82,"props":98,"children":100},{"className":99},[],[101],{"type":41,"value":102},"copy",{"type":41,"value":89},{"type":35,"tag":82,"props":105,"children":107},{"className":106},[],[108],{"type":41,"value":109},"drop",{"type":41,"value":111},") control what\noperations are permitted.",{"type":35,"tag":60,"props":113,"children":114},{},[115,120,122,128],{"type":35,"tag":64,"props":116,"children":117},{},[118],{"type":41,"value":119},"Entry functions",{"type":41,"value":121}," (",{"type":35,"tag":82,"props":123,"children":125},{"className":124},[],[126],{"type":41,"value":127},"entry fun",{"type":41,"value":129},") are transaction entry points callable from outside Move.",{"type":35,"tag":60,"props":131,"children":132},{},[133,138,139,145],{"type":35,"tag":64,"props":134,"children":135},{},[136],{"type":41,"value":137},"View functions",{"type":41,"value":121},{"type":35,"tag":82,"props":140,"children":142},{"className":141},[],[143],{"type":41,"value":144},"#[view]",{"type":41,"value":146},") are read-only queries that do not modify state.",{"type":35,"tag":60,"props":148,"children":149},{},[150,155,157,162],{"type":35,"tag":64,"props":151,"children":152},{},[153],{"type":41,"value":154},"Global storage",{"type":41,"value":156}," stores resources (structs with ",{"type":35,"tag":82,"props":158,"children":160},{"className":159},[],[161],{"type":41,"value":87},{"type":41,"value":163},") at addresses.",{"type":35,"tag":60,"props":165,"children":166},{},[167,172,174],{"type":35,"tag":64,"props":168,"children":169},{},[170],{"type":41,"value":171},"Move 2 syntax",{"type":41,"value":173}," (required):\n",{"type":35,"tag":56,"props":175,"children":176},{},[177,198,217,230],{"type":35,"tag":60,"props":178,"children":179},{},[180,182,188,190,196],{"type":41,"value":181},"Read resource: ",{"type":35,"tag":82,"props":183,"children":185},{"className":184},[],[186],{"type":41,"value":187},"&T[addr]",{"type":41,"value":189}," (not ",{"type":35,"tag":82,"props":191,"children":193},{"className":192},[],[194],{"type":41,"value":195},"borrow_global\u003CT>(addr)",{"type":41,"value":197},")",{"type":35,"tag":60,"props":199,"children":200},{},[201,203,209,210,216],{"type":41,"value":202},"Mutate resource: ",{"type":35,"tag":82,"props":204,"children":206},{"className":205},[],[207],{"type":41,"value":208},"&mut T[addr]",{"type":41,"value":189},{"type":35,"tag":82,"props":211,"children":213},{"className":212},[],[214],{"type":41,"value":215},"borrow_global_mut\u003CT>(addr)",{"type":41,"value":197},{"type":35,"tag":60,"props":218,"children":219},{},[220,222,228],{"type":41,"value":221},"Access field: ",{"type":35,"tag":82,"props":223,"children":225},{"className":224},[],[226],{"type":41,"value":227},"T[addr].field",{"type":41,"value":229}," directly (the compiler inserts the ref op)",{"type":35,"tag":60,"props":231,"children":232},{},[233,239],{"type":35,"tag":82,"props":234,"children":236},{"className":235},[],[237],{"type":41,"value":238},"acquires",{"type":41,"value":240}," annotations are no longer needed — do not add them.",{"type":35,"tag":60,"props":242,"children":243},{},[244,249,251,257],{"type":35,"tag":64,"props":245,"children":246},{},[247],{"type":41,"value":248},"Error codes",{"type":41,"value":250},": Use named constants for abort codes (",{"type":35,"tag":82,"props":252,"children":254},{"className":253},[],[255],{"type":41,"value":256},"const E_NOT_FOUND: u64 = 1;",{"type":41,"value":258},") and\ndocument them.",{"type":35,"tag":60,"props":260,"children":261},{},[262,267,269,275,277,283,285,290,292,298,299,305,306,312,313,319,321,327],{"type":35,"tag":64,"props":263,"children":264},{},[265],{"type":41,"value":266},"Comments",{"type":41,"value":268},": Use ",{"type":35,"tag":82,"props":270,"children":272},{"className":271},[],[273],{"type":41,"value":274},"\u002F\u002F",{"type":41,"value":276}," for regular comments. ",{"type":35,"tag":82,"props":278,"children":280},{"className":279},[],[281],{"type":41,"value":282},"\u002F\u002F\u002F",{"type":41,"value":284}," is a ",{"type":35,"tag":64,"props":286,"children":287},{},[288],{"type":41,"value":289},"doc comment",{"type":41,"value":291}," and is only valid\ndirectly before a ",{"type":35,"tag":82,"props":293,"children":295},{"className":294},[],[296],{"type":41,"value":297},"module",{"type":41,"value":89},{"type":35,"tag":82,"props":300,"children":302},{"className":301},[],[303],{"type":41,"value":304},"struct",{"type":41,"value":89},{"type":35,"tag":82,"props":307,"children":309},{"className":308},[],[310],{"type":41,"value":311},"enum",{"type":41,"value":89},{"type":35,"tag":82,"props":314,"children":316},{"className":315},[],[317],{"type":41,"value":318},"fun",{"type":41,"value":320},", or ",{"type":35,"tag":82,"props":322,"children":324},{"className":323},[],[325],{"type":41,"value":326},"const",{"type":41,"value":328}," declaration.",{"type":35,"tag":60,"props":330,"children":331},{},[332,337,339,345],{"type":35,"tag":64,"props":333,"children":334},{},[335],{"type":41,"value":336},"Edit hook",{"type":41,"value":338},": The edit hook auto-runs on ",{"type":35,"tag":82,"props":340,"children":342},{"className":341},[],[343],{"type":41,"value":344},".move",{"type":41,"value":346}," files after edits. If it reports\ncompilation errors, fix them before proceeding with further changes.",{"type":35,"tag":348,"props":349,"children":351},"h3",{"id":350},"links",[352],{"type":41,"value":353},"Links",{"type":35,"tag":56,"props":355,"children":356},{},[357,369],{"type":35,"tag":60,"props":358,"children":359},{},[360],{"type":35,"tag":361,"props":362,"children":366},"a",{"href":363,"rel":364},"https:\u002F\u002Faptos-labs.github.io\u002Fmove-book\u002F",[365],"nofollow",[367],{"type":41,"value":368},"The Move Book",{"type":35,"tag":60,"props":370,"children":371},{},[372],{"type":35,"tag":361,"props":373,"children":376},{"href":374,"rel":375},"https:\u002F\u002Faptos-labs.github.io\u002Fframework-book\u002F",[365],[377],{"type":41,"value":378},"Aptos Framework Book",{"type":35,"tag":36,"props":380,"children":382},{"id":381},"move-packages",[383],{"type":41,"value":384},"Move Packages",{"type":35,"tag":44,"props":386,"children":387},{},[388,390,396],{"type":41,"value":389},"A Move package is a directory with a ",{"type":35,"tag":82,"props":391,"children":393},{"className":392},[],[394],{"type":41,"value":395},"Move.toml",{"type":41,"value":397}," manifest and source files. The manifest defines the package name, dependencies, and named addresses.",{"type":35,"tag":348,"props":399,"children":401},{"id":400},"named-addresses",[402],{"type":41,"value":403},"Named Addresses",{"type":35,"tag":44,"props":405,"children":406},{},[407,409,415],{"type":41,"value":408},"Modules are published at named addresses (e.g., ",{"type":35,"tag":82,"props":410,"children":412},{"className":411},[],[413],{"type":41,"value":414},"@my_package",{"type":41,"value":416},"). These must resolve to hex values for compilation.",{"type":35,"tag":56,"props":418,"children":419},{},[420,442],{"type":35,"tag":60,"props":421,"children":422},{},[423,432,434,440],{"type":35,"tag":64,"props":424,"children":425},{},[426],{"type":35,"tag":82,"props":427,"children":429},{"className":428},[],[430],{"type":41,"value":431},"[addresses]",{"type":41,"value":433}," — production addresses (may use ",{"type":35,"tag":82,"props":435,"children":437},{"className":436},[],[438],{"type":41,"value":439},"_",{"type":41,"value":441}," placeholder for deploy-time assignment)",{"type":35,"tag":60,"props":443,"children":444},{},[445,454],{"type":35,"tag":64,"props":446,"children":447},{},[448],{"type":35,"tag":82,"props":449,"children":451},{"className":450},[],[452],{"type":41,"value":453},"[dev-addresses]",{"type":41,"value":455}," — development\u002Ftest values (used when compiling in dev or test mode)",{"type":35,"tag":44,"props":457,"children":458},{},[459,464,466,472,474,480,482,487,489,494,496,502,504,510,512,518,520,526,528,534,536,542,544,550,552,558,560,566],{"type":35,"tag":64,"props":460,"children":461},{},[462],{"type":41,"value":463},"Fixing \"Unresolved addresses\" errors:",{"type":41,"value":465}," For each ",{"type":35,"tag":82,"props":467,"children":469},{"className":468},[],[470],{"type":41,"value":471},"Named address 'X' in package 'Y'",{"type":41,"value":473},", add ",{"type":35,"tag":82,"props":475,"children":477},{"className":476},[],[478],{"type":41,"value":479},"X = \"0x...\"",{"type":41,"value":481}," to ",{"type":35,"tag":82,"props":483,"children":485},{"className":484},[],[486],{"type":41,"value":453},{"type":41,"value":488}," in that package's ",{"type":35,"tag":82,"props":490,"children":492},{"className":491},[],[493],{"type":41,"value":395},{"type":41,"value":495},". Use ",{"type":35,"tag":82,"props":497,"children":499},{"className":498},[],[500],{"type":41,"value":501},"0x100",{"type":41,"value":503}," and up, avoiding reserved addresses (",{"type":35,"tag":82,"props":505,"children":507},{"className":506},[],[508],{"type":41,"value":509},"0x0",{"type":41,"value":511},"=vm_reserved, ",{"type":35,"tag":82,"props":513,"children":515},{"className":514},[],[516],{"type":41,"value":517},"0x1",{"type":41,"value":519},"=std\u002Faptos_std\u002Faptos_framework, ",{"type":35,"tag":82,"props":521,"children":523},{"className":522},[],[524],{"type":41,"value":525},"0x3",{"type":41,"value":527},"=aptos_token, ",{"type":35,"tag":82,"props":529,"children":531},{"className":530},[],[532],{"type":41,"value":533},"0x4",{"type":41,"value":535},"=aptos_token_objects, ",{"type":35,"tag":82,"props":537,"children":539},{"className":538},[],[540],{"type":41,"value":541},"0x5",{"type":41,"value":543},"=aptos_trading, ",{"type":35,"tag":82,"props":545,"children":547},{"className":546},[],[548],{"type":41,"value":549},"0x7",{"type":41,"value":551},"=aptos_experimental, ",{"type":35,"tag":82,"props":553,"children":555},{"className":554},[],[556],{"type":41,"value":557},"0xA",{"type":41,"value":559},"=aptos_fungible_asset, ",{"type":35,"tag":82,"props":561,"children":563},{"className":562},[],[564],{"type":41,"value":565},"0xA550C18",{"type":41,"value":567},"=core_resources):",{"type":35,"tag":569,"props":570,"children":575},"pre",{"className":571,"code":572,"language":573,"meta":574,"style":574},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[dev-addresses]\nmy_package = \"0x100\"\nother_addr = \"0x101\"\n","toml","",[576],{"type":35,"tag":82,"props":577,"children":578},{"__ignoreMap":574},[579,590,599],{"type":35,"tag":580,"props":581,"children":584},"span",{"class":582,"line":583},"line",1,[585],{"type":35,"tag":580,"props":586,"children":587},{},[588],{"type":41,"value":589},"[dev-addresses]\n",{"type":35,"tag":580,"props":591,"children":593},{"class":582,"line":592},2,[594],{"type":35,"tag":580,"props":595,"children":596},{},[597],{"type":41,"value":598},"my_package = \"0x100\"\n",{"type":35,"tag":580,"props":600,"children":602},{"class":582,"line":601},3,[603],{"type":35,"tag":580,"props":604,"children":605},{},[606],{"type":41,"value":607},"other_addr = \"0x101\"\n",{"type":35,"tag":36,"props":609,"children":611},{"id":610},"checking-move-code",[612],{"type":41,"value":613},"Checking Move Code",{"type":35,"tag":44,"props":615,"children":616},{},[617,619,625],{"type":41,"value":618},"Use the ",{"type":35,"tag":82,"props":620,"children":622},{"className":621},[],[623],{"type":41,"value":624},"move_package_status",{"type":41,"value":626}," MCP tool to check for compilation errors and warnings.",{"type":35,"tag":56,"props":628,"children":629},{},[630,650],{"type":35,"tag":60,"props":631,"children":632},{},[633,635,640,642,648],{"type":41,"value":634},"Call ",{"type":35,"tag":82,"props":636,"children":638},{"className":637},[],[639],{"type":41,"value":624},{"type":41,"value":641}," with ",{"type":35,"tag":82,"props":643,"children":645},{"className":644},[],[646],{"type":41,"value":647},"package_path",{"type":41,"value":649}," set to the package directory.",{"type":35,"tag":60,"props":651,"children":652},{},[653],{"type":41,"value":654},"The tool sets error and returns detailed error messages if the package does not compile.",{"type":35,"tag":44,"props":656,"children":657},{},[658],{"type":41,"value":659},"Notice that like with a build system, the tool is idempotent, and does not cause recompilation\nif the compilation result and sources are up-to-date.",{"type":35,"tag":36,"props":661,"children":663},{"id":662},"package-manifest",[664],{"type":41,"value":665},"Package Manifest",{"type":35,"tag":44,"props":667,"children":668},{},[669,670,676],{"type":41,"value":618},{"type":35,"tag":82,"props":671,"children":673},{"className":672},[],[674],{"type":41,"value":675},"move_package_manifest",{"type":41,"value":677}," MCP tool to discover source files and dependencies\nof a Move package:",{"type":35,"tag":56,"props":679,"children":680},{},[681,697],{"type":35,"tag":60,"props":682,"children":683},{},[684,685,690,691,696],{"type":41,"value":634},{"type":35,"tag":82,"props":686,"children":688},{"className":687},[],[689],{"type":41,"value":675},{"type":41,"value":641},{"type":35,"tag":82,"props":692,"children":694},{"className":693},[],[695],{"type":41,"value":647},{"type":41,"value":649},{"type":35,"tag":60,"props":698,"children":699},{},[700,702,708,710,716],{"type":41,"value":701},"The result includes ",{"type":35,"tag":82,"props":703,"children":705},{"className":704},[],[706],{"type":41,"value":707},"source_paths",{"type":41,"value":709}," (target modules) and ",{"type":35,"tag":82,"props":711,"children":713},{"className":712},[],[714],{"type":41,"value":715},"dep_paths",{"type":41,"value":717}," (dependencies).",{"type":35,"tag":36,"props":719,"children":721},{"id":720},"querying-package-structure",[722],{"type":41,"value":723},"Querying Package Structure",{"type":35,"tag":44,"props":725,"children":726},{},[727,728,734],{"type":41,"value":618},{"type":35,"tag":82,"props":729,"children":731},{"className":730},[],[732],{"type":41,"value":733},"move_package_query",{"type":41,"value":735}," MCP tool to inspect the structure of a Move package.",{"type":35,"tag":44,"props":737,"children":738},{},[739],{"type":41,"value":740},"Parameters:",{"type":35,"tag":56,"props":742,"children":743},{},[744,757,771],{"type":35,"tag":60,"props":745,"children":746},{},[747,755],{"type":35,"tag":64,"props":748,"children":749},{},[750],{"type":35,"tag":82,"props":751,"children":753},{"className":752},[],[754],{"type":41,"value":647},{"type":41,"value":756}," (required) — path to the Move package directory.",{"type":35,"tag":60,"props":758,"children":759},{},[760,769],{"type":35,"tag":64,"props":761,"children":762},{},[763],{"type":35,"tag":82,"props":764,"children":766},{"className":765},[],[767],{"type":41,"value":768},"query",{"type":41,"value":770}," (required) — one of the query types below.",{"type":35,"tag":60,"props":772,"children":773},{},[774,783,785,791,793,799],{"type":35,"tag":64,"props":775,"children":776},{},[777],{"type":35,"tag":82,"props":778,"children":780},{"className":779},[],[781],{"type":41,"value":782},"function",{"type":41,"value":784}," (required for ",{"type":35,"tag":82,"props":786,"children":788},{"className":787},[],[789],{"type":41,"value":790},"function_usage",{"type":41,"value":792},") — function name in the form ",{"type":35,"tag":82,"props":794,"children":796},{"className":795},[],[797],{"type":41,"value":798},"module_name::function_name",{"type":41,"value":800},".",{"type":35,"tag":348,"props":802,"children":804},{"id":803},"query-types",[805],{"type":41,"value":806},"Query Types",{"type":35,"tag":56,"props":808,"children":809},{},[810,824,838,852],{"type":35,"tag":60,"props":811,"children":812},{},[813,822],{"type":35,"tag":64,"props":814,"children":815},{},[816],{"type":35,"tag":82,"props":817,"children":819},{"className":818},[],[820],{"type":41,"value":821},"dep_graph",{"type":41,"value":823}," — returns a map from each module to the modules it depends on.\nUseful for understanding module layering and import structure.",{"type":35,"tag":60,"props":825,"children":826},{},[827,836],{"type":35,"tag":64,"props":828,"children":829},{},[830],{"type":35,"tag":82,"props":831,"children":833},{"className":832},[],[834],{"type":41,"value":835},"module_summary",{"type":41,"value":837}," — returns a summary of each module's constants, structs,\nand functions. Useful for getting an overview without reading all source files.",{"type":35,"tag":60,"props":839,"children":840},{},[841,850],{"type":35,"tag":64,"props":842,"children":843},{},[844],{"type":35,"tag":82,"props":845,"children":847},{"className":846},[],[848],{"type":41,"value":849},"call_graph",{"type":41,"value":851}," — returns a function-level call graph as a map from each\nfunction to the functions it calls.",{"type":35,"tag":60,"props":853,"children":854},{},[855,863,865,870],{"type":35,"tag":64,"props":856,"children":857},{},[858],{"type":35,"tag":82,"props":859,"children":861},{"className":860},[],[862],{"type":41,"value":790},{"type":41,"value":864}," — returns direct and transitive calls\u002Fuses for a given\nfunction. \"called\" = direct calls; \"used\" = direct calls + closure captures.\nRequires the ",{"type":35,"tag":82,"props":866,"children":868},{"className":867},[],[869],{"type":41,"value":782},{"type":41,"value":871}," parameter.",{"type":35,"tag":36,"props":873,"children":875},{"id":874},"writing-and-editing-move-code",[876],{"type":41,"value":877},"Writing and Editing Move Code",{"type":35,"tag":348,"props":879,"children":881},{"id":880},"editcompile-cycle",[882],{"type":41,"value":883},"Edit–Compile Cycle",{"type":35,"tag":44,"props":885,"children":886},{},[887],{"type":41,"value":888},"When fixing compilation errors, follow this iterative loop:",{"type":35,"tag":890,"props":891,"children":892},"ol",{},[893,904,909],{"type":35,"tag":60,"props":894,"children":895},{},[896,897,902],{"type":41,"value":634},{"type":35,"tag":82,"props":898,"children":900},{"className":899},[],[901],{"type":41,"value":624},{"type":41,"value":903}," with the package path.",{"type":35,"tag":60,"props":905,"children":906},{},[907],{"type":41,"value":908},"If the package compiles cleanly, report success and stop.",{"type":35,"tag":60,"props":910,"children":911},{},[912],{"type":41,"value":913},"If there are errors, read the diagnostics carefully, and discuss fixes with the user. Then go back to step 1.",{"type":35,"tag":36,"props":915,"children":917},{"id":916},"task",[918],{"type":41,"value":919},"Task",{"type":35,"tag":44,"props":921,"children":922},{},[923],{"type":41,"value":924},"Run the Edit–Compile Cycle on the current Move package.",{"type":35,"tag":926,"props":927,"children":928},"style",{},[929],{"type":41,"value":930},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":932,"total":1000},[933,944,949,960,971,982,991],{"slug":934,"name":934,"fn":935,"description":936,"org":937,"tags":938,"stars":20,"repoUrl":21,"updatedAt":943},"move","develop applications on Aptos","Move development on Aptos",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[939,942],{"name":940,"slug":941,"type":16},"Blockchain","blockchain",{"name":14,"slug":15,"type":16},"2026-07-19T06:03:46.40898",{"slug":4,"name":4,"fn":5,"description":6,"org":945,"tags":946,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[947,948],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":950,"name":950,"fn":951,"description":952,"org":953,"tags":954,"stars":20,"repoUrl":21,"updatedAt":959},"move-inf","infer specifications for Move packages","Infer specifications for a Move package",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[955,958],{"name":956,"slug":957,"type":16},"Data Modeling","data-modeling",{"name":14,"slug":15,"type":16},"2026-07-19T06:03:10.203983",{"slug":961,"name":961,"fn":962,"description":963,"org":964,"tags":965,"stars":20,"repoUrl":21,"updatedAt":970},"move-init","initialize Move workflow routing","Initialize Move workflow routing in the project CLAUDE.md",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[966,969],{"name":967,"slug":968,"type":16},"Configuration","configuration",{"name":14,"slug":15,"type":16},"2026-07-19T06:03:48.382736",{"slug":972,"name":972,"fn":973,"description":974,"org":975,"tags":976,"stars":20,"repoUrl":21,"updatedAt":981},"move-prove","verify Move specifications with Move Prover","Run the Move Prover to formally verify specifications",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[977,980],{"name":978,"slug":979,"type":16},"Testing","testing",{"name":14,"slug":15,"type":16},"2026-07-19T06:03:10.663492",{"slug":983,"name":983,"fn":984,"description":985,"org":986,"tags":987,"stars":20,"repoUrl":21,"updatedAt":990},"move-replay","replay and debug Aptos transactions","Replay a committed on-chain Aptos transaction locally to debug its outcome. Use when investigating a failed or unexpected transaction, reproducing an abort, or testing a local Move patch against a historical transaction.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[988,989],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},"2026-07-19T06:03:11.562048",{"slug":992,"name":992,"fn":993,"description":994,"org":995,"tags":996,"stars":20,"repoUrl":21,"updatedAt":999},"move-test","generate unit tests for Move code","Generate unit tests for Move code. Use for test generation, writing tests, or improving coverage.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[997,998],{"name":978,"slug":979,"type":16},{"name":14,"slug":15,"type":16},"2026-07-19T06:03:11.019744",7,{"items":1002,"total":1164},[1003,1019,1036,1050,1062,1076,1090,1105,1119,1134,1144,1154],{"slug":1004,"name":1004,"fn":1005,"description":1006,"org":1007,"tags":1008,"stars":1016,"repoUrl":1017,"updatedAt":1018},"analyze-gas-optimization","optimize Aptos Move contracts for gas","Analyze and optimize Aptos Move contracts for gas efficiency, identifying expensive operations and suggesting optimizations. Triggers on: 'optimize gas', 'reduce gas costs', 'gas analysis', 'make contract cheaper', 'gas efficiency', 'analyze gas usage', 'reduce transaction costs'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1009,1010,1013],{"name":940,"slug":941,"type":16},{"name":1011,"slug":1012,"type":16},"Performance","performance",{"name":1014,"slug":1015,"type":16},"Smart Contracts","smart-contracts",18,"https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-agent-skills","2026-07-12T08:07:14.117466",{"slug":1020,"name":1020,"fn":1021,"description":1022,"org":1023,"tags":1024,"stars":1016,"repoUrl":1017,"updatedAt":1035},"create-aptos-project","scaffold new Aptos dApp projects","Scaffolds new Aptos projects using npx create-aptos-dapp. Supports fullstack (Vite or Next.js) and contract-only templates with network selection and optional API key. Triggers on: 'build app', 'create app', 'make app', 'new app', 'build dApp', 'create dApp', 'new dApp', 'build project', 'new project', 'create project', 'scaffold', 'start project', 'set up project', 'build me a', 'I want to build', 'make me a', 'help me build'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1025,1028,1031,1034],{"name":1026,"slug":1027,"type":16},"Next.js","next-js",{"name":1029,"slug":1030,"type":16},"TypeScript","typescript",{"name":1032,"slug":1033,"type":16},"Vite","vite",{"name":14,"slug":15,"type":16},"2026-07-12T08:07:30.595111",{"slug":1037,"name":1037,"fn":1038,"description":1039,"org":1040,"tags":1041,"stars":1016,"repoUrl":1017,"updatedAt":1049},"deploy-contracts","deploy Move contracts to Aptos networks","Safely deploys Move contracts to Aptos networks (devnet, testnet, mainnet) with pre-deployment verification. Triggers on: 'deploy contract', 'publish to testnet', 'deploy to mainnet', 'how to deploy', 'publish module', 'deployment checklist', 'deploy to devnet'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1042,1045,1048],{"name":1043,"slug":1044,"type":16},"Deployment","deployment",{"name":1046,"slug":1047,"type":16},"Engineering","engineering",{"name":1014,"slug":1015,"type":16},"2026-07-12T08:07:16.798352",{"slug":1051,"name":1051,"fn":1052,"description":1053,"org":1054,"tags":1055,"stars":1016,"repoUrl":1017,"updatedAt":1061},"generate-tests","generate test suites for Move contracts","Creates comprehensive test suites for Move contracts with 100% coverage requirement. Triggers on: 'generate tests', 'create tests', 'write test suite', 'test this contract', 'how to test', 'add test coverage', 'write unit tests'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1056,1057,1060],{"name":1046,"slug":1047,"type":16},{"name":1058,"slug":1059,"type":16},"QA","qa",{"name":978,"slug":979,"type":16},"2026-07-12T08:07:18.0205",{"slug":1063,"name":1063,"fn":1064,"description":1065,"org":1066,"tags":1067,"stars":1016,"repoUrl":1017,"updatedAt":1075},"modernize-move","modernize Move V1 contracts to V2","Detects and modernizes outdated Move V1 syntax, patterns, and APIs to Move V2+. Use when upgrading legacy contracts, migrating to modern syntax, or converting old patterns to current best practices. NOT for writing new contracts (use write-contracts) or fixing bugs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1068,1071,1072],{"name":1069,"slug":1070,"type":16},"Code Analysis","code-analysis",{"name":1046,"slug":1047,"type":16},{"name":1073,"slug":1074,"type":16},"Migration","migration","2026-07-12T08:07:10.226223",{"slug":1077,"name":1077,"fn":1078,"description":1079,"org":1080,"tags":1081,"stars":1016,"repoUrl":1017,"updatedAt":1089},"search-aptos-examples","search Aptos reference implementations","Searches aptos-core and daily-move for reference implementations before writing contracts. Triggers on: 'search examples', 'find example', 'check aptos-core', 'is there an example', 'reference implementation', 'how does aptos implement', 'similar contract', 'daily-move'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1082,1083,1086],{"name":940,"slug":941,"type":16},{"name":1084,"slug":1085,"type":16},"Documentation","documentation",{"name":1087,"slug":1088,"type":16},"Search","search","2026-07-12T08:07:15.382039",{"slug":1091,"name":1091,"fn":1092,"description":1093,"org":1094,"tags":1095,"stars":1016,"repoUrl":1017,"updatedAt":1104},"security-audit","audit Move smart contracts for security","Audits Move contracts for security vulnerabilities before deployment using 7-category checklist. Triggers on: 'audit contract', 'security check', 'review security', 'check for vulnerabilities', 'security audit', 'is this secure', 'find security issues'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1096,1099,1100,1103],{"name":1097,"slug":1098,"type":16},"Audit","audit",{"name":1069,"slug":1070,"type":16},{"name":1101,"slug":1102,"type":16},"Security","security",{"name":1014,"slug":1015,"type":16},"2026-07-12T08:07:11.680215",{"slug":1106,"name":1106,"fn":1107,"description":1108,"org":1109,"tags":1110,"stars":1016,"repoUrl":1017,"updatedAt":1118},"smoothsend-gasless","sponsor gas fees for Aptos dApps","How to sponsor gas fees for Aptos dApp users using SmoothSend. Paid commercial service: free on testnet, credit-based on mainnet. Covers 3-line wallet adapter integration (transactionSubmitter), Script Composer for fee-in-token stablecoin transfers. Triggers on: 'gasless', 'sponsor gas', 'users pay no APT', 'transactionSubmitter', 'SmoothSend', 'fee payer', 'pay gas for users', 'no gas required'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1111,1114,1117],{"name":1112,"slug":1113,"type":16},"API Development","api-development",{"name":1115,"slug":1116,"type":16},"Payments","payments",{"name":14,"slug":15,"type":16},"2026-07-12T08:07:31.843242",{"slug":1120,"name":1120,"fn":1121,"description":1122,"org":1123,"tags":1124,"stars":1016,"repoUrl":1017,"updatedAt":1133},"ts-sdk-account","manage Aptos accounts with TS SDK","How to create and use Account (signer) in @aptos-labs\u002Fts-sdk. Covers Account.generate(), fromPrivateKey(), fromDerivationPath(), Ed25519 vs SingleKey vs MultiKey vs Keyless, serialization (fromHex\u002FtoHex). Triggers on: 'Account.generate', 'Account.fromPrivateKey', 'Ed25519PrivateKey', 'SDK account', 'mnemonic', 'SingleKeyAccount', 'KeylessAccount'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1125,1128,1129,1132],{"name":1126,"slug":1127,"type":16},"Auth","auth",{"name":940,"slug":941,"type":16},{"name":1130,"slug":1131,"type":16},"SDK","sdk",{"name":1029,"slug":1030,"type":16},"2026-07-12T08:07:29.297415",{"slug":1135,"name":1135,"fn":1136,"description":1137,"org":1138,"tags":1139,"stars":1016,"repoUrl":1017,"updatedAt":1143},"ts-sdk-address","manage AccountAddress in Aptos TypeScript SDK","How to create and use AccountAddress in @aptos-labs\u002Fts-sdk. Covers address format (AIP-40), from\u002FfromString\u002FfromStrict, special addresses, LONG vs SHORT form, and derived addresses (object, resource, token, user-derived). Triggers on: 'AccountAddress', 'AccountAddress.from', 'AIP-40', 'derived address', 'createObjectAddress', 'createResourceAddress', 'createTokenAddress'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1140,1141,1142],{"name":940,"slug":941,"type":16},{"name":1130,"slug":1131,"type":16},{"name":1029,"slug":1030,"type":16},"2026-07-12T08:07:26.430378",{"slug":1145,"name":1145,"fn":1146,"description":1147,"org":1148,"tags":1149,"stars":1016,"repoUrl":1017,"updatedAt":1153},"ts-sdk-client","configure Aptos SDK clients","How to create and configure the Aptos client (Aptos, AptosConfig) in @aptos-labs\u002Fts-sdk. Covers Network, fullnode\u002Findexer\u002Ffaucet URLs, singleton pattern, and Bun compatibility. Triggers on: 'Aptos client', 'AptosConfig', 'SDK client', 'client setup', 'new Aptos(', 'Network.TESTNET', 'Network.MAINNET'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1150,1151,1152],{"name":1112,"slug":1113,"type":16},{"name":1130,"slug":1131,"type":16},{"name":1029,"slug":1030,"type":16},"2026-07-12T08:07:21.933342",{"slug":1155,"name":1155,"fn":1156,"description":1157,"org":1158,"tags":1159,"stars":1016,"repoUrl":1017,"updatedAt":1163},"ts-sdk-transactions","manage Aptos blockchain transactions","How to build, sign, submit, and simulate transactions in @aptos-labs\u002Fts-sdk. Covers build.simple(), signAndSubmitTransaction(), waitForTransaction(), simulate, sponsored (fee payer), and multi-agent. Triggers on: 'build.simple', 'signAndSubmitTransaction', 'transaction.build', 'waitForTransaction', 'signAsFeePayer', 'SDK transaction', 'sponsored transaction', 'multi-agent transaction'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1160,1161,1162],{"name":1112,"slug":1113,"type":16},{"name":1029,"slug":1030,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:07:23.774257",24]