[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aptos-use-ts-sdk":3,"mdc--1dv6vk-key":33,"related-repo-aptos-use-ts-sdk":2985,"related-org-aptos-use-ts-sdk":3089},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":28,"sourceUrl":31,"mdContent":32},"use-ts-sdk","integrate Aptos TypeScript SDK","Orchestrates TypeScript SDK integration for Aptos dApps. Routes to granular skills for specific tasks (client setup, accounts, transactions, view functions, types, wallet adapter). Use this skill for fullstack dApp integration or when multiple SDK concerns are involved. Triggers on: 'typescript sdk', 'ts-sdk', 'aptos sdk', 'SDK setup', 'interact with contract', 'call aptos', 'aptos javascript', 'frontend integration', 'fullstack'.",{"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},"TypeScript","typescript","tag",{"name":18,"slug":19,"type":16},"API Development","api-development",18,"https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-agent-skills","2026-07-12T08:07:19.24481","MIT",8,[26,27],"agent-skills","blockchain",{"repoUrl":21,"stars":20,"forks":24,"topics":29,"description":30},[26,27],"AI skills for building secure, modern Aptos dApps — Move contracts, TypeScript SDK, and frontend integration for Claude Code, Cursor, and Copilot.","https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-agent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fsdk\u002Ftypescript\u002Fuse-ts-sdk","---\nname: use-ts-sdk\ndescription:\n  \"Orchestrates TypeScript SDK integration for Aptos dApps. Routes to granular skills for specific tasks (client setup,\n  accounts, transactions, view functions, types, wallet adapter). Use this skill for fullstack dApp integration or when\n  multiple SDK concerns are involved. Triggers on: 'typescript sdk', 'ts-sdk', 'aptos sdk', 'SDK setup', 'interact with\n  contract', 'call aptos', 'aptos javascript', 'frontend integration', 'fullstack'.\"\nlicense: MIT\nmetadata:\n  author: aptos-labs\n  version: \"1.0\"\n  category: sdk\n  tags: [\"typescript\", \"sdk\", \"frontend\", \"orchestrator\", \"fullstack\"]\n  priority: high\n---\n\n# Use TypeScript SDK (Orchestrator)\n\n## Purpose\n\nOrchestrates `@aptos-labs\u002Fts-sdk` integration for Aptos dApps. For specific tasks, route to the appropriate granular\nskill. For composite tasks (e.g., \"build me a fullstack dApp\"), follow the workflow below.\n\n## Core Rules\n\n1. **ALWAYS use `@aptos-labs\u002Fts-sdk`** (the current official SDK, NOT the deprecated `aptos` package)\n2. **NEVER hardcode private keys** in source code or frontend bundles\n3. **NEVER expose private keys** in client-side code or logs\n4. **NEVER store private keys** in environment variables accessible to the browser (use `VITE_` prefix only for public\n   config)\n5. **ALWAYS load private keys from environment variables** in server-side scripts only, using `process.env`\n\n## Important: Boilerplate Template\n\nIf the project was scaffolded with `npx create-aptos-dapp` (boilerplate template), **wallet adapter and SDK setup are\nalready done.** Before writing new code, check what already exists:\n\n- `frontend\u002Fcomponents\u002FWalletProvider.tsx` — wallet adapter setup with auto-connect\n- `frontend\u002Fconstants.ts` — `NETWORK`, `MODULE_ADDRESS`, `APTOS_API_KEY` from env vars\n- `frontend\u002Fentry-functions\u002F` — existing entry function patterns (follow these for new ones)\n- `frontend\u002Fview-functions\u002F` — existing view function patterns (follow these for new ones)\n\n**Do NOT recreate** wallet provider, client setup, or constants if they already exist. Instead, **follow the existing\npatterns** to add new entry\u002Fview functions for your Move contracts.\n\n## Skill Routing\n\nRoute to the appropriate granular skill based on the task:\n\n| Task                                           | Skill                                                      |\n| ---------------------------------------------- | ---------------------------------------------------------- |\n| Set up Aptos client \u002F configure network        | [ts-sdk-client](..\u002Fts-sdk-client\u002FSKILL.md)                 |\n| Create accounts\u002Fsigners (server-side)          | [ts-sdk-account](..\u002Fts-sdk-account\u002FSKILL.md)               |\n| Parse, format, or derive addresses             | [ts-sdk-address](..\u002Fts-sdk-address\u002FSKILL.md)               |\n| Build, sign, submit, simulate transactions     | [ts-sdk-transactions](..\u002Fts-sdk-transactions\u002FSKILL.md)     |\n| Read on-chain data (view, balances, resources) | [ts-sdk-view-and-query](..\u002Fts-sdk-view-and-query\u002FSKILL.md) |\n| Map Move types to TypeScript types             | [ts-sdk-types](..\u002Fts-sdk-types\u002FSKILL.md)                   |\n| Connect wallet in React frontend               | [ts-sdk-wallet-adapter](..\u002Fts-sdk-wallet-adapter\u002FSKILL.md) |\n\n## Fullstack dApp Workflow\n\nWhen building a complete frontend integration:\n\n1. **Set up client** → read [ts-sdk-client](..\u002Fts-sdk-client\u002FSKILL.md)\n2. **Create view function wrappers** → read [ts-sdk-view-and-query](..\u002Fts-sdk-view-and-query\u002FSKILL.md)\n3. **Create entry function payloads** → read [ts-sdk-transactions](..\u002Fts-sdk-transactions\u002FSKILL.md)\n4. **Wire up wallet connection** → read [ts-sdk-wallet-adapter](..\u002Fts-sdk-wallet-adapter\u002FSKILL.md)\n5. **Handle types correctly** → read [ts-sdk-types](..\u002Fts-sdk-types\u002FSKILL.md) (as needed)\n\n## File Organization Pattern\n\n```\nsrc\u002F\n  lib\u002F\n    aptos.ts                    # Singleton Aptos client + MODULE_ADDRESS\n  view-functions\u002F\n    getCount.ts                 # One file per view function\n    getListing.ts\n  entry-functions\u002F\n    increment.ts                # One file per entry function\n    createListing.ts\n  hooks\u002F\n    useCounter.ts               # React hooks wrapping view functions\n    useListing.ts\n  components\u002F\n    WalletProvider.tsx           # AptosWalletAdapterProvider wrapper\n    IncrementButton.tsx          # Components calling entry functions\n```\n\n## Error Handling Pattern\n\n```typescript\nasync function submitTransaction(\n  aptos: Aptos,\n  signer: Account,\n  payload: InputGenerateTransactionPayloadData\n): Promise\u003Cstring> {\n  try {\n    const transaction = await aptos.transaction.build.simple({\n      sender: signer.accountAddress,\n      data: payload\n    });\n\n    const pendingTx = await aptos.signAndSubmitTransaction({\n      signer,\n      transaction\n    });\n\n    const committed = await aptos.waitForTransaction({\n      transactionHash: pendingTx.hash\n    });\n\n    if (!committed.success) {\n      throw new Error(`Transaction failed: ${committed.vm_status}`);\n    }\n\n    return pendingTx.hash;\n  } catch (error) {\n    if (error instanceof Error) {\n      if (error.message.includes(\"RESOURCE_NOT_FOUND\")) {\n        throw new Error(\"Resource does not exist at the specified address\");\n      }\n      if (error.message.includes(\"MODULE_NOT_FOUND\")) {\n        throw new Error(\"Contract is not deployed at the specified address\");\n      }\n      if (error.message.includes(\"ABORTED\")) {\n        const match = error.message.match(\u002Fcode: (\\d+)\u002F);\n        const code = match ? match[1] : \"unknown\";\n        throw new Error(`Contract error (code ${code})`);\n      }\n    }\n    throw error;\n  }\n}\n```\n\n## Edge Cases\n\n| Scenario                | Check                                            | Action                                       |\n| ----------------------- | ------------------------------------------------ | -------------------------------------------- |\n| Resource not found      | `error.message.includes(\"RESOURCE_NOT_FOUND\")`   | Return default value or null                 |\n| Module not deployed     | `error.message.includes(\"MODULE_NOT_FOUND\")`     | Show \"contract not deployed\" message         |\n| Function not found      | `error.message.includes(\"FUNCTION_NOT_FOUND\")`   | Check function name and module address       |\n| Move abort              | `error.message.includes(\"ABORTED\")`              | Parse abort code, map to user-friendly error |\n| Out of gas              | `error.message.includes(\"OUT_OF_GAS\")`           | Increase `maxGasAmount` and retry            |\n| Sequence number error   | `error.message.includes(\"SEQUENCE_NUMBER\")`      | Retry after fetching fresh sequence number   |\n| Network timeout         | `error.message.includes(\"timeout\")`              | Retry with exponential backoff               |\n| Account does not exist  | `error.message.includes(\"ACCOUNT_NOT_FOUND\")`    | Fund account or prompt user to create one    |\n| Insufficient balance    | `error.message.includes(\"INSUFFICIENT_BALANCE\")` | Show balance and required amount             |\n| User rejected in wallet | Wallet-specific rejection error                  | Show \"transaction cancelled\" message         |\n\n## Anti-patterns\n\n1. **NEVER use the deprecated `aptos` npm package** — use `@aptos-labs\u002Fts-sdk`\n2. **NEVER skip `waitForTransaction`** after submitting — transaction may not be committed yet\n3. **NEVER hardcode module addresses** — use environment variables (`VITE_MODULE_ADDRESS`)\n4. **NEVER create multiple `Aptos` client instances** — create one singleton and share it\n5. **NEVER use `Account.generate()` in frontend code** for real users — use wallet adapter\n6. **NEVER use `scriptComposer`** — removed in v6.0; use separate transactions instead\n7. **NEVER use `getAccountCoinAmount` or `getAccountAPTAmount`** — deprecated; use `getBalance()`\n\n## SDK Version Notes\n\n### AIP-80 Private Key Format (v2.0+)\n\nEd25519 and Secp256k1 private keys now use an AIP-80 prefixed format when serialized with `toString()`:\n\n```typescript\nconst key = new Ed25519PrivateKey(\"0x...\");\nkey.toString(); \u002F\u002F Returns AIP-80 prefixed format, NOT raw hex\n```\n\n### Fungible Asset Transfers (v1.39+)\n\n```typescript\nawait aptos.transferFungibleAssetBetweenStores({\n  sender: account,\n  fungibleAssetMetadataAddress: metadataAddr,\n  senderStoreAddress: fromStore,\n  recipientStoreAddress: toStore,\n  amount: 1000n\n});\n```\n\n### Account Abstraction (v1.34+, AIP-104)\n\n```typescript\n\u002F\u002F Check if AA is enabled for an account\nconst isEnabled = await aptos.abstraction.isAccountAbstractionEnabled({\n  accountAddress: \"0x...\",\n  authenticationFunction: `${MODULE_ADDRESS}::auth::authenticate`\n});\n\n\u002F\u002F Enable AA on an account\nconst enableTxn = await aptos.abstraction.enableAccountAbstractionTransaction({\n  accountAddress: account.accountAddress,\n  authenticationFunction: `${MODULE_ADDRESS}::auth::authenticate`\n});\n\n\u002F\u002F Use AbstractedAccount for signing with custom auth logic\nimport { AbstractedAccount } from \"@aptos-labs\u002Fts-sdk\";\n```\n\n## References\n\n**Pattern Documentation:**\n\n- [TYPESCRIPT_SDK.md](..\u002F..\u002F..\u002F..\u002Fpatterns\u002Ffullstack\u002FTYPESCRIPT_SDK.md) — Complete SDK API reference\n\n**Official Documentation:**\n\n- TypeScript SDK: https:\u002F\u002Faptos.dev\u002Fbuild\u002Fsdks\u002Fts-sdk\n- API Reference: https:\u002F\u002Faptos-labs.github.io\u002Faptos-ts-sdk\u002F\n- Wallet Adapter: https:\u002F\u002Faptos.dev\u002Fbuild\u002Fsdks\u002Fwallet-adapter\u002Fdapp\n- GitHub: https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-ts-sdk\n\n**Granular Skills:**\n\n- [ts-sdk-client](..\u002Fts-sdk-client\u002FSKILL.md) — Client setup and configuration\n- [ts-sdk-account](..\u002Fts-sdk-account\u002FSKILL.md) — Account\u002Fsigner creation\n- [ts-sdk-address](..\u002Fts-sdk-address\u002FSKILL.md) — Address parsing and derivation\n- [ts-sdk-transactions](..\u002Fts-sdk-transactions\u002FSKILL.md) — Build, sign, submit transactions\n- [ts-sdk-view-and-query](..\u002Fts-sdk-view-and-query\u002FSKILL.md) — View functions and queries\n- [ts-sdk-types](..\u002Fts-sdk-types\u002FSKILL.md) — Move-to-TypeScript type mapping\n- [ts-sdk-wallet-adapter](..\u002Fts-sdk-wallet-adapter\u002FSKILL.md) — React wallet integration\n\n**Related Skills:**\n\n- `write-contracts` — Write the Move contracts that this SDK interacts with\n- `deploy-contracts` — Deploy contracts before calling them from TypeScript\n",{"data":34,"body":43},{"name":4,"description":6,"license":23,"metadata":35},{"author":11,"version":36,"category":37,"tags":38,"priority":42},"1.0","sdk",[15,37,39,40,41],"frontend","orchestrator","fullstack","high",{"type":44,"children":45},"root",[46,55,62,77,83,165,171,191,262,279,285,290,438,444,449,520,526,538,544,1763,1769,2020,2026,2163,2169,2176,2188,2280,2286,2443,2449,2788,2794,2802,2816,2824,2872,2880,2946,2954,2979],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"use-typescript-sdk-orchestrator",[52],{"type":53,"value":54},"text","Use TypeScript SDK (Orchestrator)",{"type":47,"tag":56,"props":57,"children":59},"h2",{"id":58},"purpose",[60],{"type":53,"value":61},"Purpose",{"type":47,"tag":63,"props":64,"children":65},"p",{},[66,68,75],{"type":53,"value":67},"Orchestrates ",{"type":47,"tag":69,"props":70,"children":72},"code",{"className":71},[],[73],{"type":53,"value":74},"@aptos-labs\u002Fts-sdk",{"type":53,"value":76}," integration for Aptos dApps. For specific tasks, route to the appropriate granular\nskill. For composite tasks (e.g., \"build me a fullstack dApp\"), follow the workflow below.",{"type":47,"tag":56,"props":78,"children":80},{"id":79},"core-rules",[81],{"type":53,"value":82},"Core Rules",{"type":47,"tag":84,"props":85,"children":86},"ol",{},[87,111,121,131,149],{"type":47,"tag":88,"props":89,"children":90},"li",{},[91,102,104,109],{"type":47,"tag":92,"props":93,"children":94},"strong",{},[95,97],{"type":53,"value":96},"ALWAYS use ",{"type":47,"tag":69,"props":98,"children":100},{"className":99},[],[101],{"type":53,"value":74},{"type":53,"value":103}," (the current official SDK, NOT the deprecated ",{"type":47,"tag":69,"props":105,"children":107},{"className":106},[],[108],{"type":53,"value":8},{"type":53,"value":110}," package)",{"type":47,"tag":88,"props":112,"children":113},{},[114,119],{"type":47,"tag":92,"props":115,"children":116},{},[117],{"type":53,"value":118},"NEVER hardcode private keys",{"type":53,"value":120}," in source code or frontend bundles",{"type":47,"tag":88,"props":122,"children":123},{},[124,129],{"type":47,"tag":92,"props":125,"children":126},{},[127],{"type":53,"value":128},"NEVER expose private keys",{"type":53,"value":130}," in client-side code or logs",{"type":47,"tag":88,"props":132,"children":133},{},[134,139,141,147],{"type":47,"tag":92,"props":135,"children":136},{},[137],{"type":53,"value":138},"NEVER store private keys",{"type":53,"value":140}," in environment variables accessible to the browser (use ",{"type":47,"tag":69,"props":142,"children":144},{"className":143},[],[145],{"type":53,"value":146},"VITE_",{"type":53,"value":148}," prefix only for public\nconfig)",{"type":47,"tag":88,"props":150,"children":151},{},[152,157,159],{"type":47,"tag":92,"props":153,"children":154},{},[155],{"type":53,"value":156},"ALWAYS load private keys from environment variables",{"type":53,"value":158}," in server-side scripts only, using ",{"type":47,"tag":69,"props":160,"children":162},{"className":161},[],[163],{"type":53,"value":164},"process.env",{"type":47,"tag":56,"props":166,"children":168},{"id":167},"important-boilerplate-template",[169],{"type":53,"value":170},"Important: Boilerplate Template",{"type":47,"tag":63,"props":172,"children":173},{},[174,176,182,184,189],{"type":53,"value":175},"If the project was scaffolded with ",{"type":47,"tag":69,"props":177,"children":179},{"className":178},[],[180],{"type":53,"value":181},"npx create-aptos-dapp",{"type":53,"value":183}," (boilerplate template), ",{"type":47,"tag":92,"props":185,"children":186},{},[187],{"type":53,"value":188},"wallet adapter and SDK setup are\nalready done.",{"type":53,"value":190}," Before writing new code, check what already exists:",{"type":47,"tag":192,"props":193,"children":194},"ul",{},[195,206,240,251],{"type":47,"tag":88,"props":196,"children":197},{},[198,204],{"type":47,"tag":69,"props":199,"children":201},{"className":200},[],[202],{"type":53,"value":203},"frontend\u002Fcomponents\u002FWalletProvider.tsx",{"type":53,"value":205}," — wallet adapter setup with auto-connect",{"type":47,"tag":88,"props":207,"children":208},{},[209,215,217,223,225,231,232,238],{"type":47,"tag":69,"props":210,"children":212},{"className":211},[],[213],{"type":53,"value":214},"frontend\u002Fconstants.ts",{"type":53,"value":216}," — ",{"type":47,"tag":69,"props":218,"children":220},{"className":219},[],[221],{"type":53,"value":222},"NETWORK",{"type":53,"value":224},", ",{"type":47,"tag":69,"props":226,"children":228},{"className":227},[],[229],{"type":53,"value":230},"MODULE_ADDRESS",{"type":53,"value":224},{"type":47,"tag":69,"props":233,"children":235},{"className":234},[],[236],{"type":53,"value":237},"APTOS_API_KEY",{"type":53,"value":239}," from env vars",{"type":47,"tag":88,"props":241,"children":242},{},[243,249],{"type":47,"tag":69,"props":244,"children":246},{"className":245},[],[247],{"type":53,"value":248},"frontend\u002Fentry-functions\u002F",{"type":53,"value":250}," — existing entry function patterns (follow these for new ones)",{"type":47,"tag":88,"props":252,"children":253},{},[254,260],{"type":47,"tag":69,"props":255,"children":257},{"className":256},[],[258],{"type":53,"value":259},"frontend\u002Fview-functions\u002F",{"type":53,"value":261}," — existing view function patterns (follow these for new ones)",{"type":47,"tag":63,"props":263,"children":264},{},[265,270,272,277],{"type":47,"tag":92,"props":266,"children":267},{},[268],{"type":53,"value":269},"Do NOT recreate",{"type":53,"value":271}," wallet provider, client setup, or constants if they already exist. Instead, ",{"type":47,"tag":92,"props":273,"children":274},{},[275],{"type":53,"value":276},"follow the existing\npatterns",{"type":53,"value":278}," to add new entry\u002Fview functions for your Move contracts.",{"type":47,"tag":56,"props":280,"children":282},{"id":281},"skill-routing",[283],{"type":53,"value":284},"Skill Routing",{"type":47,"tag":63,"props":286,"children":287},{},[288],{"type":53,"value":289},"Route to the appropriate granular skill based on the task:",{"type":47,"tag":291,"props":292,"children":293},"table",{},[294,313],{"type":47,"tag":295,"props":296,"children":297},"thead",{},[298],{"type":47,"tag":299,"props":300,"children":301},"tr",{},[302,308],{"type":47,"tag":303,"props":304,"children":305},"th",{},[306],{"type":53,"value":307},"Task",{"type":47,"tag":303,"props":309,"children":310},{},[311],{"type":53,"value":312},"Skill",{"type":47,"tag":314,"props":315,"children":316},"tbody",{},[317,336,353,370,387,404,421],{"type":47,"tag":299,"props":318,"children":319},{},[320,326],{"type":47,"tag":321,"props":322,"children":323},"td",{},[324],{"type":53,"value":325},"Set up Aptos client \u002F configure network",{"type":47,"tag":321,"props":327,"children":328},{},[329],{"type":47,"tag":330,"props":331,"children":333},"a",{"href":332},"..\u002Fts-sdk-client\u002FSKILL.md",[334],{"type":53,"value":335},"ts-sdk-client",{"type":47,"tag":299,"props":337,"children":338},{},[339,344],{"type":47,"tag":321,"props":340,"children":341},{},[342],{"type":53,"value":343},"Create accounts\u002Fsigners (server-side)",{"type":47,"tag":321,"props":345,"children":346},{},[347],{"type":47,"tag":330,"props":348,"children":350},{"href":349},"..\u002Fts-sdk-account\u002FSKILL.md",[351],{"type":53,"value":352},"ts-sdk-account",{"type":47,"tag":299,"props":354,"children":355},{},[356,361],{"type":47,"tag":321,"props":357,"children":358},{},[359],{"type":53,"value":360},"Parse, format, or derive addresses",{"type":47,"tag":321,"props":362,"children":363},{},[364],{"type":47,"tag":330,"props":365,"children":367},{"href":366},"..\u002Fts-sdk-address\u002FSKILL.md",[368],{"type":53,"value":369},"ts-sdk-address",{"type":47,"tag":299,"props":371,"children":372},{},[373,378],{"type":47,"tag":321,"props":374,"children":375},{},[376],{"type":53,"value":377},"Build, sign, submit, simulate transactions",{"type":47,"tag":321,"props":379,"children":380},{},[381],{"type":47,"tag":330,"props":382,"children":384},{"href":383},"..\u002Fts-sdk-transactions\u002FSKILL.md",[385],{"type":53,"value":386},"ts-sdk-transactions",{"type":47,"tag":299,"props":388,"children":389},{},[390,395],{"type":47,"tag":321,"props":391,"children":392},{},[393],{"type":53,"value":394},"Read on-chain data (view, balances, resources)",{"type":47,"tag":321,"props":396,"children":397},{},[398],{"type":47,"tag":330,"props":399,"children":401},{"href":400},"..\u002Fts-sdk-view-and-query\u002FSKILL.md",[402],{"type":53,"value":403},"ts-sdk-view-and-query",{"type":47,"tag":299,"props":405,"children":406},{},[407,412],{"type":47,"tag":321,"props":408,"children":409},{},[410],{"type":53,"value":411},"Map Move types to TypeScript types",{"type":47,"tag":321,"props":413,"children":414},{},[415],{"type":47,"tag":330,"props":416,"children":418},{"href":417},"..\u002Fts-sdk-types\u002FSKILL.md",[419],{"type":53,"value":420},"ts-sdk-types",{"type":47,"tag":299,"props":422,"children":423},{},[424,429],{"type":47,"tag":321,"props":425,"children":426},{},[427],{"type":53,"value":428},"Connect wallet in React frontend",{"type":47,"tag":321,"props":430,"children":431},{},[432],{"type":47,"tag":330,"props":433,"children":435},{"href":434},"..\u002Fts-sdk-wallet-adapter\u002FSKILL.md",[436],{"type":53,"value":437},"ts-sdk-wallet-adapter",{"type":47,"tag":56,"props":439,"children":441},{"id":440},"fullstack-dapp-workflow",[442],{"type":53,"value":443},"Fullstack dApp Workflow",{"type":47,"tag":63,"props":445,"children":446},{},[447],{"type":53,"value":448},"When building a complete frontend integration:",{"type":47,"tag":84,"props":450,"children":451},{},[452,466,479,492,505],{"type":47,"tag":88,"props":453,"children":454},{},[455,460,462],{"type":47,"tag":92,"props":456,"children":457},{},[458],{"type":53,"value":459},"Set up client",{"type":53,"value":461}," → read ",{"type":47,"tag":330,"props":463,"children":464},{"href":332},[465],{"type":53,"value":335},{"type":47,"tag":88,"props":467,"children":468},{},[469,474,475],{"type":47,"tag":92,"props":470,"children":471},{},[472],{"type":53,"value":473},"Create view function wrappers",{"type":53,"value":461},{"type":47,"tag":330,"props":476,"children":477},{"href":400},[478],{"type":53,"value":403},{"type":47,"tag":88,"props":480,"children":481},{},[482,487,488],{"type":47,"tag":92,"props":483,"children":484},{},[485],{"type":53,"value":486},"Create entry function payloads",{"type":53,"value":461},{"type":47,"tag":330,"props":489,"children":490},{"href":383},[491],{"type":53,"value":386},{"type":47,"tag":88,"props":493,"children":494},{},[495,500,501],{"type":47,"tag":92,"props":496,"children":497},{},[498],{"type":53,"value":499},"Wire up wallet connection",{"type":53,"value":461},{"type":47,"tag":330,"props":502,"children":503},{"href":434},[504],{"type":53,"value":437},{"type":47,"tag":88,"props":506,"children":507},{},[508,513,514,518],{"type":47,"tag":92,"props":509,"children":510},{},[511],{"type":53,"value":512},"Handle types correctly",{"type":53,"value":461},{"type":47,"tag":330,"props":515,"children":516},{"href":417},[517],{"type":53,"value":420},{"type":53,"value":519}," (as needed)",{"type":47,"tag":56,"props":521,"children":523},{"id":522},"file-organization-pattern",[524],{"type":53,"value":525},"File Organization Pattern",{"type":47,"tag":527,"props":528,"children":532},"pre",{"className":529,"code":531,"language":53},[530],"language-text","src\u002F\n  lib\u002F\n    aptos.ts                    # Singleton Aptos client + MODULE_ADDRESS\n  view-functions\u002F\n    getCount.ts                 # One file per view function\n    getListing.ts\n  entry-functions\u002F\n    increment.ts                # One file per entry function\n    createListing.ts\n  hooks\u002F\n    useCounter.ts               # React hooks wrapping view functions\n    useListing.ts\n  components\u002F\n    WalletProvider.tsx           # AptosWalletAdapterProvider wrapper\n    IncrementButton.tsx          # Components calling entry functions\n",[533],{"type":47,"tag":69,"props":534,"children":536},{"__ignoreMap":535},"",[537],{"type":53,"value":531},{"type":47,"tag":56,"props":539,"children":541},{"id":540},"error-handling-pattern",[542],{"type":53,"value":543},"Error Handling Pattern",{"type":47,"tag":527,"props":545,"children":548},{"className":546,"code":547,"language":15,"meta":535,"style":535},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","async function submitTransaction(\n  aptos: Aptos,\n  signer: Account,\n  payload: InputGenerateTransactionPayloadData\n): Promise\u003Cstring> {\n  try {\n    const transaction = await aptos.transaction.build.simple({\n      sender: signer.accountAddress,\n      data: payload\n    });\n\n    const pendingTx = await aptos.signAndSubmitTransaction({\n      signer,\n      transaction\n    });\n\n    const committed = await aptos.waitForTransaction({\n      transactionHash: pendingTx.hash\n    });\n\n    if (!committed.success) {\n      throw new Error(`Transaction failed: ${committed.vm_status}`);\n    }\n\n    return pendingTx.hash;\n  } catch (error) {\n    if (error instanceof Error) {\n      if (error.message.includes(\"RESOURCE_NOT_FOUND\")) {\n        throw new Error(\"Resource does not exist at the specified address\");\n      }\n      if (error.message.includes(\"MODULE_NOT_FOUND\")) {\n        throw new Error(\"Contract is not deployed at the specified address\");\n      }\n      if (error.message.includes(\"ABORTED\")) {\n        const match = error.message.match(\u002Fcode: (\\d+)\u002F);\n        const code = match ? match[1] : \"unknown\";\n        throw new Error(`Contract error (code ${code})`);\n      }\n    }\n    throw error;\n  }\n}\n",[549],{"type":47,"tag":69,"props":550,"children":551},{"__ignoreMap":535},[552,581,607,629,647,681,695,764,794,812,831,841,883,896,905,921,929,971,996,1012,1020,1062,1127,1136,1144,1170,1201,1234,1296,1338,1347,1404,1445,1453,1510,1586,1654,1712,1720,1728,1745,1754],{"type":47,"tag":553,"props":554,"children":557},"span",{"class":555,"line":556},"line",1,[558,564,569,575],{"type":47,"tag":553,"props":559,"children":561},{"style":560},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[562],{"type":53,"value":563},"async",{"type":47,"tag":553,"props":565,"children":566},{"style":560},[567],{"type":53,"value":568}," function",{"type":47,"tag":553,"props":570,"children":572},{"style":571},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[573],{"type":53,"value":574}," submitTransaction",{"type":47,"tag":553,"props":576,"children":578},{"style":577},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[579],{"type":53,"value":580},"(\n",{"type":47,"tag":553,"props":582,"children":584},{"class":555,"line":583},2,[585,591,596,602],{"type":47,"tag":553,"props":586,"children":588},{"style":587},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[589],{"type":53,"value":590},"  aptos",{"type":47,"tag":553,"props":592,"children":593},{"style":577},[594],{"type":53,"value":595},":",{"type":47,"tag":553,"props":597,"children":599},{"style":598},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[600],{"type":53,"value":601}," Aptos",{"type":47,"tag":553,"props":603,"children":604},{"style":577},[605],{"type":53,"value":606},",\n",{"type":47,"tag":553,"props":608,"children":610},{"class":555,"line":609},3,[611,616,620,625],{"type":47,"tag":553,"props":612,"children":613},{"style":587},[614],{"type":53,"value":615},"  signer",{"type":47,"tag":553,"props":617,"children":618},{"style":577},[619],{"type":53,"value":595},{"type":47,"tag":553,"props":621,"children":622},{"style":598},[623],{"type":53,"value":624}," Account",{"type":47,"tag":553,"props":626,"children":627},{"style":577},[628],{"type":53,"value":606},{"type":47,"tag":553,"props":630,"children":632},{"class":555,"line":631},4,[633,638,642],{"type":47,"tag":553,"props":634,"children":635},{"style":587},[636],{"type":53,"value":637},"  payload",{"type":47,"tag":553,"props":639,"children":640},{"style":577},[641],{"type":53,"value":595},{"type":47,"tag":553,"props":643,"children":644},{"style":598},[645],{"type":53,"value":646}," InputGenerateTransactionPayloadData\n",{"type":47,"tag":553,"props":648,"children":650},{"class":555,"line":649},5,[651,656,661,666,671,676],{"type":47,"tag":553,"props":652,"children":653},{"style":577},[654],{"type":53,"value":655},"):",{"type":47,"tag":553,"props":657,"children":658},{"style":598},[659],{"type":53,"value":660}," Promise",{"type":47,"tag":553,"props":662,"children":663},{"style":577},[664],{"type":53,"value":665},"\u003C",{"type":47,"tag":553,"props":667,"children":668},{"style":598},[669],{"type":53,"value":670},"string",{"type":47,"tag":553,"props":672,"children":673},{"style":577},[674],{"type":53,"value":675},">",{"type":47,"tag":553,"props":677,"children":678},{"style":577},[679],{"type":53,"value":680}," {\n",{"type":47,"tag":553,"props":682,"children":684},{"class":555,"line":683},6,[685,691],{"type":47,"tag":553,"props":686,"children":688},{"style":687},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[689],{"type":53,"value":690},"  try",{"type":47,"tag":553,"props":692,"children":693},{"style":577},[694],{"type":53,"value":680},{"type":47,"tag":553,"props":696,"children":698},{"class":555,"line":697},7,[699,704,710,715,720,725,730,735,739,744,748,753,759],{"type":47,"tag":553,"props":700,"children":701},{"style":560},[702],{"type":53,"value":703},"    const",{"type":47,"tag":553,"props":705,"children":707},{"style":706},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[708],{"type":53,"value":709}," transaction",{"type":47,"tag":553,"props":711,"children":712},{"style":577},[713],{"type":53,"value":714}," =",{"type":47,"tag":553,"props":716,"children":717},{"style":687},[718],{"type":53,"value":719}," await",{"type":47,"tag":553,"props":721,"children":722},{"style":706},[723],{"type":53,"value":724}," aptos",{"type":47,"tag":553,"props":726,"children":727},{"style":577},[728],{"type":53,"value":729},".",{"type":47,"tag":553,"props":731,"children":732},{"style":706},[733],{"type":53,"value":734},"transaction",{"type":47,"tag":553,"props":736,"children":737},{"style":577},[738],{"type":53,"value":729},{"type":47,"tag":553,"props":740,"children":741},{"style":706},[742],{"type":53,"value":743},"build",{"type":47,"tag":553,"props":745,"children":746},{"style":577},[747],{"type":53,"value":729},{"type":47,"tag":553,"props":749,"children":750},{"style":571},[751],{"type":53,"value":752},"simple",{"type":47,"tag":553,"props":754,"children":756},{"style":755},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[757],{"type":53,"value":758},"(",{"type":47,"tag":553,"props":760,"children":761},{"style":577},[762],{"type":53,"value":763},"{\n",{"type":47,"tag":553,"props":765,"children":766},{"class":555,"line":24},[767,772,776,781,785,790],{"type":47,"tag":553,"props":768,"children":769},{"style":755},[770],{"type":53,"value":771},"      sender",{"type":47,"tag":553,"props":773,"children":774},{"style":577},[775],{"type":53,"value":595},{"type":47,"tag":553,"props":777,"children":778},{"style":706},[779],{"type":53,"value":780}," signer",{"type":47,"tag":553,"props":782,"children":783},{"style":577},[784],{"type":53,"value":729},{"type":47,"tag":553,"props":786,"children":787},{"style":706},[788],{"type":53,"value":789},"accountAddress",{"type":47,"tag":553,"props":791,"children":792},{"style":577},[793],{"type":53,"value":606},{"type":47,"tag":553,"props":795,"children":797},{"class":555,"line":796},9,[798,803,807],{"type":47,"tag":553,"props":799,"children":800},{"style":755},[801],{"type":53,"value":802},"      data",{"type":47,"tag":553,"props":804,"children":805},{"style":577},[806],{"type":53,"value":595},{"type":47,"tag":553,"props":808,"children":809},{"style":706},[810],{"type":53,"value":811}," payload\n",{"type":47,"tag":553,"props":813,"children":815},{"class":555,"line":814},10,[816,821,826],{"type":47,"tag":553,"props":817,"children":818},{"style":577},[819],{"type":53,"value":820},"    }",{"type":47,"tag":553,"props":822,"children":823},{"style":755},[824],{"type":53,"value":825},")",{"type":47,"tag":553,"props":827,"children":828},{"style":577},[829],{"type":53,"value":830},";\n",{"type":47,"tag":553,"props":832,"children":834},{"class":555,"line":833},11,[835],{"type":47,"tag":553,"props":836,"children":838},{"emptyLinePlaceholder":837},true,[839],{"type":53,"value":840},"\n",{"type":47,"tag":553,"props":842,"children":844},{"class":555,"line":843},12,[845,849,854,858,862,866,870,875,879],{"type":47,"tag":553,"props":846,"children":847},{"style":560},[848],{"type":53,"value":703},{"type":47,"tag":553,"props":850,"children":851},{"style":706},[852],{"type":53,"value":853}," pendingTx",{"type":47,"tag":553,"props":855,"children":856},{"style":577},[857],{"type":53,"value":714},{"type":47,"tag":553,"props":859,"children":860},{"style":687},[861],{"type":53,"value":719},{"type":47,"tag":553,"props":863,"children":864},{"style":706},[865],{"type":53,"value":724},{"type":47,"tag":553,"props":867,"children":868},{"style":577},[869],{"type":53,"value":729},{"type":47,"tag":553,"props":871,"children":872},{"style":571},[873],{"type":53,"value":874},"signAndSubmitTransaction",{"type":47,"tag":553,"props":876,"children":877},{"style":755},[878],{"type":53,"value":758},{"type":47,"tag":553,"props":880,"children":881},{"style":577},[882],{"type":53,"value":763},{"type":47,"tag":553,"props":884,"children":886},{"class":555,"line":885},13,[887,892],{"type":47,"tag":553,"props":888,"children":889},{"style":706},[890],{"type":53,"value":891},"      signer",{"type":47,"tag":553,"props":893,"children":894},{"style":577},[895],{"type":53,"value":606},{"type":47,"tag":553,"props":897,"children":899},{"class":555,"line":898},14,[900],{"type":47,"tag":553,"props":901,"children":902},{"style":706},[903],{"type":53,"value":904},"      transaction\n",{"type":47,"tag":553,"props":906,"children":908},{"class":555,"line":907},15,[909,913,917],{"type":47,"tag":553,"props":910,"children":911},{"style":577},[912],{"type":53,"value":820},{"type":47,"tag":553,"props":914,"children":915},{"style":755},[916],{"type":53,"value":825},{"type":47,"tag":553,"props":918,"children":919},{"style":577},[920],{"type":53,"value":830},{"type":47,"tag":553,"props":922,"children":924},{"class":555,"line":923},16,[925],{"type":47,"tag":553,"props":926,"children":927},{"emptyLinePlaceholder":837},[928],{"type":53,"value":840},{"type":47,"tag":553,"props":930,"children":932},{"class":555,"line":931},17,[933,937,942,946,950,954,958,963,967],{"type":47,"tag":553,"props":934,"children":935},{"style":560},[936],{"type":53,"value":703},{"type":47,"tag":553,"props":938,"children":939},{"style":706},[940],{"type":53,"value":941}," committed",{"type":47,"tag":553,"props":943,"children":944},{"style":577},[945],{"type":53,"value":714},{"type":47,"tag":553,"props":947,"children":948},{"style":687},[949],{"type":53,"value":719},{"type":47,"tag":553,"props":951,"children":952},{"style":706},[953],{"type":53,"value":724},{"type":47,"tag":553,"props":955,"children":956},{"style":577},[957],{"type":53,"value":729},{"type":47,"tag":553,"props":959,"children":960},{"style":571},[961],{"type":53,"value":962},"waitForTransaction",{"type":47,"tag":553,"props":964,"children":965},{"style":755},[966],{"type":53,"value":758},{"type":47,"tag":553,"props":968,"children":969},{"style":577},[970],{"type":53,"value":763},{"type":47,"tag":553,"props":972,"children":973},{"class":555,"line":20},[974,979,983,987,991],{"type":47,"tag":553,"props":975,"children":976},{"style":755},[977],{"type":53,"value":978},"      transactionHash",{"type":47,"tag":553,"props":980,"children":981},{"style":577},[982],{"type":53,"value":595},{"type":47,"tag":553,"props":984,"children":985},{"style":706},[986],{"type":53,"value":853},{"type":47,"tag":553,"props":988,"children":989},{"style":577},[990],{"type":53,"value":729},{"type":47,"tag":553,"props":992,"children":993},{"style":706},[994],{"type":53,"value":995},"hash\n",{"type":47,"tag":553,"props":997,"children":999},{"class":555,"line":998},19,[1000,1004,1008],{"type":47,"tag":553,"props":1001,"children":1002},{"style":577},[1003],{"type":53,"value":820},{"type":47,"tag":553,"props":1005,"children":1006},{"style":755},[1007],{"type":53,"value":825},{"type":47,"tag":553,"props":1009,"children":1010},{"style":577},[1011],{"type":53,"value":830},{"type":47,"tag":553,"props":1013,"children":1015},{"class":555,"line":1014},20,[1016],{"type":47,"tag":553,"props":1017,"children":1018},{"emptyLinePlaceholder":837},[1019],{"type":53,"value":840},{"type":47,"tag":553,"props":1021,"children":1023},{"class":555,"line":1022},21,[1024,1029,1034,1039,1044,1048,1053,1058],{"type":47,"tag":553,"props":1025,"children":1026},{"style":687},[1027],{"type":53,"value":1028},"    if",{"type":47,"tag":553,"props":1030,"children":1031},{"style":755},[1032],{"type":53,"value":1033}," (",{"type":47,"tag":553,"props":1035,"children":1036},{"style":577},[1037],{"type":53,"value":1038},"!",{"type":47,"tag":553,"props":1040,"children":1041},{"style":706},[1042],{"type":53,"value":1043},"committed",{"type":47,"tag":553,"props":1045,"children":1046},{"style":577},[1047],{"type":53,"value":729},{"type":47,"tag":553,"props":1049,"children":1050},{"style":706},[1051],{"type":53,"value":1052},"success",{"type":47,"tag":553,"props":1054,"children":1055},{"style":755},[1056],{"type":53,"value":1057},") ",{"type":47,"tag":553,"props":1059,"children":1060},{"style":577},[1061],{"type":53,"value":763},{"type":47,"tag":553,"props":1063,"children":1065},{"class":555,"line":1064},22,[1066,1071,1076,1081,1085,1090,1096,1101,1105,1109,1114,1119,1123],{"type":47,"tag":553,"props":1067,"children":1068},{"style":687},[1069],{"type":53,"value":1070},"      throw",{"type":47,"tag":553,"props":1072,"children":1073},{"style":577},[1074],{"type":53,"value":1075}," new",{"type":47,"tag":553,"props":1077,"children":1078},{"style":571},[1079],{"type":53,"value":1080}," Error",{"type":47,"tag":553,"props":1082,"children":1083},{"style":755},[1084],{"type":53,"value":758},{"type":47,"tag":553,"props":1086,"children":1087},{"style":577},[1088],{"type":53,"value":1089},"`",{"type":47,"tag":553,"props":1091,"children":1093},{"style":1092},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1094],{"type":53,"value":1095},"Transaction failed: ",{"type":47,"tag":553,"props":1097,"children":1098},{"style":577},[1099],{"type":53,"value":1100},"${",{"type":47,"tag":553,"props":1102,"children":1103},{"style":706},[1104],{"type":53,"value":1043},{"type":47,"tag":553,"props":1106,"children":1107},{"style":577},[1108],{"type":53,"value":729},{"type":47,"tag":553,"props":1110,"children":1111},{"style":706},[1112],{"type":53,"value":1113},"vm_status",{"type":47,"tag":553,"props":1115,"children":1116},{"style":577},[1117],{"type":53,"value":1118},"}`",{"type":47,"tag":553,"props":1120,"children":1121},{"style":755},[1122],{"type":53,"value":825},{"type":47,"tag":553,"props":1124,"children":1125},{"style":577},[1126],{"type":53,"value":830},{"type":47,"tag":553,"props":1128,"children":1130},{"class":555,"line":1129},23,[1131],{"type":47,"tag":553,"props":1132,"children":1133},{"style":577},[1134],{"type":53,"value":1135},"    }\n",{"type":47,"tag":553,"props":1137,"children":1139},{"class":555,"line":1138},24,[1140],{"type":47,"tag":553,"props":1141,"children":1142},{"emptyLinePlaceholder":837},[1143],{"type":53,"value":840},{"type":47,"tag":553,"props":1145,"children":1147},{"class":555,"line":1146},25,[1148,1153,1157,1161,1166],{"type":47,"tag":553,"props":1149,"children":1150},{"style":687},[1151],{"type":53,"value":1152},"    return",{"type":47,"tag":553,"props":1154,"children":1155},{"style":706},[1156],{"type":53,"value":853},{"type":47,"tag":553,"props":1158,"children":1159},{"style":577},[1160],{"type":53,"value":729},{"type":47,"tag":553,"props":1162,"children":1163},{"style":706},[1164],{"type":53,"value":1165},"hash",{"type":47,"tag":553,"props":1167,"children":1168},{"style":577},[1169],{"type":53,"value":830},{"type":47,"tag":553,"props":1171,"children":1173},{"class":555,"line":1172},26,[1174,1179,1184,1188,1193,1197],{"type":47,"tag":553,"props":1175,"children":1176},{"style":577},[1177],{"type":53,"value":1178},"  }",{"type":47,"tag":553,"props":1180,"children":1181},{"style":687},[1182],{"type":53,"value":1183}," catch",{"type":47,"tag":553,"props":1185,"children":1186},{"style":755},[1187],{"type":53,"value":1033},{"type":47,"tag":553,"props":1189,"children":1190},{"style":706},[1191],{"type":53,"value":1192},"error",{"type":47,"tag":553,"props":1194,"children":1195},{"style":755},[1196],{"type":53,"value":1057},{"type":47,"tag":553,"props":1198,"children":1199},{"style":577},[1200],{"type":53,"value":763},{"type":47,"tag":553,"props":1202,"children":1204},{"class":555,"line":1203},27,[1205,1209,1213,1217,1222,1226,1230],{"type":47,"tag":553,"props":1206,"children":1207},{"style":687},[1208],{"type":53,"value":1028},{"type":47,"tag":553,"props":1210,"children":1211},{"style":755},[1212],{"type":53,"value":1033},{"type":47,"tag":553,"props":1214,"children":1215},{"style":706},[1216],{"type":53,"value":1192},{"type":47,"tag":553,"props":1218,"children":1219},{"style":577},[1220],{"type":53,"value":1221}," instanceof",{"type":47,"tag":553,"props":1223,"children":1224},{"style":598},[1225],{"type":53,"value":1080},{"type":47,"tag":553,"props":1227,"children":1228},{"style":755},[1229],{"type":53,"value":1057},{"type":47,"tag":553,"props":1231,"children":1232},{"style":577},[1233],{"type":53,"value":763},{"type":47,"tag":553,"props":1235,"children":1237},{"class":555,"line":1236},28,[1238,1243,1247,1251,1255,1260,1264,1269,1273,1278,1283,1287,1292],{"type":47,"tag":553,"props":1239,"children":1240},{"style":687},[1241],{"type":53,"value":1242},"      if",{"type":47,"tag":553,"props":1244,"children":1245},{"style":755},[1246],{"type":53,"value":1033},{"type":47,"tag":553,"props":1248,"children":1249},{"style":706},[1250],{"type":53,"value":1192},{"type":47,"tag":553,"props":1252,"children":1253},{"style":577},[1254],{"type":53,"value":729},{"type":47,"tag":553,"props":1256,"children":1257},{"style":706},[1258],{"type":53,"value":1259},"message",{"type":47,"tag":553,"props":1261,"children":1262},{"style":577},[1263],{"type":53,"value":729},{"type":47,"tag":553,"props":1265,"children":1266},{"style":571},[1267],{"type":53,"value":1268},"includes",{"type":47,"tag":553,"props":1270,"children":1271},{"style":755},[1272],{"type":53,"value":758},{"type":47,"tag":553,"props":1274,"children":1275},{"style":577},[1276],{"type":53,"value":1277},"\"",{"type":47,"tag":553,"props":1279,"children":1280},{"style":1092},[1281],{"type":53,"value":1282},"RESOURCE_NOT_FOUND",{"type":47,"tag":553,"props":1284,"children":1285},{"style":577},[1286],{"type":53,"value":1277},{"type":47,"tag":553,"props":1288,"children":1289},{"style":755},[1290],{"type":53,"value":1291},")) ",{"type":47,"tag":553,"props":1293,"children":1294},{"style":577},[1295],{"type":53,"value":763},{"type":47,"tag":553,"props":1297,"children":1299},{"class":555,"line":1298},29,[1300,1305,1309,1313,1317,1321,1326,1330,1334],{"type":47,"tag":553,"props":1301,"children":1302},{"style":687},[1303],{"type":53,"value":1304},"        throw",{"type":47,"tag":553,"props":1306,"children":1307},{"style":577},[1308],{"type":53,"value":1075},{"type":47,"tag":553,"props":1310,"children":1311},{"style":571},[1312],{"type":53,"value":1080},{"type":47,"tag":553,"props":1314,"children":1315},{"style":755},[1316],{"type":53,"value":758},{"type":47,"tag":553,"props":1318,"children":1319},{"style":577},[1320],{"type":53,"value":1277},{"type":47,"tag":553,"props":1322,"children":1323},{"style":1092},[1324],{"type":53,"value":1325},"Resource does not exist at the specified address",{"type":47,"tag":553,"props":1327,"children":1328},{"style":577},[1329],{"type":53,"value":1277},{"type":47,"tag":553,"props":1331,"children":1332},{"style":755},[1333],{"type":53,"value":825},{"type":47,"tag":553,"props":1335,"children":1336},{"style":577},[1337],{"type":53,"value":830},{"type":47,"tag":553,"props":1339,"children":1341},{"class":555,"line":1340},30,[1342],{"type":47,"tag":553,"props":1343,"children":1344},{"style":577},[1345],{"type":53,"value":1346},"      }\n",{"type":47,"tag":553,"props":1348,"children":1350},{"class":555,"line":1349},31,[1351,1355,1359,1363,1367,1371,1375,1379,1383,1387,1392,1396,1400],{"type":47,"tag":553,"props":1352,"children":1353},{"style":687},[1354],{"type":53,"value":1242},{"type":47,"tag":553,"props":1356,"children":1357},{"style":755},[1358],{"type":53,"value":1033},{"type":47,"tag":553,"props":1360,"children":1361},{"style":706},[1362],{"type":53,"value":1192},{"type":47,"tag":553,"props":1364,"children":1365},{"style":577},[1366],{"type":53,"value":729},{"type":47,"tag":553,"props":1368,"children":1369},{"style":706},[1370],{"type":53,"value":1259},{"type":47,"tag":553,"props":1372,"children":1373},{"style":577},[1374],{"type":53,"value":729},{"type":47,"tag":553,"props":1376,"children":1377},{"style":571},[1378],{"type":53,"value":1268},{"type":47,"tag":553,"props":1380,"children":1381},{"style":755},[1382],{"type":53,"value":758},{"type":47,"tag":553,"props":1384,"children":1385},{"style":577},[1386],{"type":53,"value":1277},{"type":47,"tag":553,"props":1388,"children":1389},{"style":1092},[1390],{"type":53,"value":1391},"MODULE_NOT_FOUND",{"type":47,"tag":553,"props":1393,"children":1394},{"style":577},[1395],{"type":53,"value":1277},{"type":47,"tag":553,"props":1397,"children":1398},{"style":755},[1399],{"type":53,"value":1291},{"type":47,"tag":553,"props":1401,"children":1402},{"style":577},[1403],{"type":53,"value":763},{"type":47,"tag":553,"props":1405,"children":1407},{"class":555,"line":1406},32,[1408,1412,1416,1420,1424,1428,1433,1437,1441],{"type":47,"tag":553,"props":1409,"children":1410},{"style":687},[1411],{"type":53,"value":1304},{"type":47,"tag":553,"props":1413,"children":1414},{"style":577},[1415],{"type":53,"value":1075},{"type":47,"tag":553,"props":1417,"children":1418},{"style":571},[1419],{"type":53,"value":1080},{"type":47,"tag":553,"props":1421,"children":1422},{"style":755},[1423],{"type":53,"value":758},{"type":47,"tag":553,"props":1425,"children":1426},{"style":577},[1427],{"type":53,"value":1277},{"type":47,"tag":553,"props":1429,"children":1430},{"style":1092},[1431],{"type":53,"value":1432},"Contract is not deployed at the specified address",{"type":47,"tag":553,"props":1434,"children":1435},{"style":577},[1436],{"type":53,"value":1277},{"type":47,"tag":553,"props":1438,"children":1439},{"style":755},[1440],{"type":53,"value":825},{"type":47,"tag":553,"props":1442,"children":1443},{"style":577},[1444],{"type":53,"value":830},{"type":47,"tag":553,"props":1446,"children":1448},{"class":555,"line":1447},33,[1449],{"type":47,"tag":553,"props":1450,"children":1451},{"style":577},[1452],{"type":53,"value":1346},{"type":47,"tag":553,"props":1454,"children":1456},{"class":555,"line":1455},34,[1457,1461,1465,1469,1473,1477,1481,1485,1489,1493,1498,1502,1506],{"type":47,"tag":553,"props":1458,"children":1459},{"style":687},[1460],{"type":53,"value":1242},{"type":47,"tag":553,"props":1462,"children":1463},{"style":755},[1464],{"type":53,"value":1033},{"type":47,"tag":553,"props":1466,"children":1467},{"style":706},[1468],{"type":53,"value":1192},{"type":47,"tag":553,"props":1470,"children":1471},{"style":577},[1472],{"type":53,"value":729},{"type":47,"tag":553,"props":1474,"children":1475},{"style":706},[1476],{"type":53,"value":1259},{"type":47,"tag":553,"props":1478,"children":1479},{"style":577},[1480],{"type":53,"value":729},{"type":47,"tag":553,"props":1482,"children":1483},{"style":571},[1484],{"type":53,"value":1268},{"type":47,"tag":553,"props":1486,"children":1487},{"style":755},[1488],{"type":53,"value":758},{"type":47,"tag":553,"props":1490,"children":1491},{"style":577},[1492],{"type":53,"value":1277},{"type":47,"tag":553,"props":1494,"children":1495},{"style":1092},[1496],{"type":53,"value":1497},"ABORTED",{"type":47,"tag":553,"props":1499,"children":1500},{"style":577},[1501],{"type":53,"value":1277},{"type":47,"tag":553,"props":1503,"children":1504},{"style":755},[1505],{"type":53,"value":1291},{"type":47,"tag":553,"props":1507,"children":1508},{"style":577},[1509],{"type":53,"value":763},{"type":47,"tag":553,"props":1511,"children":1513},{"class":555,"line":1512},35,[1514,1519,1524,1528,1533,1537,1541,1545,1550,1554,1559,1564,1568,1573,1578,1582],{"type":47,"tag":553,"props":1515,"children":1516},{"style":560},[1517],{"type":53,"value":1518},"        const",{"type":47,"tag":553,"props":1520,"children":1521},{"style":706},[1522],{"type":53,"value":1523}," match",{"type":47,"tag":553,"props":1525,"children":1526},{"style":577},[1527],{"type":53,"value":714},{"type":47,"tag":553,"props":1529,"children":1530},{"style":706},[1531],{"type":53,"value":1532}," error",{"type":47,"tag":553,"props":1534,"children":1535},{"style":577},[1536],{"type":53,"value":729},{"type":47,"tag":553,"props":1538,"children":1539},{"style":706},[1540],{"type":53,"value":1259},{"type":47,"tag":553,"props":1542,"children":1543},{"style":577},[1544],{"type":53,"value":729},{"type":47,"tag":553,"props":1546,"children":1547},{"style":571},[1548],{"type":53,"value":1549},"match",{"type":47,"tag":553,"props":1551,"children":1552},{"style":755},[1553],{"type":53,"value":758},{"type":47,"tag":553,"props":1555,"children":1556},{"style":577},[1557],{"type":53,"value":1558},"\u002F",{"type":47,"tag":553,"props":1560,"children":1561},{"style":1092},[1562],{"type":53,"value":1563},"code: ",{"type":47,"tag":553,"props":1565,"children":1566},{"style":577},[1567],{"type":53,"value":758},{"type":47,"tag":553,"props":1569,"children":1570},{"style":1092},[1571],{"type":53,"value":1572},"\\d",{"type":47,"tag":553,"props":1574,"children":1575},{"style":577},[1576],{"type":53,"value":1577},"+)\u002F",{"type":47,"tag":553,"props":1579,"children":1580},{"style":755},[1581],{"type":53,"value":825},{"type":47,"tag":553,"props":1583,"children":1584},{"style":577},[1585],{"type":53,"value":830},{"type":47,"tag":553,"props":1587,"children":1589},{"class":555,"line":1588},36,[1590,1594,1599,1603,1607,1612,1616,1621,1627,1632,1636,1641,1646,1650],{"type":47,"tag":553,"props":1591,"children":1592},{"style":560},[1593],{"type":53,"value":1518},{"type":47,"tag":553,"props":1595,"children":1596},{"style":706},[1597],{"type":53,"value":1598}," code",{"type":47,"tag":553,"props":1600,"children":1601},{"style":577},[1602],{"type":53,"value":714},{"type":47,"tag":553,"props":1604,"children":1605},{"style":706},[1606],{"type":53,"value":1523},{"type":47,"tag":553,"props":1608,"children":1609},{"style":577},[1610],{"type":53,"value":1611}," ?",{"type":47,"tag":553,"props":1613,"children":1614},{"style":706},[1615],{"type":53,"value":1523},{"type":47,"tag":553,"props":1617,"children":1618},{"style":755},[1619],{"type":53,"value":1620},"[",{"type":47,"tag":553,"props":1622,"children":1624},{"style":1623},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1625],{"type":53,"value":1626},"1",{"type":47,"tag":553,"props":1628,"children":1629},{"style":755},[1630],{"type":53,"value":1631},"] ",{"type":47,"tag":553,"props":1633,"children":1634},{"style":577},[1635],{"type":53,"value":595},{"type":47,"tag":553,"props":1637,"children":1638},{"style":577},[1639],{"type":53,"value":1640}," \"",{"type":47,"tag":553,"props":1642,"children":1643},{"style":1092},[1644],{"type":53,"value":1645},"unknown",{"type":47,"tag":553,"props":1647,"children":1648},{"style":577},[1649],{"type":53,"value":1277},{"type":47,"tag":553,"props":1651,"children":1652},{"style":577},[1653],{"type":53,"value":830},{"type":47,"tag":553,"props":1655,"children":1657},{"class":555,"line":1656},37,[1658,1662,1666,1670,1674,1678,1683,1687,1691,1696,1700,1704,1708],{"type":47,"tag":553,"props":1659,"children":1660},{"style":687},[1661],{"type":53,"value":1304},{"type":47,"tag":553,"props":1663,"children":1664},{"style":577},[1665],{"type":53,"value":1075},{"type":47,"tag":553,"props":1667,"children":1668},{"style":571},[1669],{"type":53,"value":1080},{"type":47,"tag":553,"props":1671,"children":1672},{"style":755},[1673],{"type":53,"value":758},{"type":47,"tag":553,"props":1675,"children":1676},{"style":577},[1677],{"type":53,"value":1089},{"type":47,"tag":553,"props":1679,"children":1680},{"style":1092},[1681],{"type":53,"value":1682},"Contract error (code ",{"type":47,"tag":553,"props":1684,"children":1685},{"style":577},[1686],{"type":53,"value":1100},{"type":47,"tag":553,"props":1688,"children":1689},{"style":706},[1690],{"type":53,"value":69},{"type":47,"tag":553,"props":1692,"children":1693},{"style":577},[1694],{"type":53,"value":1695},"}",{"type":47,"tag":553,"props":1697,"children":1698},{"style":1092},[1699],{"type":53,"value":825},{"type":47,"tag":553,"props":1701,"children":1702},{"style":577},[1703],{"type":53,"value":1089},{"type":47,"tag":553,"props":1705,"children":1706},{"style":755},[1707],{"type":53,"value":825},{"type":47,"tag":553,"props":1709,"children":1710},{"style":577},[1711],{"type":53,"value":830},{"type":47,"tag":553,"props":1713,"children":1715},{"class":555,"line":1714},38,[1716],{"type":47,"tag":553,"props":1717,"children":1718},{"style":577},[1719],{"type":53,"value":1346},{"type":47,"tag":553,"props":1721,"children":1723},{"class":555,"line":1722},39,[1724],{"type":47,"tag":553,"props":1725,"children":1726},{"style":577},[1727],{"type":53,"value":1135},{"type":47,"tag":553,"props":1729,"children":1731},{"class":555,"line":1730},40,[1732,1737,1741],{"type":47,"tag":553,"props":1733,"children":1734},{"style":687},[1735],{"type":53,"value":1736},"    throw",{"type":47,"tag":553,"props":1738,"children":1739},{"style":706},[1740],{"type":53,"value":1532},{"type":47,"tag":553,"props":1742,"children":1743},{"style":577},[1744],{"type":53,"value":830},{"type":47,"tag":553,"props":1746,"children":1748},{"class":555,"line":1747},41,[1749],{"type":47,"tag":553,"props":1750,"children":1751},{"style":577},[1752],{"type":53,"value":1753},"  }\n",{"type":47,"tag":553,"props":1755,"children":1757},{"class":555,"line":1756},42,[1758],{"type":47,"tag":553,"props":1759,"children":1760},{"style":577},[1761],{"type":53,"value":1762},"}\n",{"type":47,"tag":56,"props":1764,"children":1766},{"id":1765},"edge-cases",[1767],{"type":53,"value":1768},"Edge Cases",{"type":47,"tag":291,"props":1770,"children":1771},{},[1772,1793],{"type":47,"tag":295,"props":1773,"children":1774},{},[1775],{"type":47,"tag":299,"props":1776,"children":1777},{},[1778,1783,1788],{"type":47,"tag":303,"props":1779,"children":1780},{},[1781],{"type":53,"value":1782},"Scenario",{"type":47,"tag":303,"props":1784,"children":1785},{},[1786],{"type":53,"value":1787},"Check",{"type":47,"tag":303,"props":1789,"children":1790},{},[1791],{"type":53,"value":1792},"Action",{"type":47,"tag":314,"props":1794,"children":1795},{},[1796,1818,1840,1862,1884,1914,1936,1958,1980,2002],{"type":47,"tag":299,"props":1797,"children":1798},{},[1799,1804,1813],{"type":47,"tag":321,"props":1800,"children":1801},{},[1802],{"type":53,"value":1803},"Resource not found",{"type":47,"tag":321,"props":1805,"children":1806},{},[1807],{"type":47,"tag":69,"props":1808,"children":1810},{"className":1809},[],[1811],{"type":53,"value":1812},"error.message.includes(\"RESOURCE_NOT_FOUND\")",{"type":47,"tag":321,"props":1814,"children":1815},{},[1816],{"type":53,"value":1817},"Return default value or null",{"type":47,"tag":299,"props":1819,"children":1820},{},[1821,1826,1835],{"type":47,"tag":321,"props":1822,"children":1823},{},[1824],{"type":53,"value":1825},"Module not deployed",{"type":47,"tag":321,"props":1827,"children":1828},{},[1829],{"type":47,"tag":69,"props":1830,"children":1832},{"className":1831},[],[1833],{"type":53,"value":1834},"error.message.includes(\"MODULE_NOT_FOUND\")",{"type":47,"tag":321,"props":1836,"children":1837},{},[1838],{"type":53,"value":1839},"Show \"contract not deployed\" message",{"type":47,"tag":299,"props":1841,"children":1842},{},[1843,1848,1857],{"type":47,"tag":321,"props":1844,"children":1845},{},[1846],{"type":53,"value":1847},"Function not found",{"type":47,"tag":321,"props":1849,"children":1850},{},[1851],{"type":47,"tag":69,"props":1852,"children":1854},{"className":1853},[],[1855],{"type":53,"value":1856},"error.message.includes(\"FUNCTION_NOT_FOUND\")",{"type":47,"tag":321,"props":1858,"children":1859},{},[1860],{"type":53,"value":1861},"Check function name and module address",{"type":47,"tag":299,"props":1863,"children":1864},{},[1865,1870,1879],{"type":47,"tag":321,"props":1866,"children":1867},{},[1868],{"type":53,"value":1869},"Move abort",{"type":47,"tag":321,"props":1871,"children":1872},{},[1873],{"type":47,"tag":69,"props":1874,"children":1876},{"className":1875},[],[1877],{"type":53,"value":1878},"error.message.includes(\"ABORTED\")",{"type":47,"tag":321,"props":1880,"children":1881},{},[1882],{"type":53,"value":1883},"Parse abort code, map to user-friendly error",{"type":47,"tag":299,"props":1885,"children":1886},{},[1887,1892,1901],{"type":47,"tag":321,"props":1888,"children":1889},{},[1890],{"type":53,"value":1891},"Out of gas",{"type":47,"tag":321,"props":1893,"children":1894},{},[1895],{"type":47,"tag":69,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":53,"value":1900},"error.message.includes(\"OUT_OF_GAS\")",{"type":47,"tag":321,"props":1902,"children":1903},{},[1904,1906,1912],{"type":53,"value":1905},"Increase ",{"type":47,"tag":69,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":53,"value":1911},"maxGasAmount",{"type":53,"value":1913}," and retry",{"type":47,"tag":299,"props":1915,"children":1916},{},[1917,1922,1931],{"type":47,"tag":321,"props":1918,"children":1919},{},[1920],{"type":53,"value":1921},"Sequence number error",{"type":47,"tag":321,"props":1923,"children":1924},{},[1925],{"type":47,"tag":69,"props":1926,"children":1928},{"className":1927},[],[1929],{"type":53,"value":1930},"error.message.includes(\"SEQUENCE_NUMBER\")",{"type":47,"tag":321,"props":1932,"children":1933},{},[1934],{"type":53,"value":1935},"Retry after fetching fresh sequence number",{"type":47,"tag":299,"props":1937,"children":1938},{},[1939,1944,1953],{"type":47,"tag":321,"props":1940,"children":1941},{},[1942],{"type":53,"value":1943},"Network timeout",{"type":47,"tag":321,"props":1945,"children":1946},{},[1947],{"type":47,"tag":69,"props":1948,"children":1950},{"className":1949},[],[1951],{"type":53,"value":1952},"error.message.includes(\"timeout\")",{"type":47,"tag":321,"props":1954,"children":1955},{},[1956],{"type":53,"value":1957},"Retry with exponential backoff",{"type":47,"tag":299,"props":1959,"children":1960},{},[1961,1966,1975],{"type":47,"tag":321,"props":1962,"children":1963},{},[1964],{"type":53,"value":1965},"Account does not exist",{"type":47,"tag":321,"props":1967,"children":1968},{},[1969],{"type":47,"tag":69,"props":1970,"children":1972},{"className":1971},[],[1973],{"type":53,"value":1974},"error.message.includes(\"ACCOUNT_NOT_FOUND\")",{"type":47,"tag":321,"props":1976,"children":1977},{},[1978],{"type":53,"value":1979},"Fund account or prompt user to create one",{"type":47,"tag":299,"props":1981,"children":1982},{},[1983,1988,1997],{"type":47,"tag":321,"props":1984,"children":1985},{},[1986],{"type":53,"value":1987},"Insufficient balance",{"type":47,"tag":321,"props":1989,"children":1990},{},[1991],{"type":47,"tag":69,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":53,"value":1996},"error.message.includes(\"INSUFFICIENT_BALANCE\")",{"type":47,"tag":321,"props":1998,"children":1999},{},[2000],{"type":53,"value":2001},"Show balance and required amount",{"type":47,"tag":299,"props":2003,"children":2004},{},[2005,2010,2015],{"type":47,"tag":321,"props":2006,"children":2007},{},[2008],{"type":53,"value":2009},"User rejected in wallet",{"type":47,"tag":321,"props":2011,"children":2012},{},[2013],{"type":53,"value":2014},"Wallet-specific rejection error",{"type":47,"tag":321,"props":2016,"children":2017},{},[2018],{"type":53,"value":2019},"Show \"transaction cancelled\" message",{"type":47,"tag":56,"props":2021,"children":2023},{"id":2022},"anti-patterns",[2024],{"type":53,"value":2025},"Anti-patterns",{"type":47,"tag":84,"props":2027,"children":2028},{},[2029,2051,2066,2083,2101,2119,2134],{"type":47,"tag":88,"props":2030,"children":2031},{},[2032,2044,2046],{"type":47,"tag":92,"props":2033,"children":2034},{},[2035,2037,2042],{"type":53,"value":2036},"NEVER use the deprecated ",{"type":47,"tag":69,"props":2038,"children":2040},{"className":2039},[],[2041],{"type":53,"value":8},{"type":53,"value":2043}," npm package",{"type":53,"value":2045}," — use ",{"type":47,"tag":69,"props":2047,"children":2049},{"className":2048},[],[2050],{"type":53,"value":74},{"type":47,"tag":88,"props":2052,"children":2053},{},[2054,2064],{"type":47,"tag":92,"props":2055,"children":2056},{},[2057,2059],{"type":53,"value":2058},"NEVER skip ",{"type":47,"tag":69,"props":2060,"children":2062},{"className":2061},[],[2063],{"type":53,"value":962},{"type":53,"value":2065}," after submitting — transaction may not be committed yet",{"type":47,"tag":88,"props":2067,"children":2068},{},[2069,2074,2076,2082],{"type":47,"tag":92,"props":2070,"children":2071},{},[2072],{"type":53,"value":2073},"NEVER hardcode module addresses",{"type":53,"value":2075}," — use environment variables (",{"type":47,"tag":69,"props":2077,"children":2079},{"className":2078},[],[2080],{"type":53,"value":2081},"VITE_MODULE_ADDRESS",{"type":53,"value":825},{"type":47,"tag":88,"props":2084,"children":2085},{},[2086,2099],{"type":47,"tag":92,"props":2087,"children":2088},{},[2089,2091,2097],{"type":53,"value":2090},"NEVER create multiple ",{"type":47,"tag":69,"props":2092,"children":2094},{"className":2093},[],[2095],{"type":53,"value":2096},"Aptos",{"type":53,"value":2098}," client instances",{"type":53,"value":2100}," — create one singleton and share it",{"type":47,"tag":88,"props":2102,"children":2103},{},[2104,2117],{"type":47,"tag":92,"props":2105,"children":2106},{},[2107,2109,2115],{"type":53,"value":2108},"NEVER use ",{"type":47,"tag":69,"props":2110,"children":2112},{"className":2111},[],[2113],{"type":53,"value":2114},"Account.generate()",{"type":53,"value":2116}," in frontend code",{"type":53,"value":2118}," for real users — use wallet adapter",{"type":47,"tag":88,"props":2120,"children":2121},{},[2122,2132],{"type":47,"tag":92,"props":2123,"children":2124},{},[2125,2126],{"type":53,"value":2108},{"type":47,"tag":69,"props":2127,"children":2129},{"className":2128},[],[2130],{"type":53,"value":2131},"scriptComposer",{"type":53,"value":2133}," — removed in v6.0; use separate transactions instead",{"type":47,"tag":88,"props":2135,"children":2136},{},[2137,2155,2157],{"type":47,"tag":92,"props":2138,"children":2139},{},[2140,2141,2147,2149],{"type":53,"value":2108},{"type":47,"tag":69,"props":2142,"children":2144},{"className":2143},[],[2145],{"type":53,"value":2146},"getAccountCoinAmount",{"type":53,"value":2148}," or ",{"type":47,"tag":69,"props":2150,"children":2152},{"className":2151},[],[2153],{"type":53,"value":2154},"getAccountAPTAmount",{"type":53,"value":2156}," — deprecated; use ",{"type":47,"tag":69,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":53,"value":2162},"getBalance()",{"type":47,"tag":56,"props":2164,"children":2166},{"id":2165},"sdk-version-notes",[2167],{"type":53,"value":2168},"SDK Version Notes",{"type":47,"tag":2170,"props":2171,"children":2173},"h3",{"id":2172},"aip-80-private-key-format-v20",[2174],{"type":53,"value":2175},"AIP-80 Private Key Format (v2.0+)",{"type":47,"tag":63,"props":2177,"children":2178},{},[2179,2181,2187],{"type":53,"value":2180},"Ed25519 and Secp256k1 private keys now use an AIP-80 prefixed format when serialized with ",{"type":47,"tag":69,"props":2182,"children":2184},{"className":2183},[],[2185],{"type":53,"value":2186},"toString()",{"type":53,"value":595},{"type":47,"tag":527,"props":2189,"children":2191},{"className":546,"code":2190,"language":15,"meta":535,"style":535},"const key = new Ed25519PrivateKey(\"0x...\");\nkey.toString(); \u002F\u002F Returns AIP-80 prefixed format, NOT raw hex\n",[2192],{"type":47,"tag":69,"props":2193,"children":2194},{"__ignoreMap":535},[2195,2247],{"type":47,"tag":553,"props":2196,"children":2197},{"class":555,"line":556},[2198,2203,2208,2213,2217,2222,2226,2230,2235,2239,2243],{"type":47,"tag":553,"props":2199,"children":2200},{"style":560},[2201],{"type":53,"value":2202},"const",{"type":47,"tag":553,"props":2204,"children":2205},{"style":706},[2206],{"type":53,"value":2207}," key ",{"type":47,"tag":553,"props":2209,"children":2210},{"style":577},[2211],{"type":53,"value":2212},"=",{"type":47,"tag":553,"props":2214,"children":2215},{"style":577},[2216],{"type":53,"value":1075},{"type":47,"tag":553,"props":2218,"children":2219},{"style":571},[2220],{"type":53,"value":2221}," Ed25519PrivateKey",{"type":47,"tag":553,"props":2223,"children":2224},{"style":706},[2225],{"type":53,"value":758},{"type":47,"tag":553,"props":2227,"children":2228},{"style":577},[2229],{"type":53,"value":1277},{"type":47,"tag":553,"props":2231,"children":2232},{"style":1092},[2233],{"type":53,"value":2234},"0x...",{"type":47,"tag":553,"props":2236,"children":2237},{"style":577},[2238],{"type":53,"value":1277},{"type":47,"tag":553,"props":2240,"children":2241},{"style":706},[2242],{"type":53,"value":825},{"type":47,"tag":553,"props":2244,"children":2245},{"style":577},[2246],{"type":53,"value":830},{"type":47,"tag":553,"props":2248,"children":2249},{"class":555,"line":583},[2250,2255,2259,2264,2269,2274],{"type":47,"tag":553,"props":2251,"children":2252},{"style":706},[2253],{"type":53,"value":2254},"key",{"type":47,"tag":553,"props":2256,"children":2257},{"style":577},[2258],{"type":53,"value":729},{"type":47,"tag":553,"props":2260,"children":2261},{"style":571},[2262],{"type":53,"value":2263},"toString",{"type":47,"tag":553,"props":2265,"children":2266},{"style":706},[2267],{"type":53,"value":2268},"()",{"type":47,"tag":553,"props":2270,"children":2271},{"style":577},[2272],{"type":53,"value":2273},";",{"type":47,"tag":553,"props":2275,"children":2277},{"style":2276},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2278],{"type":53,"value":2279}," \u002F\u002F Returns AIP-80 prefixed format, NOT raw hex\n",{"type":47,"tag":2170,"props":2281,"children":2283},{"id":2282},"fungible-asset-transfers-v139",[2284],{"type":53,"value":2285},"Fungible Asset Transfers (v1.39+)",{"type":47,"tag":527,"props":2287,"children":2289},{"className":546,"code":2288,"language":15,"meta":535,"style":535},"await aptos.transferFungibleAssetBetweenStores({\n  sender: account,\n  fungibleAssetMetadataAddress: metadataAddr,\n  senderStoreAddress: fromStore,\n  recipientStoreAddress: toStore,\n  amount: 1000n\n});\n",[2290],{"type":47,"tag":69,"props":2291,"children":2292},{"__ignoreMap":535},[2293,2322,2343,2364,2385,2406,2428],{"type":47,"tag":553,"props":2294,"children":2295},{"class":555,"line":556},[2296,2301,2305,2309,2314,2318],{"type":47,"tag":553,"props":2297,"children":2298},{"style":687},[2299],{"type":53,"value":2300},"await",{"type":47,"tag":553,"props":2302,"children":2303},{"style":706},[2304],{"type":53,"value":724},{"type":47,"tag":553,"props":2306,"children":2307},{"style":577},[2308],{"type":53,"value":729},{"type":47,"tag":553,"props":2310,"children":2311},{"style":571},[2312],{"type":53,"value":2313},"transferFungibleAssetBetweenStores",{"type":47,"tag":553,"props":2315,"children":2316},{"style":706},[2317],{"type":53,"value":758},{"type":47,"tag":553,"props":2319,"children":2320},{"style":577},[2321],{"type":53,"value":763},{"type":47,"tag":553,"props":2323,"children":2324},{"class":555,"line":583},[2325,2330,2334,2339],{"type":47,"tag":553,"props":2326,"children":2327},{"style":755},[2328],{"type":53,"value":2329},"  sender",{"type":47,"tag":553,"props":2331,"children":2332},{"style":577},[2333],{"type":53,"value":595},{"type":47,"tag":553,"props":2335,"children":2336},{"style":706},[2337],{"type":53,"value":2338}," account",{"type":47,"tag":553,"props":2340,"children":2341},{"style":577},[2342],{"type":53,"value":606},{"type":47,"tag":553,"props":2344,"children":2345},{"class":555,"line":609},[2346,2351,2355,2360],{"type":47,"tag":553,"props":2347,"children":2348},{"style":755},[2349],{"type":53,"value":2350},"  fungibleAssetMetadataAddress",{"type":47,"tag":553,"props":2352,"children":2353},{"style":577},[2354],{"type":53,"value":595},{"type":47,"tag":553,"props":2356,"children":2357},{"style":706},[2358],{"type":53,"value":2359}," metadataAddr",{"type":47,"tag":553,"props":2361,"children":2362},{"style":577},[2363],{"type":53,"value":606},{"type":47,"tag":553,"props":2365,"children":2366},{"class":555,"line":631},[2367,2372,2376,2381],{"type":47,"tag":553,"props":2368,"children":2369},{"style":755},[2370],{"type":53,"value":2371},"  senderStoreAddress",{"type":47,"tag":553,"props":2373,"children":2374},{"style":577},[2375],{"type":53,"value":595},{"type":47,"tag":553,"props":2377,"children":2378},{"style":706},[2379],{"type":53,"value":2380}," fromStore",{"type":47,"tag":553,"props":2382,"children":2383},{"style":577},[2384],{"type":53,"value":606},{"type":47,"tag":553,"props":2386,"children":2387},{"class":555,"line":649},[2388,2393,2397,2402],{"type":47,"tag":553,"props":2389,"children":2390},{"style":755},[2391],{"type":53,"value":2392},"  recipientStoreAddress",{"type":47,"tag":553,"props":2394,"children":2395},{"style":577},[2396],{"type":53,"value":595},{"type":47,"tag":553,"props":2398,"children":2399},{"style":706},[2400],{"type":53,"value":2401}," toStore",{"type":47,"tag":553,"props":2403,"children":2404},{"style":577},[2405],{"type":53,"value":606},{"type":47,"tag":553,"props":2407,"children":2408},{"class":555,"line":683},[2409,2414,2418,2423],{"type":47,"tag":553,"props":2410,"children":2411},{"style":755},[2412],{"type":53,"value":2413},"  amount",{"type":47,"tag":553,"props":2415,"children":2416},{"style":577},[2417],{"type":53,"value":595},{"type":47,"tag":553,"props":2419,"children":2420},{"style":1623},[2421],{"type":53,"value":2422}," 1000",{"type":47,"tag":553,"props":2424,"children":2425},{"style":560},[2426],{"type":53,"value":2427},"n\n",{"type":47,"tag":553,"props":2429,"children":2430},{"class":555,"line":697},[2431,2435,2439],{"type":47,"tag":553,"props":2432,"children":2433},{"style":577},[2434],{"type":53,"value":1695},{"type":47,"tag":553,"props":2436,"children":2437},{"style":706},[2438],{"type":53,"value":825},{"type":47,"tag":553,"props":2440,"children":2441},{"style":577},[2442],{"type":53,"value":830},{"type":47,"tag":2170,"props":2444,"children":2446},{"id":2445},"account-abstraction-v134-aip-104",[2447],{"type":53,"value":2448},"Account Abstraction (v1.34+, AIP-104)",{"type":47,"tag":527,"props":2450,"children":2452},{"className":546,"code":2451,"language":15,"meta":535,"style":535},"\u002F\u002F Check if AA is enabled for an account\nconst isEnabled = await aptos.abstraction.isAccountAbstractionEnabled({\n  accountAddress: \"0x...\",\n  authenticationFunction: `${MODULE_ADDRESS}::auth::authenticate`\n});\n\n\u002F\u002F Enable AA on an account\nconst enableTxn = await aptos.abstraction.enableAccountAbstractionTransaction({\n  accountAddress: account.accountAddress,\n  authenticationFunction: `${MODULE_ADDRESS}::auth::authenticate`\n});\n\n\u002F\u002F Use AbstractedAccount for signing with custom auth logic\nimport { AbstractedAccount } from \"@aptos-labs\u002Fts-sdk\";\n",[2453],{"type":47,"tag":69,"props":2454,"children":2455},{"__ignoreMap":535},[2456,2464,2514,2542,2577,2592,2599,2607,2656,2683,2714,2729,2736,2744],{"type":47,"tag":553,"props":2457,"children":2458},{"class":555,"line":556},[2459],{"type":47,"tag":553,"props":2460,"children":2461},{"style":2276},[2462],{"type":53,"value":2463},"\u002F\u002F Check if AA is enabled for an account\n",{"type":47,"tag":553,"props":2465,"children":2466},{"class":555,"line":583},[2467,2471,2476,2480,2484,2488,2492,2497,2501,2506,2510],{"type":47,"tag":553,"props":2468,"children":2469},{"style":560},[2470],{"type":53,"value":2202},{"type":47,"tag":553,"props":2472,"children":2473},{"style":706},[2474],{"type":53,"value":2475}," isEnabled ",{"type":47,"tag":553,"props":2477,"children":2478},{"style":577},[2479],{"type":53,"value":2212},{"type":47,"tag":553,"props":2481,"children":2482},{"style":687},[2483],{"type":53,"value":719},{"type":47,"tag":553,"props":2485,"children":2486},{"style":706},[2487],{"type":53,"value":724},{"type":47,"tag":553,"props":2489,"children":2490},{"style":577},[2491],{"type":53,"value":729},{"type":47,"tag":553,"props":2493,"children":2494},{"style":706},[2495],{"type":53,"value":2496},"abstraction",{"type":47,"tag":553,"props":2498,"children":2499},{"style":577},[2500],{"type":53,"value":729},{"type":47,"tag":553,"props":2502,"children":2503},{"style":571},[2504],{"type":53,"value":2505},"isAccountAbstractionEnabled",{"type":47,"tag":553,"props":2507,"children":2508},{"style":706},[2509],{"type":53,"value":758},{"type":47,"tag":553,"props":2511,"children":2512},{"style":577},[2513],{"type":53,"value":763},{"type":47,"tag":553,"props":2515,"children":2516},{"class":555,"line":609},[2517,2522,2526,2530,2534,2538],{"type":47,"tag":553,"props":2518,"children":2519},{"style":755},[2520],{"type":53,"value":2521},"  accountAddress",{"type":47,"tag":553,"props":2523,"children":2524},{"style":577},[2525],{"type":53,"value":595},{"type":47,"tag":553,"props":2527,"children":2528},{"style":577},[2529],{"type":53,"value":1640},{"type":47,"tag":553,"props":2531,"children":2532},{"style":1092},[2533],{"type":53,"value":2234},{"type":47,"tag":553,"props":2535,"children":2536},{"style":577},[2537],{"type":53,"value":1277},{"type":47,"tag":553,"props":2539,"children":2540},{"style":577},[2541],{"type":53,"value":606},{"type":47,"tag":553,"props":2543,"children":2544},{"class":555,"line":631},[2545,2550,2554,2559,2563,2567,2572],{"type":47,"tag":553,"props":2546,"children":2547},{"style":755},[2548],{"type":53,"value":2549},"  authenticationFunction",{"type":47,"tag":553,"props":2551,"children":2552},{"style":577},[2553],{"type":53,"value":595},{"type":47,"tag":553,"props":2555,"children":2556},{"style":577},[2557],{"type":53,"value":2558}," `${",{"type":47,"tag":553,"props":2560,"children":2561},{"style":706},[2562],{"type":53,"value":230},{"type":47,"tag":553,"props":2564,"children":2565},{"style":577},[2566],{"type":53,"value":1695},{"type":47,"tag":553,"props":2568,"children":2569},{"style":1092},[2570],{"type":53,"value":2571},"::auth::authenticate",{"type":47,"tag":553,"props":2573,"children":2574},{"style":577},[2575],{"type":53,"value":2576},"`\n",{"type":47,"tag":553,"props":2578,"children":2579},{"class":555,"line":649},[2580,2584,2588],{"type":47,"tag":553,"props":2581,"children":2582},{"style":577},[2583],{"type":53,"value":1695},{"type":47,"tag":553,"props":2585,"children":2586},{"style":706},[2587],{"type":53,"value":825},{"type":47,"tag":553,"props":2589,"children":2590},{"style":577},[2591],{"type":53,"value":830},{"type":47,"tag":553,"props":2593,"children":2594},{"class":555,"line":683},[2595],{"type":47,"tag":553,"props":2596,"children":2597},{"emptyLinePlaceholder":837},[2598],{"type":53,"value":840},{"type":47,"tag":553,"props":2600,"children":2601},{"class":555,"line":697},[2602],{"type":47,"tag":553,"props":2603,"children":2604},{"style":2276},[2605],{"type":53,"value":2606},"\u002F\u002F Enable AA on an account\n",{"type":47,"tag":553,"props":2608,"children":2609},{"class":555,"line":24},[2610,2614,2619,2623,2627,2631,2635,2639,2643,2648,2652],{"type":47,"tag":553,"props":2611,"children":2612},{"style":560},[2613],{"type":53,"value":2202},{"type":47,"tag":553,"props":2615,"children":2616},{"style":706},[2617],{"type":53,"value":2618}," enableTxn ",{"type":47,"tag":553,"props":2620,"children":2621},{"style":577},[2622],{"type":53,"value":2212},{"type":47,"tag":553,"props":2624,"children":2625},{"style":687},[2626],{"type":53,"value":719},{"type":47,"tag":553,"props":2628,"children":2629},{"style":706},[2630],{"type":53,"value":724},{"type":47,"tag":553,"props":2632,"children":2633},{"style":577},[2634],{"type":53,"value":729},{"type":47,"tag":553,"props":2636,"children":2637},{"style":706},[2638],{"type":53,"value":2496},{"type":47,"tag":553,"props":2640,"children":2641},{"style":577},[2642],{"type":53,"value":729},{"type":47,"tag":553,"props":2644,"children":2645},{"style":571},[2646],{"type":53,"value":2647},"enableAccountAbstractionTransaction",{"type":47,"tag":553,"props":2649,"children":2650},{"style":706},[2651],{"type":53,"value":758},{"type":47,"tag":553,"props":2653,"children":2654},{"style":577},[2655],{"type":53,"value":763},{"type":47,"tag":553,"props":2657,"children":2658},{"class":555,"line":796},[2659,2663,2667,2671,2675,2679],{"type":47,"tag":553,"props":2660,"children":2661},{"style":755},[2662],{"type":53,"value":2521},{"type":47,"tag":553,"props":2664,"children":2665},{"style":577},[2666],{"type":53,"value":595},{"type":47,"tag":553,"props":2668,"children":2669},{"style":706},[2670],{"type":53,"value":2338},{"type":47,"tag":553,"props":2672,"children":2673},{"style":577},[2674],{"type":53,"value":729},{"type":47,"tag":553,"props":2676,"children":2677},{"style":706},[2678],{"type":53,"value":789},{"type":47,"tag":553,"props":2680,"children":2681},{"style":577},[2682],{"type":53,"value":606},{"type":47,"tag":553,"props":2684,"children":2685},{"class":555,"line":814},[2686,2690,2694,2698,2702,2706,2710],{"type":47,"tag":553,"props":2687,"children":2688},{"style":755},[2689],{"type":53,"value":2549},{"type":47,"tag":553,"props":2691,"children":2692},{"style":577},[2693],{"type":53,"value":595},{"type":47,"tag":553,"props":2695,"children":2696},{"style":577},[2697],{"type":53,"value":2558},{"type":47,"tag":553,"props":2699,"children":2700},{"style":706},[2701],{"type":53,"value":230},{"type":47,"tag":553,"props":2703,"children":2704},{"style":577},[2705],{"type":53,"value":1695},{"type":47,"tag":553,"props":2707,"children":2708},{"style":1092},[2709],{"type":53,"value":2571},{"type":47,"tag":553,"props":2711,"children":2712},{"style":577},[2713],{"type":53,"value":2576},{"type":47,"tag":553,"props":2715,"children":2716},{"class":555,"line":833},[2717,2721,2725],{"type":47,"tag":553,"props":2718,"children":2719},{"style":577},[2720],{"type":53,"value":1695},{"type":47,"tag":553,"props":2722,"children":2723},{"style":706},[2724],{"type":53,"value":825},{"type":47,"tag":553,"props":2726,"children":2727},{"style":577},[2728],{"type":53,"value":830},{"type":47,"tag":553,"props":2730,"children":2731},{"class":555,"line":843},[2732],{"type":47,"tag":553,"props":2733,"children":2734},{"emptyLinePlaceholder":837},[2735],{"type":53,"value":840},{"type":47,"tag":553,"props":2737,"children":2738},{"class":555,"line":885},[2739],{"type":47,"tag":553,"props":2740,"children":2741},{"style":2276},[2742],{"type":53,"value":2743},"\u002F\u002F Use AbstractedAccount for signing with custom auth logic\n",{"type":47,"tag":553,"props":2745,"children":2746},{"class":555,"line":898},[2747,2752,2757,2762,2767,2772,2776,2780,2784],{"type":47,"tag":553,"props":2748,"children":2749},{"style":687},[2750],{"type":53,"value":2751},"import",{"type":47,"tag":553,"props":2753,"children":2754},{"style":577},[2755],{"type":53,"value":2756}," {",{"type":47,"tag":553,"props":2758,"children":2759},{"style":706},[2760],{"type":53,"value":2761}," AbstractedAccount",{"type":47,"tag":553,"props":2763,"children":2764},{"style":577},[2765],{"type":53,"value":2766}," }",{"type":47,"tag":553,"props":2768,"children":2769},{"style":687},[2770],{"type":53,"value":2771}," from",{"type":47,"tag":553,"props":2773,"children":2774},{"style":577},[2775],{"type":53,"value":1640},{"type":47,"tag":553,"props":2777,"children":2778},{"style":1092},[2779],{"type":53,"value":74},{"type":47,"tag":553,"props":2781,"children":2782},{"style":577},[2783],{"type":53,"value":1277},{"type":47,"tag":553,"props":2785,"children":2786},{"style":577},[2787],{"type":53,"value":830},{"type":47,"tag":56,"props":2789,"children":2791},{"id":2790},"references",[2792],{"type":53,"value":2793},"References",{"type":47,"tag":63,"props":2795,"children":2796},{},[2797],{"type":47,"tag":92,"props":2798,"children":2799},{},[2800],{"type":53,"value":2801},"Pattern Documentation:",{"type":47,"tag":192,"props":2803,"children":2804},{},[2805],{"type":47,"tag":88,"props":2806,"children":2807},{},[2808,2814],{"type":47,"tag":330,"props":2809,"children":2811},{"href":2810},"..\u002F..\u002F..\u002F..\u002Fpatterns\u002Ffullstack\u002FTYPESCRIPT_SDK.md",[2812],{"type":53,"value":2813},"TYPESCRIPT_SDK.md",{"type":53,"value":2815}," — Complete SDK API reference",{"type":47,"tag":63,"props":2817,"children":2818},{},[2819],{"type":47,"tag":92,"props":2820,"children":2821},{},[2822],{"type":53,"value":2823},"Official Documentation:",{"type":47,"tag":192,"props":2825,"children":2826},{},[2827,2839,2850,2861],{"type":47,"tag":88,"props":2828,"children":2829},{},[2830,2832],{"type":53,"value":2831},"TypeScript SDK: ",{"type":47,"tag":330,"props":2833,"children":2837},{"href":2834,"rel":2835},"https:\u002F\u002Faptos.dev\u002Fbuild\u002Fsdks\u002Fts-sdk",[2836],"nofollow",[2838],{"type":53,"value":2834},{"type":47,"tag":88,"props":2840,"children":2841},{},[2842,2844],{"type":53,"value":2843},"API Reference: ",{"type":47,"tag":330,"props":2845,"children":2848},{"href":2846,"rel":2847},"https:\u002F\u002Faptos-labs.github.io\u002Faptos-ts-sdk\u002F",[2836],[2849],{"type":53,"value":2846},{"type":47,"tag":88,"props":2851,"children":2852},{},[2853,2855],{"type":53,"value":2854},"Wallet Adapter: ",{"type":47,"tag":330,"props":2856,"children":2859},{"href":2857,"rel":2858},"https:\u002F\u002Faptos.dev\u002Fbuild\u002Fsdks\u002Fwallet-adapter\u002Fdapp",[2836],[2860],{"type":53,"value":2857},{"type":47,"tag":88,"props":2862,"children":2863},{},[2864,2866],{"type":53,"value":2865},"GitHub: ",{"type":47,"tag":330,"props":2867,"children":2870},{"href":2868,"rel":2869},"https:\u002F\u002Fgithub.com\u002Faptos-labs\u002Faptos-ts-sdk",[2836],[2871],{"type":53,"value":2868},{"type":47,"tag":63,"props":2873,"children":2874},{},[2875],{"type":47,"tag":92,"props":2876,"children":2877},{},[2878],{"type":53,"value":2879},"Granular Skills:",{"type":47,"tag":192,"props":2881,"children":2882},{},[2883,2892,2901,2910,2919,2928,2937],{"type":47,"tag":88,"props":2884,"children":2885},{},[2886,2890],{"type":47,"tag":330,"props":2887,"children":2888},{"href":332},[2889],{"type":53,"value":335},{"type":53,"value":2891}," — Client setup and configuration",{"type":47,"tag":88,"props":2893,"children":2894},{},[2895,2899],{"type":47,"tag":330,"props":2896,"children":2897},{"href":349},[2898],{"type":53,"value":352},{"type":53,"value":2900}," — Account\u002Fsigner creation",{"type":47,"tag":88,"props":2902,"children":2903},{},[2904,2908],{"type":47,"tag":330,"props":2905,"children":2906},{"href":366},[2907],{"type":53,"value":369},{"type":53,"value":2909}," — Address parsing and derivation",{"type":47,"tag":88,"props":2911,"children":2912},{},[2913,2917],{"type":47,"tag":330,"props":2914,"children":2915},{"href":383},[2916],{"type":53,"value":386},{"type":53,"value":2918}," — Build, sign, submit transactions",{"type":47,"tag":88,"props":2920,"children":2921},{},[2922,2926],{"type":47,"tag":330,"props":2923,"children":2924},{"href":400},[2925],{"type":53,"value":403},{"type":53,"value":2927}," — View functions and queries",{"type":47,"tag":88,"props":2929,"children":2930},{},[2931,2935],{"type":47,"tag":330,"props":2932,"children":2933},{"href":417},[2934],{"type":53,"value":420},{"type":53,"value":2936}," — Move-to-TypeScript type mapping",{"type":47,"tag":88,"props":2938,"children":2939},{},[2940,2944],{"type":47,"tag":330,"props":2941,"children":2942},{"href":434},[2943],{"type":53,"value":437},{"type":53,"value":2945}," — React wallet integration",{"type":47,"tag":63,"props":2947,"children":2948},{},[2949],{"type":47,"tag":92,"props":2950,"children":2951},{},[2952],{"type":53,"value":2953},"Related Skills:",{"type":47,"tag":192,"props":2955,"children":2956},{},[2957,2968],{"type":47,"tag":88,"props":2958,"children":2959},{},[2960,2966],{"type":47,"tag":69,"props":2961,"children":2963},{"className":2962},[],[2964],{"type":53,"value":2965},"write-contracts",{"type":53,"value":2967}," — Write the Move contracts that this SDK interacts with",{"type":47,"tag":88,"props":2969,"children":2970},{},[2971,2977],{"type":47,"tag":69,"props":2972,"children":2974},{"className":2973},[],[2975],{"type":53,"value":2976},"deploy-contracts",{"type":53,"value":2978}," — Deploy contracts before calling them from TypeScript",{"type":47,"tag":2980,"props":2981,"children":2982},"style",{},[2983],{"type":53,"value":2984},"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":2986,"total":931},[2987,3002,3019,3032,3046,3060,3074],{"slug":2988,"name":2988,"fn":2989,"description":2990,"org":2991,"tags":2992,"stars":20,"repoUrl":21,"updatedAt":3001},"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},[2993,2995,2998],{"name":2994,"slug":27,"type":16},"Blockchain",{"name":2996,"slug":2997,"type":16},"Performance","performance",{"name":2999,"slug":3000,"type":16},"Smart Contracts","smart-contracts","2026-07-12T08:07:14.117466",{"slug":3003,"name":3003,"fn":3004,"description":3005,"org":3006,"tags":3007,"stars":20,"repoUrl":21,"updatedAt":3018},"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},[3008,3011,3012,3015],{"name":3009,"slug":3010,"type":16},"Next.js","next-js",{"name":14,"slug":15,"type":16},{"name":3013,"slug":3014,"type":16},"Vite","vite",{"name":3016,"slug":3017,"type":16},"Web3","web3","2026-07-12T08:07:30.595111",{"slug":2976,"name":2976,"fn":3020,"description":3021,"org":3022,"tags":3023,"stars":20,"repoUrl":21,"updatedAt":3031},"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},[3024,3027,3030],{"name":3025,"slug":3026,"type":16},"Deployment","deployment",{"name":3028,"slug":3029,"type":16},"Engineering","engineering",{"name":2999,"slug":3000,"type":16},"2026-07-12T08:07:16.798352",{"slug":3033,"name":3033,"fn":3034,"description":3035,"org":3036,"tags":3037,"stars":20,"repoUrl":21,"updatedAt":3045},"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},[3038,3039,3042],{"name":3028,"slug":3029,"type":16},{"name":3040,"slug":3041,"type":16},"QA","qa",{"name":3043,"slug":3044,"type":16},"Testing","testing","2026-07-12T08:07:18.0205",{"slug":3047,"name":3047,"fn":3048,"description":3049,"org":3050,"tags":3051,"stars":20,"repoUrl":21,"updatedAt":3059},"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},[3052,3055,3056],{"name":3053,"slug":3054,"type":16},"Code Analysis","code-analysis",{"name":3028,"slug":3029,"type":16},{"name":3057,"slug":3058,"type":16},"Migration","migration","2026-07-12T08:07:10.226223",{"slug":3061,"name":3061,"fn":3062,"description":3063,"org":3064,"tags":3065,"stars":20,"repoUrl":21,"updatedAt":3073},"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},[3066,3067,3070],{"name":2994,"slug":27,"type":16},{"name":3068,"slug":3069,"type":16},"Documentation","documentation",{"name":3071,"slug":3072,"type":16},"Search","search","2026-07-12T08:07:15.382039",{"slug":3075,"name":3075,"fn":3076,"description":3077,"org":3078,"tags":3079,"stars":20,"repoUrl":21,"updatedAt":3088},"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},[3080,3083,3084,3087],{"name":3081,"slug":3082,"type":16},"Audit","audit",{"name":3053,"slug":3054,"type":16},{"name":3085,"slug":3086,"type":16},"Security","security",{"name":2999,"slug":3000,"type":16},"2026-07-12T08:07:11.680215",{"items":3090,"total":1138},[3091,3097,3104,3110,3116,3122,3128,3135,3147,3160,3169,3178],{"slug":2988,"name":2988,"fn":2989,"description":2990,"org":3092,"tags":3093,"stars":20,"repoUrl":21,"updatedAt":3001},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3094,3095,3096],{"name":2994,"slug":27,"type":16},{"name":2996,"slug":2997,"type":16},{"name":2999,"slug":3000,"type":16},{"slug":3003,"name":3003,"fn":3004,"description":3005,"org":3098,"tags":3099,"stars":20,"repoUrl":21,"updatedAt":3018},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3100,3101,3102,3103],{"name":3009,"slug":3010,"type":16},{"name":14,"slug":15,"type":16},{"name":3013,"slug":3014,"type":16},{"name":3016,"slug":3017,"type":16},{"slug":2976,"name":2976,"fn":3020,"description":3021,"org":3105,"tags":3106,"stars":20,"repoUrl":21,"updatedAt":3031},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3107,3108,3109],{"name":3025,"slug":3026,"type":16},{"name":3028,"slug":3029,"type":16},{"name":2999,"slug":3000,"type":16},{"slug":3033,"name":3033,"fn":3034,"description":3035,"org":3111,"tags":3112,"stars":20,"repoUrl":21,"updatedAt":3045},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3113,3114,3115],{"name":3028,"slug":3029,"type":16},{"name":3040,"slug":3041,"type":16},{"name":3043,"slug":3044,"type":16},{"slug":3047,"name":3047,"fn":3048,"description":3049,"org":3117,"tags":3118,"stars":20,"repoUrl":21,"updatedAt":3059},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3119,3120,3121],{"name":3053,"slug":3054,"type":16},{"name":3028,"slug":3029,"type":16},{"name":3057,"slug":3058,"type":16},{"slug":3061,"name":3061,"fn":3062,"description":3063,"org":3123,"tags":3124,"stars":20,"repoUrl":21,"updatedAt":3073},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3125,3126,3127],{"name":2994,"slug":27,"type":16},{"name":3068,"slug":3069,"type":16},{"name":3071,"slug":3072,"type":16},{"slug":3075,"name":3075,"fn":3076,"description":3077,"org":3129,"tags":3130,"stars":20,"repoUrl":21,"updatedAt":3088},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3131,3132,3133,3134],{"name":3081,"slug":3082,"type":16},{"name":3053,"slug":3054,"type":16},{"name":3085,"slug":3086,"type":16},{"name":2999,"slug":3000,"type":16},{"slug":3136,"name":3136,"fn":3137,"description":3138,"org":3139,"tags":3140,"stars":20,"repoUrl":21,"updatedAt":3146},"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},[3141,3142,3145],{"name":18,"slug":19,"type":16},{"name":3143,"slug":3144,"type":16},"Payments","payments",{"name":3016,"slug":3017,"type":16},"2026-07-12T08:07:31.843242",{"slug":352,"name":352,"fn":3148,"description":3149,"org":3150,"tags":3151,"stars":20,"repoUrl":21,"updatedAt":3159},"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},[3152,3155,3156,3158],{"name":3153,"slug":3154,"type":16},"Auth","auth",{"name":2994,"slug":27,"type":16},{"name":3157,"slug":37,"type":16},"SDK",{"name":14,"slug":15,"type":16},"2026-07-12T08:07:29.297415",{"slug":369,"name":369,"fn":3161,"description":3162,"org":3163,"tags":3164,"stars":20,"repoUrl":21,"updatedAt":3168},"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},[3165,3166,3167],{"name":2994,"slug":27,"type":16},{"name":3157,"slug":37,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:07:26.430378",{"slug":335,"name":335,"fn":3170,"description":3171,"org":3172,"tags":3173,"stars":20,"repoUrl":21,"updatedAt":3177},"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},[3174,3175,3176],{"name":18,"slug":19,"type":16},{"name":3157,"slug":37,"type":16},{"name":14,"slug":15,"type":16},"2026-07-12T08:07:21.933342",{"slug":386,"name":386,"fn":3179,"description":3180,"org":3181,"tags":3182,"stars":20,"repoUrl":21,"updatedAt":3186},"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},[3183,3184,3185],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":3016,"slug":3017,"type":16},"2026-07-12T08:07:23.774257"]