1"use strict";(self.webpackChunkcosmwasm_documentation=self.webpackChunkcosmwasm_documentation||[]).push([["9498"],{7438(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var n=JSON.parse('{"id":"tutorial/platform/index","title":"CosmWasm developer platform tutorials","description":"This section contains a comprehensive set of tutorials originally from the CosmWasm Developer Platform.","source":"@site/docs/tutorial/platform/index.md","sourceDirName":"tutorial/platform","slug":"/tutorial/platform/","permalink":"/tutorial/platform/","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1763731713000,"frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"Good practices","permalink":"/tutorial/writing-contracts/good-practices"},"next":{"title":"Introduction","permalink":"/tutorial/platform/intro"}}'),i=t(4848),s=t(8453);let o={},a="CosmWasm developer platform tutorials",l={},c=[{value:"Overview",id:"overview",level:2},{value:"Tutorial structure",id:"tutorial-structure",level:2},{value:"Introduction and concepts",id:"introduction-and-concepts",level:3},{value:"Learning by doing - inwards",id:"learning-by-doing---inwards",level:3},{value:"Further doing - outwards",id:"further-doing---outwards",level:3},{value:"Deploy and maintain",id:"deploy-and-maintain",level:3},{value:"Further study",id:"further-study",level:3},{value:"Getting started",id:"getting-started",level:2},{value:"Additional resources",id:"additional-resources",level:2}];function d(e){let r={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"cosmwasm-developer-platform-tutorials",children:"CosmWasm developer platform tutorials"})}),"\n",(0,i.jsx)(r.p,{children:"This section contains a comprehensive set of tutorials originally from the CosmWasm Developer Platform.\nThese tutorials provide hands-on, step-by-step guidance for learning CosmWasm smart contract development."}),"\n",(0,i.jsx)(r.h2,{id:"overview",children:"Overview"}),"\n",(0,i.jsx)(r.p,{children:"These tutorials follow a progressive learning path from fundamental concepts to advanced topics.\nEach tutorial builds upon the previous ones, making it easy to follow along and learn at your own pace."}),"\n",(0,i.jsx)(r.h2,{id:"tutorial-structure",children:"Tutorial structure"}),"\n",(0,i.jsx)(r.h3,{id:"introduction-and-concepts",children:"Introduction and concepts"}),"\n",(0,i.jsxs)(r.ol,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/intro",children:"Introduction"})," - Learn what CosmWasm is and why it exists."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/concepts-overview",children:"Concepts Overview"})," - Deep dive into CosmWasm's architecture and concepts."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/integration",children:"Integration into Cosmos"})," - Understand how CosmWasm integrates with the Cosmos SDK."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/hello-world",children:"Hello World"})," - Build your first CosmWasm smart contract."]}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"learning-by-doing---inwards",children:"Learning by doing - inwards"}),"\n",(0,i.jsxs)(r.ol,{start:"5",children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/first-contract",children:"First Contract"})," - Create your first real contract."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/first-contract-register",children:"First Execute Transaction"})," - Execute transactions with your contract."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/first-contract-query",children:"First Contract Query"})," - Query your contract's state."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/first-contract-test",children:"First Integration Test"})," - Write tests for your contract."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/first-response",children:"First Composed Response"})," - Handle complex responses."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/use-library",children:"Use the Ownable Library"})," - Leverage existing libraries."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/use-large-library",children:"Use the NFT Library"})," - Work with larger, more complex libraries."]}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"further-doing---outwards",children:"Further doing - outwards"}),"\n",(0,i.jsxs)(r.ol,{start:"12",children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/cross-contract",children:"First Contract Integration"})," - Call other contracts."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/cross-query",children:"First Contract Query Integration"})," - Query other contracts."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/contract-reply",children:"First Contract Reply Integration"})," - Handle asynchronous replies."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/cross-module",children:"First Cross-Module Integration"})," - Interact with Cosmos SDK modules."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/fund-handling",children:"Proper Funds Handling"})," - Manage tokens and funds securely."]}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"deploy-and-maintain",children:"Deploy and maintain"}),"\n",(0,i.jsxs)(r.ol,{start:"17",children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/sudo-msg",children:"First Sudo Message"})," - Implement privileged functions."]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/migration",children:"First Migration"})," - Upgrade your contracts."]}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"further-study",children:"Further study"}),"\n",(0,i.jsxs)(r.ol,{start:"19",children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.a,{href:"/tutorial/platform/best-practices",children:"Best Practices"})," - Learn recommended patterns and practices."]}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"getting-started",children:"Getting started"}),"\n",(0,i.jsx)(r.p,{children:":::warning Version compatibility"}),"\n",(0,i.jsx)(r.p,{children:"These tutorials reference specific versions of wasmd and CosmWasm:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["The tutorials use ",(0,i.jsx)(r.strong,{children:"wasmd v0.53.2"})," with some code links referencing v0.52.0/v0.53.0"]}),"\n",(0,i.jsxs)(r.li,{children:["Current documentation uses ",(0,i.jsx)(r.strong,{children:"wasmd v0.52.0"})," as an example version"]}),"\n",(0,i.jsxs)(r.li,{children:["Rust version ",(0,i.jsx)(r.strong,{children:"1.80.1"})," is used in the tutorials"]}),"\n",(0,i.jsx)(r.li,{children:"Some code references point to older versions of CosmWasm/wasmd"}),"\n"]}),"\n",(0,i.jsx)(r.p,{children:"The core concepts remain valid, but you may
1need to adjust:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Version numbers in git clone commands"}),"\n",(0,i.jsx)(r.li,{children:"CLI command syntax (which has remained relatively stable)"}),"\n",(0,i.jsx)(r.li,{children:"Some API references"}),"\n"]}),"\n",(0,i.jsx)(r.p,{children:"For the most up-to-date installation and setup instructions, see:"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"/wasmd/getting-started/setup",children:"Wasmd Setup Guide"})}),"\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"/core/installation",children:"Core Installation Guide"})}),"\n"]}),"\n",(0,i.jsx)(r.p,{children:":::"}),"\n",(0,i.jsxs)(r.p,{children:["Start with the ",(0,i.jsx)(r.a,{href:"/tutorial/platform/intro",children:"Introduction"})," to understand the fundamentals,\nthen follow the numbered sequence for the best learning experience."]}),"\n",(0,i.jsx)(r.h2,{id:"additional-resources",children:"Additional resources"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["For our own step-by-step tutorials, check out the ",(0,i.jsx)(r.a,{href:"/tutorial/writing-contracts/introduction",children:"Writing Contracts"})," section."]}),"\n",(0,i.jsxs)(r.li,{children:["For reference documentation, see the ",(0,i.jsx)(r.a,{href:"/core/introduction",children:"Core documentation"}),"."]}),"\n",(0,i.jsxs)(r.li,{children:["For other learning resources, visit the ",(0,i.jsx)(r.a,{href:"/tutorial/learning-resources",children:"Learning resources"})," page."]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>a});var n=t(6540);let i={},s=n.createContext(i);function o(e){let r=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.