[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sui-deepbook-move":3,"mdc-lsrwtp-key":36,"related-org-sui-deepbook-move":970,"related-repo-sui-deepbook-move":1124},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"deepbook-move","integrate DeepBook pools into Move contracts","DeepBook V3 Move smart contract integration. Use when writing, reviewing, or debugging Move code that integrates with DeepBook pools — placing orders from on-chain contracts, creating pools, using flash loans, accessing BalanceManager from Move, or composing DeepBook operations in programmable transaction blocks.\nFor DeepBook architecture and contract addresses, see the `deepbook-overview` skill. For TypeScript SDK usage, see the `deepbook-sdk` skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"sui","Sui (Mysten Labs)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsui.png","MystenLabs",[13,16,19,22],{"name":14,"slug":8,"type":15},"Sui","tag",{"name":17,"slug":18,"type":15},"Web3","web3",{"name":20,"slug":21,"type":15},"Trading","trading",{"name":23,"slug":24,"type":15},"Smart Contracts","smart-contracts",9,"https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fskills","2026-08-24T03:57:01.149367",null,2,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"Sui development skills maintained by Mysten Labs","https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fskills\u002Ftree\u002FHEAD\u002Fdeepbook-move","---\nname: deepbook-move\ndescription: >\n  DeepBook V3 Move smart contract integration. Use when writing, reviewing, or\n  debugging Move code that integrates with DeepBook pools — placing orders from\n  on-chain contracts, creating pools, using flash loans, accessing BalanceManager\n  from Move, or composing DeepBook operations in programmable transaction blocks.\n\n  For DeepBook architecture and contract addresses, see the `deepbook-overview` skill.\n  For TypeScript SDK usage, see the `deepbook-sdk` skill.\n---\n\n# DeepBook V3 Move Integration\n\n> **MCP tool:** When available in your environment, also query the Sui documentation MCP server (`https:\u002F\u002Fsui.mcp.kapa.ai`) for up-to-date answers. Use it for verification and for details not covered by these reference files.\n\n> **Source constraint:** All information in this skill is sourced exclusively from [docs.sui.io](https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3) and the [deepbookv3 Move source](https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fdeepbookv3\u002Ftree\u002Fmain\u002Fpackages\u002Fdeepbook). When extending or updating this skill, only pull from these sources. Do not use third-party blogs, tutorials, or unofficial documentation.\n\nDeepBook V3 exposes a Move API for on-chain composability — protocols can place orders, execute swaps, take flash loans, and manage balances directly from Move smart contracts. This skill covers the Move-level contract interface. Common mistakes include calling swap or order functions with incorrect coin type parameters, forgetting to return flash loan hot potatoes, and misunderstanding the TradeProof authorization model.\n\nThis skill routes to focused reference files. Load only the ones relevant to the current task.\n\nAll patterns in this skill are derived from:\n  https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\n  https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fbalance-manager\n  https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fflash-loans\n  https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fswaps\n  https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fdeepbookv3\u002Ftree\u002Fmain\u002Fpackages\u002Fdeepbook\u002Fsources\n\nIf unsure about any function signature, fetch the relevant source file or docs page before answering.\nDo not guess or extrapolate from other protocols.\n\n---\n\n## Reference files\n\n### pool-api — Pool and Order Functions\n**Path:** `pool-api.md`\n**Load when:** the user needs to place orders, create pools, query pool state, manage governance, or understand the Pool Move API.\n**Covers:** pool creation, limit and market order placement, order cancellation, pool state queries, governance functions, order types and constants, the move dependency setup.\n\n### balance-manager-api — BalanceManager Move API\n**Path:** `balance-manager-api.md`\n**Load when:** the user needs to create or interact with BalanceManagers from Move code, mint capabilities (TradeCap, DepositCap, WithdrawCap), generate TradeProofs, or understand the authorization model.\n**Covers:** BalanceManager creation, capability minting and revocation, deposit and withdrawal functions, TradeProof generation, the owner vs cap-holder authorization model, events.\n\n### flash-loans — Flash Loan Pattern\n**Path:** `flash-loans.md`\n**Load when:** the user wants to borrow assets from a pool and repay within the same transaction, or needs to understand the hot potato pattern for flash loans.\n**Covers:** borrowing base and quote assets, the FlashLoan hot potato struct, returning assets, constraints and failure modes, a worked example.\n\n---\n\n## Related skills\n\n| Topic | Skill | Load when |\n|-------|-------|-----------|\n| Architecture, design, contract addresses | `deepbook-overview\u002F` | Understanding Pool\u002FBook\u002FState\u002FVault design, looking up addresses or pool IDs |\n| TypeScript SDK trading | `deepbook-sdk\u002F` | Building trading bots or scripts with the SDK |\n| Sui Move fundamentals | `sui-move\u002F` | Writing Move code generally — abilities, TxContext, events, coins |\n| PTB composition | `ptbs\u002F` | Composing DeepBook calls in programmable transaction blocks |\n\n---\n\n## Routing guide\n\n| Task | Load |\n|------|------|\n| Adding DeepBook as a Move dependency | pool-api |\n| Creating a new pool | pool-api |\n| Placing orders from Move code | pool-api |\n| Querying pool state on-chain | pool-api |\n| Creating a BalanceManager from Move | balance-manager-api |\n| Minting TradeCap\u002FDepositCap\u002FWithdrawCap | balance-manager-api |\n| Generating a TradeProof for trading | balance-manager-api |\n| Understanding the authorization model | balance-manager-api |\n| Using flash loans | flash-loans |\n| Integrating DeepBook into a protocol | pool-api + balance-manager-api |\n| Building a flash loan strategy | flash-loans + pool-api |\n| Full Move integration review | **all reference files** |\n\n---\n\n## Skill Content\n\n### Key concepts\n\n- **TradeProof.** A proof object that authorizes trading on a pool. Generated either by the BalanceManager owner (via `generate_proof_as_owner`) or by a TradeCap holder (via `generate_proof_as_trader`). Every order placement and cancellation requires a TradeProof.\n\n- **Hot potato pattern (flash loans).** The `FlashLoan` struct has no abilities — it cannot be stored, copied, or dropped. It must be consumed by returning the borrowed assets in the same transaction. If not returned, the transaction fails.\n\n- **Pool type parameters.** Pool functions are generic over `\u003CBaseAsset, QuoteAsset>`. The type parameters must exactly match the pool's coin types or the call fails.\n\n- **Move dependency.** Add DeepBook to your Move.toml via MVR: `deepbook = { mvr = \"@deepbook\u002Fcore\" }`.\n\n### Rules\n\n1. **Always match type parameters exactly.** `Pool\u003CSUI, USDC>` is not the same as `Pool\u003CUSDC, SUI>`. The base and quote types must match the pool's creation order.\n2. **Always return flash loan hot potatoes.** The `FlashLoan` struct has no abilities — failing to return it causes a transaction abort.\n3. **Do not borrow from a pool and trade in the same pool within one transaction.** The borrowed funds are not available for trading, and the combined operations can fail.\n4. **Use `generate_proof_as_owner` for owner operations** and `generate_proof_as_trader` for delegated operations via TradeCap.\n5. **Cap limit: 1,000 total capabilities per BalanceManager** (across TradeCap, DepositCap, and WithdrawCap combined). At scale, this limit constrains how many delegated traders a single BalanceManager can support — plan for multiple BalanceManagers if you need more than 1,000 delegated accounts.\n6. **Use `_v2` variants for functions that have them.** The unsuffixed originals (e.g., `new_with_custom_owner_caps`) are deprecated stubs that abort. Always use the `_v2` suffix (e.g., `new_with_custom_owner_caps_v2`).\n\n### Common mistakes\n\n- **Wrong type parameter order.** Passing `\u003CUSDC, SUI>` when the pool is `\u003CSUI, USDC>` causes a type mismatch error.\n- **Forgetting to return the FlashLoan.** The transaction compiles but aborts at runtime because the hot potato cannot be dropped.\n- **Trading in the same pool you borrowed from.** Flash-loaned funds are locked in the FlashLoan object and unavailable for order settlement, causing the trade to fail.\n- **Using `generate_proof_as_owner` from a non-owner address.** Only the BalanceManager owner can generate an owner proof. Delegated traders must use `generate_proof_as_trader` with a valid TradeCap.\n- **Forgetting `ctx` on `generate_proof_as_trader`.** The function takes `(balance_manager, trade_cap, ctx)` — omitting `ctx: &TxContext` causes a compilation error.\n- **Calling deprecated unsuffixed functions.** Functions like `new_with_custom_owner_caps` are stubs that `abort 1337`. Use the `_v2` variant instead.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,75,108,113,118,153,158,162,169,176,206,212,238,244,270,273,279,400,403,409,584,587,593,599,684,690,819,825],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"deepbook-v3-move-integration",[47],{"type":48,"value":49},"text","DeepBook V3 Move Integration",{"type":42,"tag":51,"props":52,"children":53},"blockquote",{},[54],{"type":42,"tag":55,"props":56,"children":57},"p",{},[58,64,66,73],{"type":42,"tag":59,"props":60,"children":61},"strong",{},[62],{"type":48,"value":63},"MCP tool:",{"type":48,"value":65}," When available in your environment, also query the Sui documentation MCP server (",{"type":42,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":48,"value":72},"https:\u002F\u002Fsui.mcp.kapa.ai",{"type":48,"value":74},") for up-to-date answers. Use it for verification and for details not covered by these reference files.",{"type":42,"tag":51,"props":76,"children":77},{},[78],{"type":42,"tag":55,"props":79,"children":80},{},[81,86,88,97,99,106],{"type":42,"tag":59,"props":82,"children":83},{},[84],{"type":48,"value":85},"Source constraint:",{"type":48,"value":87}," All information in this skill is sourced exclusively from ",{"type":42,"tag":89,"props":90,"children":94},"a",{"href":91,"rel":92},"https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3",[93],"nofollow",[95],{"type":48,"value":96},"docs.sui.io",{"type":48,"value":98}," and the ",{"type":42,"tag":89,"props":100,"children":103},{"href":101,"rel":102},"https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fdeepbookv3\u002Ftree\u002Fmain\u002Fpackages\u002Fdeepbook",[93],[104],{"type":48,"value":105},"deepbookv3 Move source",{"type":48,"value":107},". When extending or updating this skill, only pull from these sources. Do not use third-party blogs, tutorials, or unofficial documentation.",{"type":42,"tag":55,"props":109,"children":110},{},[111],{"type":48,"value":112},"DeepBook V3 exposes a Move API for on-chain composability — protocols can place orders, execute swaps, take flash loans, and manage balances directly from Move smart contracts. This skill covers the Move-level contract interface. Common mistakes include calling swap or order functions with incorrect coin type parameters, forgetting to return flash loan hot potatoes, and misunderstanding the TradeProof authorization model.",{"type":42,"tag":55,"props":114,"children":115},{},[116],{"type":48,"value":117},"This skill routes to focused reference files. Load only the ones relevant to the current task.",{"type":42,"tag":55,"props":119,"children":120},{},[121,123,129,135,141,147],{"type":48,"value":122},"All patterns in this skill are derived from:\n",{"type":42,"tag":89,"props":124,"children":127},{"href":125,"rel":126},"https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information",[93],[128],{"type":48,"value":125},{"type":42,"tag":89,"props":130,"children":133},{"href":131,"rel":132},"https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fbalance-manager",[93],[134],{"type":48,"value":131},{"type":42,"tag":89,"props":136,"children":139},{"href":137,"rel":138},"https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fflash-loans",[93],[140],{"type":48,"value":137},{"type":42,"tag":89,"props":142,"children":145},{"href":143,"rel":144},"https:\u002F\u002Fdocs.sui.io\u002Fonchain-finance\u002Fdeepbook\u002Fdeepbookv3\u002Fcontract-information\u002Fswaps",[93],[146],{"type":48,"value":143},{"type":42,"tag":89,"props":148,"children":151},{"href":149,"rel":150},"https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fdeepbookv3\u002Ftree\u002Fmain\u002Fpackages\u002Fdeepbook\u002Fsources",[93],[152],{"type":48,"value":149},{"type":42,"tag":55,"props":154,"children":155},{},[156],{"type":48,"value":157},"If unsure about any function signature, fetch the relevant source file or docs page before answering.\nDo not guess or extrapolate from other protocols.",{"type":42,"tag":159,"props":160,"children":161},"hr",{},[],{"type":42,"tag":163,"props":164,"children":166},"h2",{"id":165},"reference-files",[167],{"type":48,"value":168},"Reference files",{"type":42,"tag":170,"props":171,"children":173},"h3",{"id":172},"pool-api-pool-and-order-functions",[174],{"type":48,"value":175},"pool-api — Pool and Order Functions",{"type":42,"tag":55,"props":177,"children":178},{},[179,184,186,192,197,199,204],{"type":42,"tag":59,"props":180,"children":181},{},[182],{"type":48,"value":183},"Path:",{"type":48,"value":185}," ",{"type":42,"tag":67,"props":187,"children":189},{"className":188},[],[190],{"type":48,"value":191},"pool-api.md",{"type":42,"tag":59,"props":193,"children":194},{},[195],{"type":48,"value":196},"Load when:",{"type":48,"value":198}," the user needs to place orders, create pools, query pool state, manage governance, or understand the Pool Move API.\n",{"type":42,"tag":59,"props":200,"children":201},{},[202],{"type":48,"value":203},"Covers:",{"type":48,"value":205}," pool creation, limit and market order placement, order cancellation, pool state queries, governance functions, order types and constants, the move dependency setup.",{"type":42,"tag":170,"props":207,"children":209},{"id":208},"balance-manager-api-balancemanager-move-api",[210],{"type":48,"value":211},"balance-manager-api — BalanceManager Move API",{"type":42,"tag":55,"props":213,"children":214},{},[215,219,220,226,230,232,236],{"type":42,"tag":59,"props":216,"children":217},{},[218],{"type":48,"value":183},{"type":48,"value":185},{"type":42,"tag":67,"props":221,"children":223},{"className":222},[],[224],{"type":48,"value":225},"balance-manager-api.md",{"type":42,"tag":59,"props":227,"children":228},{},[229],{"type":48,"value":196},{"type":48,"value":231}," the user needs to create or interact with BalanceManagers from Move code, mint capabilities (TradeCap, DepositCap, WithdrawCap), generate TradeProofs, or understand the authorization model.\n",{"type":42,"tag":59,"props":233,"children":234},{},[235],{"type":48,"value":203},{"type":48,"value":237}," BalanceManager creation, capability minting and revocation, deposit and withdrawal functions, TradeProof generation, the owner vs cap-holder authorization model, events.",{"type":42,"tag":170,"props":239,"children":241},{"id":240},"flash-loans-flash-loan-pattern",[242],{"type":48,"value":243},"flash-loans — Flash Loan Pattern",{"type":42,"tag":55,"props":245,"children":246},{},[247,251,252,258,262,264,268],{"type":42,"tag":59,"props":248,"children":249},{},[250],{"type":48,"value":183},{"type":48,"value":185},{"type":42,"tag":67,"props":253,"children":255},{"className":254},[],[256],{"type":48,"value":257},"flash-loans.md",{"type":42,"tag":59,"props":259,"children":260},{},[261],{"type":48,"value":196},{"type":48,"value":263}," the user wants to borrow assets from a pool and repay within the same transaction, or needs to understand the hot potato pattern for flash loans.\n",{"type":42,"tag":59,"props":265,"children":266},{},[267],{"type":48,"value":203},{"type":48,"value":269}," borrowing base and quote assets, the FlashLoan hot potato struct, returning assets, constraints and failure modes, a worked example.",{"type":42,"tag":159,"props":271,"children":272},{},[],{"type":42,"tag":163,"props":274,"children":276},{"id":275},"related-skills",[277],{"type":48,"value":278},"Related skills",{"type":42,"tag":280,"props":281,"children":282},"table",{},[283,307],{"type":42,"tag":284,"props":285,"children":286},"thead",{},[287],{"type":42,"tag":288,"props":289,"children":290},"tr",{},[291,297,302],{"type":42,"tag":292,"props":293,"children":294},"th",{},[295],{"type":48,"value":296},"Topic",{"type":42,"tag":292,"props":298,"children":299},{},[300],{"type":48,"value":301},"Skill",{"type":42,"tag":292,"props":303,"children":304},{},[305],{"type":48,"value":306},"Load when",{"type":42,"tag":308,"props":309,"children":310},"tbody",{},[311,334,356,378],{"type":42,"tag":288,"props":312,"children":313},{},[314,320,329],{"type":42,"tag":315,"props":316,"children":317},"td",{},[318],{"type":48,"value":319},"Architecture, design, contract addresses",{"type":42,"tag":315,"props":321,"children":322},{},[323],{"type":42,"tag":67,"props":324,"children":326},{"className":325},[],[327],{"type":48,"value":328},"deepbook-overview\u002F",{"type":42,"tag":315,"props":330,"children":331},{},[332],{"type":48,"value":333},"Understanding Pool\u002FBook\u002FState\u002FVault design, looking up addresses or pool IDs",{"type":42,"tag":288,"props":335,"children":336},{},[337,342,351],{"type":42,"tag":315,"props":338,"children":339},{},[340],{"type":48,"value":341},"TypeScript SDK trading",{"type":42,"tag":315,"props":343,"children":344},{},[345],{"type":42,"tag":67,"props":346,"children":348},{"className":347},[],[349],{"type":48,"value":350},"deepbook-sdk\u002F",{"type":42,"tag":315,"props":352,"children":353},{},[354],{"type":48,"value":355},"Building trading bots or scripts with the SDK",{"type":42,"tag":288,"props":357,"children":358},{},[359,364,373],{"type":42,"tag":315,"props":360,"children":361},{},[362],{"type":48,"value":363},"Sui Move fundamentals",{"type":42,"tag":315,"props":365,"children":366},{},[367],{"type":42,"tag":67,"props":368,"children":370},{"className":369},[],[371],{"type":48,"value":372},"sui-move\u002F",{"type":42,"tag":315,"props":374,"children":375},{},[376],{"type":48,"value":377},"Writing Move code generally — abilities, TxContext, events, coins",{"type":42,"tag":288,"props":379,"children":380},{},[381,386,395],{"type":42,"tag":315,"props":382,"children":383},{},[384],{"type":48,"value":385},"PTB composition",{"type":42,"tag":315,"props":387,"children":388},{},[389],{"type":42,"tag":67,"props":390,"children":392},{"className":391},[],[393],{"type":48,"value":394},"ptbs\u002F",{"type":42,"tag":315,"props":396,"children":397},{},[398],{"type":48,"value":399},"Composing DeepBook calls in programmable transaction blocks",{"type":42,"tag":159,"props":401,"children":402},{},[],{"type":42,"tag":163,"props":404,"children":406},{"id":405},"routing-guide",[407],{"type":48,"value":408},"Routing guide",{"type":42,"tag":280,"props":410,"children":411},{},[412,428],{"type":42,"tag":284,"props":413,"children":414},{},[415],{"type":42,"tag":288,"props":416,"children":417},{},[418,423],{"type":42,"tag":292,"props":419,"children":420},{},[421],{"type":48,"value":422},"Task",{"type":42,"tag":292,"props":424,"children":425},{},[426],{"type":48,"value":427},"Load",{"type":42,"tag":308,"props":429,"children":430},{},[431,444,456,468,480,493,505,517,529,542,555,568],{"type":42,"tag":288,"props":432,"children":433},{},[434,439],{"type":42,"tag":315,"props":435,"children":436},{},[437],{"type":48,"value":438},"Adding DeepBook as a Move dependency",{"type":42,"tag":315,"props":440,"children":441},{},[442],{"type":48,"value":443},"pool-api",{"type":42,"tag":288,"props":445,"children":446},{},[447,452],{"type":42,"tag":315,"props":448,"children":449},{},[450],{"type":48,"value":451},"Creating a new pool",{"type":42,"tag":315,"props":453,"children":454},{},[455],{"type":48,"value":443},{"type":42,"tag":288,"props":457,"children":458},{},[459,464],{"type":42,"tag":315,"props":460,"children":461},{},[462],{"type":48,"value":463},"Placing orders from Move code",{"type":42,"tag":315,"props":465,"children":466},{},[467],{"type":48,"value":443},{"type":42,"tag":288,"props":469,"children":470},{},[471,476],{"type":42,"tag":315,"props":472,"children":473},{},[474],{"type":48,"value":475},"Querying pool state on-chain",{"type":42,"tag":315,"props":477,"children":478},{},[479],{"type":48,"value":443},{"type":42,"tag":288,"props":481,"children":482},{},[483,488],{"type":42,"tag":315,"props":484,"children":485},{},[486],{"type":48,"value":487},"Creating a BalanceManager from Move",{"type":42,"tag":315,"props":489,"children":490},{},[491],{"type":48,"value":492},"balance-manager-api",{"type":42,"tag":288,"props":494,"children":495},{},[496,501],{"type":42,"tag":315,"props":497,"children":498},{},[499],{"type":48,"value":500},"Minting TradeCap\u002FDepositCap\u002FWithdrawCap",{"type":42,"tag":315,"props":502,"children":503},{},[504],{"type":48,"value":492},{"type":42,"tag":288,"props":506,"children":507},{},[508,513],{"type":42,"tag":315,"props":509,"children":510},{},[511],{"type":48,"value":512},"Generating a TradeProof for trading",{"type":42,"tag":315,"props":514,"children":515},{},[516],{"type":48,"value":492},{"type":42,"tag":288,"props":518,"children":519},{},[520,525],{"type":42,"tag":315,"props":521,"children":522},{},[523],{"type":48,"value":524},"Understanding the authorization model",{"type":42,"tag":315,"props":526,"children":527},{},[528],{"type":48,"value":492},{"type":42,"tag":288,"props":530,"children":531},{},[532,537],{"type":42,"tag":315,"props":533,"children":534},{},[535],{"type":48,"value":536},"Using flash loans",{"type":42,"tag":315,"props":538,"children":539},{},[540],{"type":48,"value":541},"flash-loans",{"type":42,"tag":288,"props":543,"children":544},{},[545,550],{"type":42,"tag":315,"props":546,"children":547},{},[548],{"type":48,"value":549},"Integrating DeepBook into a protocol",{"type":42,"tag":315,"props":551,"children":552},{},[553],{"type":48,"value":554},"pool-api + balance-manager-api",{"type":42,"tag":288,"props":556,"children":557},{},[558,563],{"type":42,"tag":315,"props":559,"children":560},{},[561],{"type":48,"value":562},"Building a flash loan strategy",{"type":42,"tag":315,"props":564,"children":565},{},[566],{"type":48,"value":567},"flash-loans + pool-api",{"type":42,"tag":288,"props":569,"children":570},{},[571,576],{"type":42,"tag":315,"props":572,"children":573},{},[574],{"type":48,"value":575},"Full Move integration review",{"type":42,"tag":315,"props":577,"children":578},{},[579],{"type":42,"tag":59,"props":580,"children":581},{},[582],{"type":48,"value":583},"all reference files",{"type":42,"tag":159,"props":585,"children":586},{},[],{"type":42,"tag":163,"props":588,"children":590},{"id":589},"skill-content",[591],{"type":48,"value":592},"Skill Content",{"type":42,"tag":170,"props":594,"children":596},{"id":595},"key-concepts",[597],{"type":48,"value":598},"Key concepts",{"type":42,"tag":600,"props":601,"children":602},"ul",{},[603,630,648,666],{"type":42,"tag":604,"props":605,"children":606},"li",{},[607,612,614,620,622,628],{"type":42,"tag":59,"props":608,"children":609},{},[610],{"type":48,"value":611},"TradeProof.",{"type":48,"value":613}," A proof object that authorizes trading on a pool. Generated either by the BalanceManager owner (via ",{"type":42,"tag":67,"props":615,"children":617},{"className":616},[],[618],{"type":48,"value":619},"generate_proof_as_owner",{"type":48,"value":621},") or by a TradeCap holder (via ",{"type":42,"tag":67,"props":623,"children":625},{"className":624},[],[626],{"type":48,"value":627},"generate_proof_as_trader",{"type":48,"value":629},"). Every order placement and cancellation requires a TradeProof.",{"type":42,"tag":604,"props":631,"children":632},{},[633,638,640,646],{"type":42,"tag":59,"props":634,"children":635},{},[636],{"type":48,"value":637},"Hot potato pattern (flash loans).",{"type":48,"value":639}," The ",{"type":42,"tag":67,"props":641,"children":643},{"className":642},[],[644],{"type":48,"value":645},"FlashLoan",{"type":48,"value":647}," struct has no abilities — it cannot be stored, copied, or dropped. It must be consumed by returning the borrowed assets in the same transaction. If not returned, the transaction fails.",{"type":42,"tag":604,"props":649,"children":650},{},[651,656,658,664],{"type":42,"tag":59,"props":652,"children":653},{},[654],{"type":48,"value":655},"Pool type parameters.",{"type":48,"value":657}," Pool functions are generic over ",{"type":42,"tag":67,"props":659,"children":661},{"className":660},[],[662],{"type":48,"value":663},"\u003CBaseAsset, QuoteAsset>",{"type":48,"value":665},". The type parameters must exactly match the pool's coin types or the call fails.",{"type":42,"tag":604,"props":667,"children":668},{},[669,674,676,682],{"type":42,"tag":59,"props":670,"children":671},{},[672],{"type":48,"value":673},"Move dependency.",{"type":48,"value":675}," Add DeepBook to your Move.toml via MVR: ",{"type":42,"tag":67,"props":677,"children":679},{"className":678},[],[680],{"type":48,"value":681},"deepbook = { mvr = \"@deepbook\u002Fcore\" }",{"type":48,"value":683},".",{"type":42,"tag":170,"props":685,"children":687},{"id":686},"rules",[688],{"type":48,"value":689},"Rules",{"type":42,"tag":691,"props":692,"children":693},"ol",{},[694,719,735,745,769,779],{"type":42,"tag":604,"props":695,"children":696},{},[697,702,703,709,711,717],{"type":42,"tag":59,"props":698,"children":699},{},[700],{"type":48,"value":701},"Always match type parameters exactly.",{"type":48,"value":185},{"type":42,"tag":67,"props":704,"children":706},{"className":705},[],[707],{"type":48,"value":708},"Pool\u003CSUI, USDC>",{"type":48,"value":710}," is not the same as ",{"type":42,"tag":67,"props":712,"children":714},{"className":713},[],[715],{"type":48,"value":716},"Pool\u003CUSDC, SUI>",{"type":48,"value":718},". The base and quote types must match the pool's creation order.",{"type":42,"tag":604,"props":720,"children":721},{},[722,727,728,733],{"type":42,"tag":59,"props":723,"children":724},{},[725],{"type":48,"value":726},"Always return flash loan hot potatoes.",{"type":48,"value":639},{"type":42,"tag":67,"props":729,"children":731},{"className":730},[],[732],{"type":48,"value":645},{"type":48,"value":734}," struct has no abilities — failing to return it causes a transaction abort.",{"type":42,"tag":604,"props":736,"children":737},{},[738,743],{"type":42,"tag":59,"props":739,"children":740},{},[741],{"type":48,"value":742},"Do not borrow from a pool and trade in the same pool within one transaction.",{"type":48,"value":744}," The borrowed funds are not available for trading, and the combined operations can fail.",{"type":42,"tag":604,"props":746,"children":747},{},[748,760,762,767],{"type":42,"tag":59,"props":749,"children":750},{},[751,753,758],{"type":48,"value":752},"Use ",{"type":42,"tag":67,"props":754,"children":756},{"className":755},[],[757],{"type":48,"value":619},{"type":48,"value":759}," for owner operations",{"type":48,"value":761}," and ",{"type":42,"tag":67,"props":763,"children":765},{"className":764},[],[766],{"type":48,"value":627},{"type":48,"value":768}," for delegated operations via TradeCap.",{"type":42,"tag":604,"props":770,"children":771},{},[772,777],{"type":42,"tag":59,"props":773,"children":774},{},[775],{"type":48,"value":776},"Cap limit: 1,000 total capabilities per BalanceManager",{"type":48,"value":778}," (across TradeCap, DepositCap, and WithdrawCap combined). At scale, this limit constrains how many delegated traders a single BalanceManager can support — plan for multiple BalanceManagers if you need more than 1,000 delegated accounts.",{"type":42,"tag":604,"props":780,"children":781},{},[782,794,796,802,804,809,811,817],{"type":42,"tag":59,"props":783,"children":784},{},[785,786,792],{"type":48,"value":752},{"type":42,"tag":67,"props":787,"children":789},{"className":788},[],[790],{"type":48,"value":791},"_v2",{"type":48,"value":793}," variants for functions that have them.",{"type":48,"value":795}," The unsuffixed originals (e.g., ",{"type":42,"tag":67,"props":797,"children":799},{"className":798},[],[800],{"type":48,"value":801},"new_with_custom_owner_caps",{"type":48,"value":803},") are deprecated stubs that abort. Always use the ",{"type":42,"tag":67,"props":805,"children":807},{"className":806},[],[808],{"type":48,"value":791},{"type":48,"value":810}," suffix (e.g., ",{"type":42,"tag":67,"props":812,"children":814},{"className":813},[],[815],{"type":48,"value":816},"new_with_custom_owner_caps_v2",{"type":48,"value":818},").",{"type":42,"tag":170,"props":820,"children":822},{"id":821},"common-mistakes",[823],{"type":48,"value":824},"Common mistakes",{"type":42,"tag":600,"props":826,"children":827},{},[828,854,864,874,898,938],{"type":42,"tag":604,"props":829,"children":830},{},[831,836,838,844,846,852],{"type":42,"tag":59,"props":832,"children":833},{},[834],{"type":48,"value":835},"Wrong type parameter order.",{"type":48,"value":837}," Passing ",{"type":42,"tag":67,"props":839,"children":841},{"className":840},[],[842],{"type":48,"value":843},"\u003CUSDC, SUI>",{"type":48,"value":845}," when the pool is ",{"type":42,"tag":67,"props":847,"children":849},{"className":848},[],[850],{"type":48,"value":851},"\u003CSUI, USDC>",{"type":48,"value":853}," causes a type mismatch error.",{"type":42,"tag":604,"props":855,"children":856},{},[857,862],{"type":42,"tag":59,"props":858,"children":859},{},[860],{"type":48,"value":861},"Forgetting to return the FlashLoan.",{"type":48,"value":863}," The transaction compiles but aborts at runtime because the hot potato cannot be dropped.",{"type":42,"tag":604,"props":865,"children":866},{},[867,872],{"type":42,"tag":59,"props":868,"children":869},{},[870],{"type":48,"value":871},"Trading in the same pool you borrowed from.",{"type":48,"value":873}," Flash-loaned funds are locked in the FlashLoan object and unavailable for order settlement, causing the trade to fail.",{"type":42,"tag":604,"props":875,"children":876},{},[877,889,891,896],{"type":42,"tag":59,"props":878,"children":879},{},[880,882,887],{"type":48,"value":881},"Using ",{"type":42,"tag":67,"props":883,"children":885},{"className":884},[],[886],{"type":48,"value":619},{"type":48,"value":888}," from a non-owner address.",{"type":48,"value":890}," Only the BalanceManager owner can generate an owner proof. Delegated traders must use ",{"type":42,"tag":67,"props":892,"children":894},{"className":893},[],[895],{"type":48,"value":627},{"type":48,"value":897}," with a valid TradeCap.",{"type":42,"tag":604,"props":899,"children":900},{},[901,920,922,928,930,936],{"type":42,"tag":59,"props":902,"children":903},{},[904,906,912,914,919],{"type":48,"value":905},"Forgetting ",{"type":42,"tag":67,"props":907,"children":909},{"className":908},[],[910],{"type":48,"value":911},"ctx",{"type":48,"value":913}," on ",{"type":42,"tag":67,"props":915,"children":917},{"className":916},[],[918],{"type":48,"value":627},{"type":48,"value":683},{"type":48,"value":921}," The function takes ",{"type":42,"tag":67,"props":923,"children":925},{"className":924},[],[926],{"type":48,"value":927},"(balance_manager, trade_cap, ctx)",{"type":48,"value":929}," — omitting ",{"type":42,"tag":67,"props":931,"children":933},{"className":932},[],[934],{"type":48,"value":935},"ctx: &TxContext",{"type":48,"value":937}," causes a compilation error.",{"type":42,"tag":604,"props":939,"children":940},{},[941,946,948,953,955,961,963,968],{"type":42,"tag":59,"props":942,"children":943},{},[944],{"type":48,"value":945},"Calling deprecated unsuffixed functions.",{"type":48,"value":947}," Functions like ",{"type":42,"tag":67,"props":949,"children":951},{"className":950},[],[952],{"type":48,"value":801},{"type":48,"value":954}," are stubs that ",{"type":42,"tag":67,"props":956,"children":958},{"className":957},[],[959],{"type":48,"value":960},"abort 1337",{"type":48,"value":962},". Use the ",{"type":42,"tag":67,"props":964,"children":966},{"className":965},[],[967],{"type":48,"value":791},{"type":48,"value":969}," variant instead.",{"items":971,"total":1123},[972,988,999,1009,1024,1042,1054,1067,1080,1087,1098,1109],{"slug":973,"name":973,"fn":974,"description":975,"org":976,"tags":977,"stars":985,"repoUrl":986,"updatedAt":987},"move-bytecode-comprehension","analyze and disassemble Move bytecode","Use when reading or reasoning about compiled Move bytecode or `sui move disassemble` output. Mental model for the binary format, what survives compilation (and what's lost), and how to read disassembly soundly. Trigger on \"what does this package do?\", \"read this .mv module\", \"interpret this disassembly\", or whenever an analysis needs to interpret bytecode faithfully.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[978,981,984],{"name":979,"slug":980,"type":15},"Code Analysis","code-analysis",{"name":982,"slug":983,"type":15},"Engineering","engineering",{"name":14,"slug":8,"type":15},7724,"https:\u002F\u002Fgithub.com\u002FMystenLabs\u002Fsui","2026-07-16T05:59:32.904886",{"slug":989,"name":989,"fn":990,"description":991,"org":992,"tags":993,"stars":985,"repoUrl":986,"updatedAt":998},"official-sui-skills","access official Sui development resources","Pointer to the official Mysten Labs skills for building on Sui — language fundamentals, object model, PTBs, SDKs, publishing, upgrades, frontend integration, accessing on-chain data. Maintained upstream at github.com\u002FMystenLabs\u002Fskills; pinned to the same ref the audit catalog derives from (see maintenance\u002FUPSTREAMS.md). Trigger on \"build a contract\", \"publish a package\", \"upgrade a module or package\", \"use the TypeScript SDK\", \"write a PTB\", \"set up a Sui client\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[994,997],{"name":995,"slug":996,"type":15},"Documentation","documentation",{"name":14,"slug":8,"type":15},"2026-07-16T06:00:59.641382",{"slug":1000,"name":1000,"fn":1001,"description":1002,"org":1003,"tags":1004,"stars":985,"repoUrl":986,"updatedAt":1008},"sui-and-move-tools","disassemble Sui Move bytecode","Use to get bytecode for a deployed Sui package and produce a disassembled working view. One GraphQL call fetches every module's raw bytecode bytes; `sui move disassemble` (already on the system, running `sui prompt`) produces `.asm` files for analysis. Trigger on \"fetch this package's bytecode\", \"get me the .mv for package X\", \"disassemble this package\", or \"I need to read a deployed Sui package\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1005,1006,1007],{"name":979,"slug":980,"type":15},{"name":982,"slug":983,"type":15},{"name":14,"slug":8,"type":15},"2026-07-16T06:02:25.3633",{"slug":1010,"name":1010,"fn":1011,"description":1012,"org":1013,"tags":1014,"stars":985,"repoUrl":986,"updatedAt":1023},"sui-move-security-review","audit Sui Move smart contracts","Use when auditing, reviewing, or hunting for vulnerabilities in Move code on Sui. Applies equally to source code (.move files) and to disassembly of compiled bytecode (on-chain packages). A checklist of invariants whose VIOLATION causes exploitable bugs: access control & capabilities, struct abilities & type safety, object lifecycle & ownership, shared-object and PTB attack surface, dynamic fields & collections, arithmetic & coins, init\u002FOTW\u002Fpackage upgrades, hot-potato composability, time & on-chain randomness, and test-only code leakage. Trigger on \"audit this Move code\", \"find vulnerabilities in this Sui contract\", \"security review\", \"is this package safe?\", \"I suspect there's a bug in X\", \"something is wrong with this contract\", or when reasoning about whether a Move function can be abused.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1015,1018,1021,1022],{"name":1016,"slug":1017,"type":15},"Code Review","code-review",{"name":1019,"slug":1020,"type":15},"Security","security",{"name":23,"slug":24,"type":15},{"name":14,"slug":8,"type":15},"2026-07-16T06:02:55.691149",{"slug":1025,"name":1025,"fn":1026,"description":1027,"org":1028,"tags":1029,"stars":1039,"repoUrl":1040,"updatedAt":1041},"memwal","integrate Walrus Memory SDK","Walrus Memory SDK — portable agent memory that works across apps, sessions, and workflows.\n\nUse when users say:\n- \"add memory to my app\"\n- \"portable agent memory\"\n- \"integrate Walrus Memory\"\n- \"AI agent memory\"\n- \"memory across agents\"\n- \"Walrus memory storage\"\n- \"setup Walrus Memory\"\n- \"recall memories\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1030,1033,1036],{"name":1031,"slug":1032,"type":15},"Agents","agents",{"name":1034,"slug":1035,"type":15},"Memory","memory",{"name":1037,"slug":1038,"type":15},"SDK","sdk",57,"https:\u002F\u002Fgithub.com\u002FMystenLabs\u002FMemWal","2026-08-20T03:29:22.543459",{"slug":1043,"name":1043,"fn":1044,"description":1045,"org":1046,"tags":1047,"stars":25,"repoUrl":26,"updatedAt":1053},"accessing-data","read data from the Sui network","How to read data from the Sui network. Use when choosing or implementing a data access strategy — queries for on-chain state, indexing pipelines, historical lookups, event subscriptions, cross-chain reads, or off-chain blob storage. Covers the two live Sui APIs (gRPC and GraphQL RPC), the Archival Store, the General-Purpose Indexer, the `sui-indexer-alt` custom indexing framework, and Walrus for off-chain blobs.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1048,1051,1052],{"name":1049,"slug":1050,"type":15},"Data Analysis","data-analysis",{"name":14,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-08-01T05:44:32.775598",{"slug":1055,"name":1055,"fn":1056,"description":1057,"org":1058,"tags":1059,"stars":25,"repoUrl":26,"updatedAt":1066},"composable-move-functions","design composable Sui Move functions","Use when writing Move functions on Sui, especially public APIs. Applies to function visibility (public vs entry), parameter ordering, and return patterns. Use whenever designing function signatures or deciding whether functions should transfer objects or return them.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1060,1063,1064,1065],{"name":1061,"slug":1062,"type":15},"API Development","api-development",{"name":23,"slug":24,"type":15},{"name":14,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-16T06:02:49.198495",{"slug":1068,"name":1068,"fn":1069,"description":1070,"org":1071,"tags":1072,"stars":25,"repoUrl":26,"updatedAt":1079},"deepbook-margin","build margin trading applications on Sui","DeepBook Margin leveraged trading on Sui. Use when building margin trading applications, understanding leveraged positions, risk ratios, liquidation mechanics, interest rate models, MarginManager lifecycle, or integrating margin trading into a protocol. Also use when the user asks about borrowing against collateral on DeepBook, margin pool parameters, or the differences between spot and margin trading.\nFor spot trading and the DeepBook SDK, see the `deepbook-sdk` skill. For DeepBook architecture and contract addresses, see the `deepbook-overview` skill. For Move smart contract integration, see the `deepbook-move` skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1073,1076,1077,1078],{"name":1074,"slug":1075,"type":15},"Finance","finance",{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},"2026-08-24T03:57:04.577326",{"slug":4,"name":4,"fn":5,"description":6,"org":1081,"tags":1082,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1083,1084,1085,1086],{"name":23,"slug":24,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":1088,"name":1088,"fn":1089,"description":1090,"org":1091,"tags":1092,"stars":25,"repoUrl":26,"updatedAt":1097},"deepbook-overview","explain DeepBook V3 architecture and concepts","High-level overview of DeepBook V3 on Sui — architecture, key concepts, integration models, contract addresses, supported coins, and pool information. Use when explaining DeepBook to someone new, comparing integration approaches (Move vs SDK vs read-only), looking up mainnet\u002Ftestnet contract addresses, or understanding the Pool\u002FBook\u002FState\u002FVault design.\nFor TypeScript SDK usage and trading, see the `deepbook-sdk` skill. For Move smart contract integration, see the `deepbook-move` skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1093,1094,1095,1096],{"name":995,"slug":996,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},"2026-08-24T03:57:01.535714",{"slug":1099,"name":1099,"fn":1100,"description":1101,"org":1102,"tags":1103,"stars":25,"repoUrl":26,"updatedAt":1108},"deepbook-predict","build prediction market applications on Sui","DeepBook Predict — expiry-based prediction market protocol on Sui. Use when building prediction market applications, minting binary or vertical range positions, understanding oracle lifecycle, working with PredictManager accounts, or integrating vault liquidity (PLP). Also use when the user asks about DeepBook binary options, range positions, DUSDC, OracleSVI, or settlement.\nNote: DeepBook Predict is currently on Testnet only. Smart contracts may change before Mainnet deployment.\nFor spot trading, see the `deepbook-sdk` skill. For margin trading, see the `deepbook-margin` skill. For DeepBook architecture, see the `deepbook-overview` skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1104,1105,1106,1107],{"name":1074,"slug":1075,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},"2026-08-24T03:57:04.953545",{"slug":1110,"name":1110,"fn":1111,"description":1112,"org":1113,"tags":1114,"stars":25,"repoUrl":26,"updatedAt":1122},"deepbook-sdk","build trading applications with DeepBook SDK","DeepBook V3 TypeScript SDK integration. Use when building trading applications, bots, or scripts that interact with DeepBook pools using the @mysten\u002Fdeepbook-v3 SDK. Covers client setup, BalanceManager lifecycle, placing limit and market orders, swaps, querying order books, order management, and fee handling.\nFor DeepBook architecture and contract addresses, see the `deepbook-overview` skill. For Move smart contract integration, see the `deepbook-move` skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1115,1116,1117,1118,1121],{"name":1037,"slug":1038,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":1119,"slug":1120,"type":15},"TypeScript","typescript",{"name":17,"slug":18,"type":15},"2026-08-24T03:57:02.735676",42,{"items":1125,"total":1175},[1126,1132,1139,1146,1153,1160,1167],{"slug":1043,"name":1043,"fn":1044,"description":1045,"org":1127,"tags":1128,"stars":25,"repoUrl":26,"updatedAt":1053},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1129,1130,1131],{"name":1049,"slug":1050,"type":15},{"name":14,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":1055,"name":1055,"fn":1056,"description":1057,"org":1133,"tags":1134,"stars":25,"repoUrl":26,"updatedAt":1066},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1135,1136,1137,1138],{"name":1061,"slug":1062,"type":15},{"name":23,"slug":24,"type":15},{"name":14,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":1068,"name":1068,"fn":1069,"description":1070,"org":1140,"tags":1141,"stars":25,"repoUrl":26,"updatedAt":1079},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1142,1143,1144,1145],{"name":1074,"slug":1075,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1147,"tags":1148,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1149,1150,1151,1152],{"name":23,"slug":24,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":1088,"name":1088,"fn":1089,"description":1090,"org":1154,"tags":1155,"stars":25,"repoUrl":26,"updatedAt":1097},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1156,1157,1158,1159],{"name":995,"slug":996,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":1099,"name":1099,"fn":1100,"description":1101,"org":1161,"tags":1162,"stars":25,"repoUrl":26,"updatedAt":1108},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1163,1164,1165,1166],{"name":1074,"slug":1075,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":1110,"name":1110,"fn":1111,"description":1112,"org":1168,"tags":1169,"stars":25,"repoUrl":26,"updatedAt":1122},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1170,1171,1172,1173,1174],{"name":1037,"slug":1038,"type":15},{"name":14,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":1119,"slug":1120,"type":15},{"name":17,"slug":18,"type":15},25]