"use strict";(self.webpackChunkcow_docs=self.webpackChunkcow_docs||[]).push([[2137],{45884:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>s,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>a});var n=t(85893),i=t(11151);const r={sidebar_position:6},c="Building on CoW Protocol",l={id:"cow-protocol/tutorials/building",title:"Building on CoW Protocol",description:"So, you want to build on top of CoW Protocol? Great! We are excited to see what you will build.",source:"@site/docs/cow-protocol/tutorials/building.mdx",sourceDirName:"cow-protocol/tutorials",slug:"/cow-protocol/tutorials/building",permalink:"/cow-protocol/tutorials/building",draft:!1,unlisted:!1,editUrl:"https://github.com/cowprotocol/docs/tree/main/docs/cow-protocol/tutorials/building.mdx",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"CoW Hook dApp",permalink:"/cow-protocol/tutorials/hook-dapp/"},next:{title:"Swap in Safe Apps",permalink:"/cow-protocol/tutorials/swap-in-safe-app/"}},s={},a=[{value:"Code examples",id:"code-examples",level:2},{value:"Detailed documentation",id:"detailed-documentation",level:2},{value:"Getting support",id:"getting-support",level:2}];function d(e){const o={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.h1,{id:"building-on-cow-protocol",children:"Building on CoW Protocol"}),"\n",(0,n.jsx)(o.p,{children:"So, you want to build on top of CoW Protocol? Great! We are excited to see what you will build."}),"\n",(0,n.jsx)(o.p,{children:"The protocol is designed to be flexible and therefore built on top of by the community. Here you will find resources to get started."}),"\n",(0,n.jsx)(o.h2,{id:"code-examples",children:"Code examples"}),"\n",(0,n.jsxs)(o.p,{children:["You won't find any code examples here in the documentation. Wait, what? Yes, that's right.\nWe believe that code examples are a bad way to ",(0,n.jsx)(o.em,{children:"learn"}),".\nThey are often outdated, incomplete and don't teach you how to think about the problem at hand."]}),"\n",(0,n.jsxs)(o.p,{children:["To better serve builders, we have created a ",(0,n.jsx)(o.a,{href:"https://learn.cow.fi",children:(0,n.jsx)(o.strong,{children:"comprehensive live-coding environment"})}),", with tutorials that teach you how to build on top of CoW Protocol.\nYou can find the live-coding environment at ",(0,n.jsx)(o.a,{href:"https://learn.cow.fi",children:"learn.cow.fi"}),".\nPowered by web containers, you can run your code from the comfort of your browser, without having to install anything.\nIt comes pre-configured with the CoW Protocol SDK and get's straight to the point, showing you how to:"]}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsx)(o.li,{children:"All basic order steps (quoting, signing, submitting, cancelling, application data)"}),"\n",(0,n.jsxs)(o.li,{children:["Advanced order features (Eth-Flow, Pre-signed orders, ",(0,n.jsx)(o.code,{children:"ERC-1271"})," signing)"]}),"\n"]}),"\n",(0,n.jsx)(o.h2,{id:"detailed-documentation",children:"Detailed documentation"}),"\n",(0,n.jsxs)(o.p,{children:["You've found our new documentation already! Did you know that the documentation also includes an extensive ",(0,n.jsx)(o.a,{href:"/category/technical-reference",children:"technical reference"})," covering:"]}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsxs)(o.li,{children:["JavaScript SDKs (",(0,n.jsx)(o.code,{children:"cow-sdk"})," / ",(0,n.jsx)(o.code,{children:"app-data"}),")"]}),"\n",(0,n.jsxs)(o.li,{children:["Rest APIs (",(0,n.jsx)(o.code,{children:"orderbook"}),", ",(0,n.jsx)(o.code,{children:"solver"}),", ",(0,n.jsx)(o.code,{children:"driver"}),")"]}),"\n",(0,n.jsx)(o.li,{children:"Smart contracts (all core and periphery contracts)"}),"\n"]}),"\n",(0,n.jsx)(o.h2,{id:"getting-support",children:"Getting support"}),"\n",(0,n.jsxs)(o.p,{children:["Confused? Have a question? We are here to help! Join our ",(0,n.jsx)(o.a,{href:"https://discord.com/invite/cowprotocol",children:"Discord"})," and ask your development questions in the ",(0,n.jsx)(o.code,{children:"#tech-talk"})," channel!"]})]})}function u(e={}){const{wrapper:o}={...(0,i.a)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,o,t)=>{t.d(o,{Z:()=>l,a:()=>c});var n=t(67294);const i={},r=n.createContext(i);function c(e){const o=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),n.createElement(r.Provider,{value:o},e.children)}}}]);