From 12118f6e268f418ad3aba206b7ad47ed9724683a Mon Sep 17 00:00:00 2001 From: Polkadot Wiki CI Date: Tue, 30 Jan 2024 10:31:57 +0000 Subject: [PATCH] Deploy website - based on 3c30e1732d7c975a6f0f99f3de4e8667b3d85990 --- 404.html | 4 +-- assets/js/2f3b630e.3b783533.js | 1 + assets/js/2f3b630e.4e30fa93.js | 1 - assets/js/73a7060c.0ac6e680.js | 1 + assets/js/73a7060c.61c9b86d.js | 1 - ...n.dc771d78.js => runtime~main.17eef2f2.js} | 2 +- docs/ambassadors.html | 4 +-- docs/apps-index.html | 4 +-- docs/bug-bounty.html | 4 +-- docs/build-client-index.html | 4 +-- docs/build-dapp.html | 4 +-- docs/build-data.html | 4 +-- docs/build-guide.html | 4 +-- docs/build-hackathon.html | 4 +-- docs/build-hrmp-channels.html | 4 +-- docs/build-index.html | 4 +-- docs/build-integrate-assets.html | 4 +-- docs/build-integration.html | 4 +-- docs/build-light-clients.html | 4 +-- docs/build-network-index.html | 4 +-- docs/build-network-overview.html | 4 +-- docs/build-node-interaction.html | 4 +-- docs/build-node-management.html | 4 +-- docs/build-open-source.html | 4 +-- docs/build-oracle.html | 4 +-- docs/build-pdk.html | 4 +-- docs/build-protocol-index.html | 4 +-- docs/build-protocol-info.html | 4 +-- docs/build-smart-contracts.html | 4 +-- docs/build-storage.html | 4 +-- docs/build-tools-index.html | 4 +-- docs/build-transaction-construction.html | 4 +-- docs/builders-program.html | 4 +-- docs/community-index.html | 4 +-- docs/community.html | 4 +-- docs/contributing.html | 4 +-- docs/contributors.html | 4 +-- docs/dashboards-index.html | 4 +-- docs/decentralized-futures.html | 4 +-- docs/dev-heroes.html | 4 +-- docs/explore-index.html | 4 +-- docs/faq.html | 4 +-- docs/general-index.html | 4 +-- docs/getting-started.html | 4 +-- docs/glossary.html | 4 +-- docs/governance-apps.html | 4 +-- docs/grants.html | 4 +-- docs/how-to-dyor.html | 4 +-- docs/kusama-adversarial-cheatsheet.html | 4 +-- docs/kusama-bug-bounty.html | 4 +-- docs/kusama-claims.html | 4 +-- docs/kusama-coc.html | 4 +-- docs/kusama-community.html | 4 +-- docs/kusama-getting-started.html | 4 +-- docs/kusama-index.html | 4 +-- docs/kusama-parameters.html | 4 +-- docs/kusama-social-recovery.html | 4 +-- docs/kusama-timeline.html | 4 +-- docs/learn-DOT.html | 4 +-- docs/learn-account-abstraction.html | 4 +-- docs/learn-account-advanced.html | 4 +-- docs/learn-account-multisig.html | 4 +-- docs/learn-accounts.html | 4 +-- docs/learn-advanced-index.html | 4 +-- docs/learn-architecture-index.html | 4 +-- docs/learn-architecture.html | 4 +-- docs/learn-archive-index.html | 4 +-- docs/learn-assets-index.html | 4 +-- docs/learn-assets.html | 4 +-- docs/learn-async-backing.html | 4 +-- docs/learn-auction.html | 4 +-- docs/learn-basics-index.html | 4 +-- docs/learn-bridges.html | 4 +-- docs/learn-collator.html | 4 +-- docs/learn-comparisons-avalanche.html | 4 +-- docs/learn-comparisons-cosmos.html | 4 +-- docs/learn-comparisons-ethereum-2.html | 4 +-- docs/learn-comparisons-index.html | 4 +-- docs/learn-comparisons-kusama.html | 4 +-- docs/learn-comparisons-rollups.html | 4 +-- docs/learn-comparisons.html | 4 +-- docs/learn-components-index.html | 4 +-- docs/learn-consensus.html | 4 +-- docs/learn-controller.html | 4 +-- docs/learn-crowdloans.html | 4 +-- docs/learn-cryptography.html | 4 +-- docs/learn-future-implementations-index.html | 4 +-- docs/learn-governance.html | 4 +-- docs/learn-guides-accounts-multisig.html | 4 +-- docs/learn-guides-accounts-proxy-pure.html | 4 +-- docs/learn-guides-accounts-proxy.html | 4 +-- docs/learn-guides-accounts.html | 4 +-- docs/learn-guides-assets-create.html | 4 +-- docs/learn-guides-assets-index.html | 4 +-- docs/learn-guides-assets-ledger.html | 4 +-- docs/learn-guides-bounties.html | 4 +-- docs/learn-guides-identity.html | 4 +-- docs/learn-guides-ledger.html | 4 +-- docs/learn-guides-polkadot-opengov.html | 4 +-- docs/learn-guides-staking-index.html | 4 +-- docs/learn-guides-staking-pools.html | 4 +-- docs/learn-guides-staking.html | 4 +-- docs/learn-guides-transfers.html | 4 +-- docs/learn-guides-treasury.html | 4 +-- docs/learn-guides-vault.html | 4 +-- docs/learn-hyperbridge.html | 4 +-- docs/learn-identity.html | 4 +-- docs/learn-implementations.html | 4 +-- docs/learn-index.html | 4 +-- docs/learn-inflation.html | 4 +-- docs/learn-launch.html | 4 +-- docs/learn-nft-pallets.html | 4 +-- docs/learn-nft-projects.html | 4 +-- docs/learn-nft.html | 4 +-- docs/learn-nomination-pools.html | 4 +-- docs/learn-nominator.html | 4 +-- docs/learn-parachains-faq.html | 4 +-- docs/learn-parachains-index.html | 4 +-- docs/learn-parachains-protocol.html | 4 +-- docs/learn-parachains.html | 4 +-- docs/learn-parathreads.html | 4 +-- docs/learn-participants-index.html | 4 +-- docs/learn-phragmen.html | 4 +-- docs/learn-polkadot-host.html | 4 +-- docs/learn-polkadot-js-guides.html | 4 +-- docs/learn-polkadot-opengov-index.html | 4 +-- docs/learn-polkadot-opengov-origins.html | 4 +-- docs/learn-polkadot-opengov-treasury.html | 4 +-- docs/learn-polkadot-opengov.html | 22 +++++++++++--- docs/learn-polkadot-technical-fellowship.html | 29 +++++++++++-------- docs/learn-polkadotjs-index.html | 4 +-- docs/learn-proxies-pure.html | 4 +-- docs/learn-proxies.html | 4 +-- docs/learn-redenomination.html | 4 +-- docs/learn-runtime-upgrades.html | 4 +-- docs/learn-sassafras.html | 4 +-- docs/learn-scams.html | 4 +-- docs/learn-spree.html | 4 +-- docs/learn-staking-advanced.html | 4 +-- docs/learn-staking-index.html | 4 +-- docs/learn-staking.html | 4 +-- docs/learn-system-chains.html | 4 +-- docs/learn-teleport.html | 4 +-- docs/learn-transaction-fees.html | 4 +-- docs/learn-transactions.html | 4 +-- docs/learn-treasury.html | 4 +-- docs/learn-validator.html | 4 +-- docs/learn-video-tutorials.html | 4 +-- docs/learn-wasm.html | 4 +-- docs/learn-xcm-index.html | 4 +-- docs/learn-xcm-instructions.html | 4 +-- docs/learn-xcm-pallet.html | 4 +-- docs/learn-xcm-transport.html | 4 +-- docs/learn-xcm-usecases.html | 4 +-- docs/learn-xcm.html | 4 +-- docs/learn-xcvm.html | 4 +-- docs/learn/xcm.html | 4 +-- docs/learn/xcm/config-deep-dive.html | 4 +-- docs/learn/xcm/fundamentals-fees.html | 4 +-- docs/learn/xcm/fundamentals-multiasset.html | 4 +-- docs/learn/xcm/fundamentals-summary.html | 4 +-- docs/learn/xcm/fundamentals-xcvm.html | 4 +-- docs/learn/xcm/fundamentals.html | 4 +-- .../fundamentals/multilocation-example.html | 4 +-- .../fundamentals/multilocation-junctions.html | 4 +-- .../fundamentals/multilocation-summary.html | 4 +-- .../learn/xcm/fundamentals/multilocation.html | 4 +-- docs/learn/xcm/introduction.html | 4 +-- docs/learn/xcm/journey-assets.html | 4 +-- docs/learn/xcm/journey-channels.html | 4 +-- docs/learn/xcm/journey-expectations.html | 4 +-- docs/learn/xcm/journey-fees.html | 4 +-- docs/learn/xcm/journey-holding.html | 4 +-- docs/learn/xcm/journey-locks.html | 4 +-- docs/learn/xcm/journey-origin.html | 4 +-- docs/learn/xcm/journey-queries.html | 4 +-- docs/learn/xcm/journey-register.html | 4 +-- docs/learn/xcm/journey-summary.html | 4 +-- docs/learn/xcm/journey-transact.html | 4 +-- docs/learn/xcm/journey-version.html | 4 +-- docs/learn/xcm/journey.html | 4 +-- docs/learn/xcm/journey/transfers-reserve.html | 4 +-- docs/learn/xcm/journey/transfers-summary.html | 4 +-- .../learn/xcm/journey/transfers-teleport.html | 4 +-- docs/learn/xcm/journey/transfers.html | 4 +-- docs/learn/xcm/overview-architecture.html | 4 +-- docs/learn/xcm/overview-format.html | 4 +-- docs/learn/xcm/overview-intro.html | 4 +-- docs/learn/xcm/overview-summary.html | 4 +-- docs/learn/xcm/overview-xcvm.html | 4 +-- docs/learn/xcm/overview.html | 4 +-- docs/learn/xcm/quickstart-first-look.html | 4 +-- docs/learn/xcm/quickstart-simulator.html | 4 +-- docs/learn/xcm/quickstart-summary.html | 4 +-- docs/learn/xcm/quickstart.html | 4 +-- docs/learn/xcm/reference-glossary.html | 4 +-- docs/learn/xcm/reference-xcvm-registers.html | 4 +-- docs/learn/xcm/references.html | 4 +-- docs/learn/xcm/testing.html | 4 +-- docs/ledger.html | 4 +-- docs/maintain-bootnode.html | 4 +-- docs/maintain-endpoints.html | 4 +-- docs/maintain-errors.html | 4 +-- docs/maintain-guides-async-backing.html | 4 +-- docs/maintain-guides-avoid-slashing.html | 4 +-- docs/maintain-guides-democracy.html | 4 +-- docs/maintain-guides-how-to-chill.html | 4 +-- docs/maintain-guides-how-to-join-council.html | 4 +-- ...ntain-guides-how-to-monitor-your-node.html | 4 +-- ...aintain-guides-how-to-nominate-kusama.html | 4 +-- ...ntain-guides-how-to-nominate-polkadot.html | 4 +-- ...aintain-guides-how-to-stop-validating.html | 4 +-- docs/maintain-guides-how-to-systemd.html | 4 +-- docs/maintain-guides-how-to-upgrade.html | 4 +-- ...aintain-guides-how-to-validate-kusama.html | 4 +-- ...ntain-guides-how-to-validate-polkadot.html | 4 +-- ...aintain-guides-how-to-vote-councillor.html | 4 +-- docs/maintain-guides-secure-validator.html | 4 +-- docs/maintain-guides-society-kusama.html | 4 +-- docs/maintain-guides-validator-community.html | 4 +-- docs/maintain-guides-validator-payout.html | 4 +-- docs/maintain-index.html | 4 +-- docs/maintain-networks.html | 4 +-- docs/maintain-polkadot-parameters.html | 4 +-- docs/maintain-rpc.html | 4 +-- docs/maintain-sync.html | 4 +-- docs/maintain-wss.html | 4 +-- docs/metadata.html | 4 +-- docs/multisig-apps.html | 4 +-- docs/parachains-apps.html | 4 +-- docs/polkadot-direction.html | 4 +-- docs/polkadot-v1.html | 4 +-- docs/polkadot-vault.html | 4 +-- docs/polkadot-vision-index.html | 4 +-- docs/polkadotjs-ui.html | 4 +-- docs/polkadotjs.html | 4 +-- docs/programmes-index.html | 4 +-- docs/research.html | 4 +-- docs/staking-apps.html | 4 +-- docs/staking-dashboard.html | 4 +-- docs/start-building.html | 4 +-- docs/stay-safe-index.html | 4 +-- docs/thousand-contributors.html | 4 +-- docs/thousand-validators.html | 4 +-- docs/transaction-attacks.html | 4 +-- docs/wallets-and-extensions.html | 4 +-- docs/wallets-index.html | 4 +-- docs/web3-and-polkadot.html | 4 +-- index.html | 4 +-- search.html | 4 +-- 250 files changed, 524 insertions(+), 505 deletions(-) create mode 100644 assets/js/2f3b630e.3b783533.js delete mode 100644 assets/js/2f3b630e.4e30fa93.js create mode 100644 assets/js/73a7060c.0ac6e680.js delete mode 100644 assets/js/73a7060c.61c9b86d.js rename assets/js/{runtime~main.dc771d78.js => runtime~main.17eef2f2.js} (98%) diff --git a/404.html b/404.html index 793e2d322b06..ce9777a1681e 100644 --- a/404.html +++ b/404.html @@ -19,13 +19,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/2f3b630e.3b783533.js b/assets/js/2f3b630e.3b783533.js new file mode 100644 index 000000000000..82afe2875f8d --- /dev/null +++ b/assets/js/2f3b630e.3b783533.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[9226],{47940:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var a=n(74165),o=n(15861),i=n(67294),r=n(87152),l=n(30967),s=n(67425);function p(e,t,n){return d.apply(this,arguments)}function d(){return(d=(0,o.Z)((0,a.Z)().mark((function e(t,n,o){var i,s,p,d,c;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,s=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return p=new r.U(i),e.next=21,l.G.create({provider:p});case 21:d=e.sent,(c=n.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=c[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return s=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return s=(s=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+c[0]+") in "+n);case 35:return e.abrupt("return",s);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e,t,n,a){switch(t){case"humanReadable":(0,s.HumanReadable)(e,n,a);break;case"precise":(0,s.Precise)(e,n,a);break;case"blocksToDays":(0,s.BlocksToDays)(e,a);break;case"erasToDays":(0,s.ErasToDays)(e,a,n);break;case"percentage":(0,s.Percentage)(e,a);break;case"permillToPercent":(0,s.PermillToPercent)(e,a);break;case"arrayLength":(0,s.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const h=function(e){var t=e.network,n=e.path,r=e.defaultValue,l=e.filter,s=void 0===l?void 0:l,d=(0,i.useState)(""),h=d[0],u=d[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==s?c(r.toString(),s,t,u):u(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://statemine-rpc.polkadot.io/";break;case"statemint":e="wss://statemint-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,a.Z)().mark((function e(){var o;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p(t,n,u);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==s?c(o,s,t,u):u(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(l){console.log(l)}}}),[]),h}},67425:e=>{var t="polkadot",n="kusama",a="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,l){var s=void 0;if(r===t||r===o)s=3;else{if(r!==n&&r!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=6}e=parseFloat(e),l((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(s)+" "+i[r].symbol).toString())},Precise:function(e,t,n){n(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var l=void 0;if(r===t||r===o)l=1;else{if(r!==n&&r!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=4}i((e/=l).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},42569:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>f,contentTitle:()=>g,default:()=>N,frontMatter:()=>k,metadata:()=>v,toc:()=>w});var a=n(87462),o=n(63366),i=n(67294),r=n(3905),l=n(47940),s=i.createElement("table",null,i.createElement("tbody",null,i.createElement("tr",null,i.createElement("th",null,"Lock Periods"),i.createElement("th",null,"Vote Multiplier"),i.createElement("th",null,"Length in Days")),i.createElement("tr",null,i.createElement("td",null,"0"),i.createElement("td",null,"0.1"),i.createElement("td",{id:"p0"})),i.createElement("tr",null,i.createElement("td",null,"1"),i.createElement("td",null,"1"),i.createElement("td",{id:"p1"})),i.createElement("tr",null,i.createElement("td",null,"2"),i.createElement("td",null,"2"),i.createElement("td",{id:"p2"})),i.createElement("tr",null,i.createElement("td",null,"4"),i.createElement("td",null,"3"),i.createElement("td",{id:"p4"})),i.createElement("tr",null,i.createElement("td",null,"8"),i.createElement("td",null,"4"),i.createElement("td",{id:"p8"})),i.createElement("tr",null,i.createElement("td",null,"16"),i.createElement("td",null,"5"),i.createElement("td",{id:"p16"})),i.createElement("tr",null,i.createElement("td",null,"32"),i.createElement("td",null,"6"),i.createElement("td",{id:"p32"})))),p=["p0","p1","p2","p4","p8","p16","p32"],d={p0:0,p1:7,p2:14,p4:28,p8:56,p16:112,p32:224},c={p0:0,p1:7,p2:14,p4:28,p8:56,p16:112,p32:224};function h(e){p.forEach((function(t){var n=document.getElementById(t);"polkadot"===e?n.innerText=d[t]:"kusama"===e&&(n.innerText=c[t])}))}const u=function(){var e=(0,i.useState)("");return e[0],e[1],(0,i.useEffect)((function(){var e=document.title;"Governance V1 \xb7 Polkadot Wiki"===e||"Introduction to Polkadot OpenGov \xb7 Polkadot Wiki"===e?h("polkadot"):"Governance V1 \xb7 Guide"===e||"Introduction to Polkadot OpenGov \xb7 Guide"===e?h("kusama"):console.log("Unknown wiki/guide type")}),[]),s};var m=["components"],k={id:"learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",sidebar_label:"Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",keywords:["governance","referenda","proposal","voting","endorse"],slug:"../learn-polkadot-opengov"},g=void 0,v={unversionedId:"learn/learn-polkadot-opengov",id:"learn/learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",source:"@site/../docs/learn/learn-polkadot-opengov.md",sourceDirName:"learn",slug:"/learn-polkadot-opengov",permalink:"/docs/learn-polkadot-opengov",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-polkadot-opengov.md",tags:[],version:"current",lastUpdatedBy:"Radha",lastUpdatedAt:1706607769,formattedLastUpdatedAt:"Jan 30, 2024",frontMatter:{id:"learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",sidebar_label:"Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",keywords:["governance","referenda","proposal","voting","endorse"],slug:"../learn-polkadot-opengov"},sidebar:"docs",previous:{title:"Polkadot OpenGov",permalink:"/docs/learn-polkadot-opengov-index"},next:{title:"OpenGov Origins",permalink:"/docs/learn-polkadot-opengov-origins"}},f={},w=[{value:"Premise",id:"premise",level:2},{value:"Summary",id:"summary",level:2},{value:"Gov1 vs. Polkadot OpenGov",id:"gov1-vs-polkadot-opengov",level:2},{value:"Proposals",id:"proposals",level:2},{value:"Cancelling and Blacklisting",id:"cancelling-and-blacklisting",level:3},{value:"Referenda",id:"referenda",level:2},{value:"Referenda Timeline",id:"referenda-timeline",level:3},{value:"Origins and Tracks",id:"origins-and-tracks",level:3},{value:"Voluntary Locking (Conviction Voting)",id:"voluntary-locking-conviction-voting",level:3},{value:"Approval and Support",id:"approval-and-support",level:3},{value:"Enactment",id:"enactment",level:3},{value:"Voting on a Referendum",id:"voting-on-a-referendum",level:2},{value:"Voting Locks",id:"voting-locks",level:3},{value:"Voting Without Conviction",id:"voting-without-conviction",level:4},{value:"Voting with Conviction",id:"voting-with-conviction",level:4},{value:"Multirole Delegation",id:"multirole-delegation",level:3},{value:"Resources",id:"resources",level:2}],b={toc:w},y="wrapper";function N(e){var t=e.components,i=(0,o.Z)(e,m);return(0,r.kt)(y,(0,a.Z)({},b,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{title:"The content in this document is subject to change",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"The governance protocol has already undergone iterations (see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance V1"),"). Governance is a constantly evolving protocol at this stage\nin its lifecycle."),(0,r.kt)("p",{parentName:"admonition"},"For technical information about Polkadot OpenGov and how to interact with it, please refer to this\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"dedicated Wiki page"),"."),(0,r.kt)("p",{parentName:"admonition"},"For additional support about Polkadot OpenGov see the\n",(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/65000105211"},"dedicated support pages"),".")),(0,r.kt)("admonition",{title:"Polkadot Delegation Dashboard",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See the video tutorial below to easily delegate your votes to somebody else using the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},"Polkadot Delegation Dashboard"),"."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/RapBYZc5ZPo/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"Delegation Dashboard Tutorial")))),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"If you become a nomination pool member or a pool admin, you cannot participate in Governance with\nthe bonded tokens in the pool, as they are held in a\n",(0,r.kt)("a",{parentName:"strong",href:"/docs/learn-account-advanced#system-accounts"},"system account"),"."))),(0,r.kt)("p",null,"Polkadot uses a sophisticated governance\nmechanism that allows it to evolve gracefully overtime at the ultimate behest of its assembled\nstakeholders. The stated goal is to ensure that the majority of the stake can always command the\nnetwork."),(0,r.kt)("p",null,"Polkadot brings together various novel\nmechanisms, including an amorphous (abstract) form of state-transition function stored on-chain\ndefined in a platform-agnostic language (i.e. ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-wasm"},"WebAssembly"),"), and several on-chain\nvoting mechanisms such as referenda and batch approval voting. All changes to the protocol must be\nagreed upon by stake-weighted referenda."),(0,r.kt)("h2",{id:"premise"},"Premise"),(0,r.kt)("p",null,"Polkadot's first governance system\n(",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance V1"),") included three main components."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#technical-committee"},"Technical Committee"),": A technocratic committee to\nmanage upgrade timelines."),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#council"},"Council"),': An approval-voted, elected executive "government" to\nmanage parameters, admin, and spending proposals.'),(0,r.kt)("li",{parentName:"ul"},"The Public: All token holders.")),(0,r.kt)("p",null,"Over the first few years of operation, Governance V1 ensured the appropriate usage of treasury funds\nand enabled timely upgrades and fixes. Like most early technologies, protocols must evolve as they\nmature to improve their shortcomings and keep up with modern advancements. In Governance V1, all\nreferenda carried the same weight as only one referendum could be voted on at a time (except for\nemergency proposals), and the voting period could last multiple weeks. Also, an\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#alternating-voting-timetable"},"alternating voting timetable")," allowed to vote\neither for a public referendum or a council motion every\n28 days. This resulted in the system favoring\ncareful consideration of very few proposals instead of broad consideration of many."),(0,r.kt)("p",null,"Polkadot OpenGov changes how the practical means of day-to-day decisions are made, making the\nrepercussions of referenda better scoped and agile to increase the number of collective decisions\nthe system can make at any given time."),(0,r.kt)("p",null,"The following content is focused on what the new Polkadot OpenGov version brings to the governance\non Polkadot, and on the main differences with\nprevious governance versions. We recommend learning about ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance v1")," to\nbetter understand the need for and the direction of Polkadot OpenGov."),(0,r.kt)("h2",{id:"summary"},"Summary"),(0,r.kt)("p",null,"In Governance v1, active token holders (public) and the Council together administrated network's\nupgrade decisions. Whether the public or the council initiated the proposal, it would eventually\nhave to go through a referendum to let all holders (weighted by stake and conviction) make the\ndecision."),(0,r.kt)("p",null,"The Council fulfilled its role as the representative of the public, guardian of the treasury and\ninitiator of legislation, but it was often seen as a centralized entity. To further decentralize\nPolkadot, Polkadot OpenGov proposes the\nfollowing main changes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Migrating all responsibilities of the Council to the public via a direct democracy voting system."),(0,r.kt)("li",{parentName:"ul"},"Dissolving the current ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#council"},"Council")," collective"),(0,r.kt)("li",{parentName:"ul"},"Allowing users to delegate voting power in more ways to community members"),(0,r.kt)("li",{parentName:"ul"},"Dissolving the ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#technical-committee"},"Technical Committee")," and establishing\nthe broader ",(0,r.kt)("a",{parentName:"li",href:"#the-technical-fellowship"},"Polkadot Technical Fellowship"))),(0,r.kt)("p",null,"The figure below shows an overview of Polkadot OpenGov's structure."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#summary"},"this page")," for a comparison with the structure of Governance V1.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-overview",src:n(40176).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"In Polkadot OpenGov, all the proposals are initiated by the public. The proposal will enter a\nLead-in period (for more information, see ",(0,r.kt)("a",{parentName:"p",href:"#referenda-timeline"},"Referenda Timeline"),"), after which it\nwill follow a specific ",(0,r.kt)("a",{parentName:"p",href:"#origins-and-tracks"},"Track")," which has a dedicated Origin. There are\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"15 Origins"),", each with a different\ntrack. The origins and tracks parameters are preset values that set the duration of a referendum as\nwell as how many referenda can be voted on simultaneously. For example, a treasury proposal can now\nbe submitted in different tracks depending on the amount requested. A proposal for a small tip will\nneed to be submitted in the Small Tipper track, while a proposal requiring substantial funds will\nneed to be submitted to the Medium or Big Spender track."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"#the-technical-fellowship"},"Polkadot Technical Fellowship")," can decide to\n",(0,r.kt)("a",{parentName:"p",href:"#whitelisting"},"whitelist")," a proposal that will be enacted through the Whitelist Caller origin.\nThose proposals will have a shorter Lead-in, Confirmation, and Enactment period when compared to the\nRoot Origin track."),(0,r.kt)("p",null,"Each track has its own preset ",(0,r.kt)("a",{parentName:"p",href:"#approval-and-support"},"Approval and Support")," curves which are based\non the origin's privileges. When both the approval and support criteria are satisfied for a specific\nperiod (called the confirmation period), the referenda passes and will be executed after the\nenactment period."),(0,r.kt)("p",null,"All referenda within each track and across tracks can be voted on simultaneously (assuming track\nmaximum capacity is not reached)."),(0,r.kt)("p",null,"Polkadot OpenGov also comes with multi-role delegations where the token holder can assign voting\npower on different tracks to different entities who are experts in judging the referenda submitted\nto those tracks. For example, suppose a token holder does not have the technical background to\nconsider the merits and vote on the referenda submitted to the Root track. In that case, they can\ndelegate their voting power just for the Root track to a trusted expert who (according to them) acts\nin the best interest of the network protocol. In this way, token holders do not need to be\nup-to-date with governance matters and can still make their votes count through delegates."),(0,r.kt)("admonition",{title:"Delegation Dashboard",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"To easily delegate your votes you can use the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},"Polkadot Delegation Dashboard"),". See\n",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"this video tutorial")," to know more about the dashboard\nand learn how to use it.")),(0,r.kt)("h2",{id:"gov1-vs-polkadot-opengov"},"Gov1 vs. Polkadot OpenGov"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Governance V1"),(0,r.kt)("th",{parentName:"tr",align:null},"Polkadot OpenGov"),(0,r.kt)("th",{parentName:"tr",align:null},"Polkadot OpenGov Benefit"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Includes the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#council"},"Council"),", the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#technical-committee"},"Technical Committee"),", and the Public (i.e. token holders)."),(0,r.kt)("td",{parentName:"tr",align:null},"Includes the Public and the ",(0,r.kt)("a",{parentName:"td",href:"#the-technical-fellowship"},"Technical Fellowship"),"."),(0,r.kt)("td",{parentName:"tr",align:null},"Simpler and more decentralized structure.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Referenda executed only from one origin (Root). Referenda in this origin must be carefully scrutinized. Therefore, there is only one track (i.e. only one referendum at a time can be executed)."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda executed from ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"multiple origins"),", each with a different track that shapes proposals\u2019 timelines. Depending on the origin, multiple referenda within the same track are possible."),(0,r.kt)("td",{parentName:"tr",align:null},"Possibility to categorize proposals (based on importance and urgency) and execute them simultaneously within and between origin tracks.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Proposals can be submitted by either the Council or the Public."),(0,r.kt)("td",{parentName:"tr",align:null},"The public submits proposals."),(0,r.kt)("td",{parentName:"tr",align:null},"More democratic.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Uses ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#adaptive-quorum-biasing"},"Adaptive Quorum Biasing")," to define the approval threshold based on turnout. Given the same turnout, council-initiated referenda require fewer Aye votes to pass compared to public referenda."),(0,r.kt)("td",{parentName:"tr",align:null},"Uses origin-specific approval and support curves defining the amount of approval and support (i.e. turnout) needed as a function of time. The same curves are applied to all referenda within the same origin track."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda timeline depends on the origin and not on who submitted the proposal (i.e. Council or Public). This is a more democratic and equalitarian system.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Uses ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#alternating-voting-timetable"},"alternating voting timetable")," allowing voters to cast votes for either council or public referenda every 28 eras."),(0,r.kt)("td",{parentName:"tr",align:null},"Multiple referenda can be voted at the same time."),(0,r.kt)("td",{parentName:"tr",align:null},"More flexible and agile governance system.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Except for emergency proposals, all referenda have fixed voting and enactment periods of 28 eras."),(0,r.kt)("td",{parentName:"tr",align:null},"Periods' length is customizable and has pre-defined limits for each origin. The same limits apply to all tracks with the same origin. For example, the track in the origin Root will be longer than the track within the Small Tipper origin."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda\u2019s timeline is tailored to their importance and urgency. Flexible enactment period based on origin.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Emergency proposals turned referenda can be simultaneously voted on and executed with other referenda and have shorter enactment periods. They must be proposed by the Technical Committee and approved by the Council."),(0,r.kt)("td",{parentName:"tr",align:null},"No emergency proposals. The Technical Fellowship can whitelist proposals that will have their origin with shorter lead-in, confirmation, and enactment periods."),(0,r.kt)("td",{parentName:"tr",align:null},"The Technical Fellowship is a more decentralized entity when compared to the Technical Committee. Whitelisting a proposal requires a majority of approval from the fellowship.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Only the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#endorsing-proposals"},"most-endorsed proposal")," is able to transit from Launch to Voting period. The time for the transition is indeterminate, and (with no possibility of canceling endorsements) proposers and endorsers might wait a long time before a referendum is tabled, and getting their deposits back."),(0,r.kt)("td",{parentName:"tr",align:null},"All proposals will eventually be voted on (given track capacity and deposit are met and the Lead-in period has ended)."),(0,r.kt)("td",{parentName:"tr",align:null},"It allows all proposals to get a chance to be voted on in a timely predictive manner.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Only ",(0,r.kt)("em",{parentName:"td"},"aye")," or ",(0,r.kt)("em",{parentName:"td"},"nay")," votes possible."),(0,r.kt)("td",{parentName:"tr",align:null},"Voters can have the additional voting options of abstaining or splitting votes."),(0,r.kt)("td",{parentName:"tr",align:null},"More ways to engage in voting and increase turnout.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Voters can decide to delegate votes to another account."),(0,r.kt)("td",{parentName:"tr",align:null},"Voters can use ",(0,r.kt)("a",{parentName:"td",href:"#multirole-delegation"},"multirole delegations")," and delegate votes to different accounts depending on origins."),(0,r.kt)("td",{parentName:"tr",align:null},"More agile delegations tailored by expertise.")))),(0,r.kt)("h2",{id:"proposals"},"Proposals"),(0,r.kt)("admonition",{title:"Starting a proposal in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#proposals"},"this page")," for more information about starting referenda in\nGovernance v1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, anyone can start a referendum at any time and do so as often as they wish.\nPrevious features were expanded and improved, most notably\n",(0,r.kt)("a",{parentName:"p",href:"#origins-and-tracks"},(0,r.kt)("strong",{parentName:"a"},"Origins and Tracks"))," help aid in the flow and processing of the submitted\nreferenda."),(0,r.kt)("h3",{id:"cancelling-and-blacklisting"},"Cancelling and Blacklisting"),(0,r.kt)("admonition",{title:"Cancelling Referenda in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#cancelling-proposals"},"this page")," for more information about cancelling\nreferenda in Governance v1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, there is a special operation called ",(0,r.kt)("strong",{parentName:"p"},"Cancellation")," for intervening with a\nproposal already being voted on. The operation will immediately reject an ongoing referendum\nregardless of its status. There is also a provision to ensure the deposit of the proposer is slashed\nif the proposal is malicious or spam."),(0,r.kt)("p",null,"Cancellation is a governance operation the network must vote on to be executed. Cancellation comes\nwith ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#referendum-canceller"},"its own Origin and Track")," which has\na low lead-time and Approval/Support curves with slightly sharper reductions in their thresholds for\npassing, given that it is invoked with a sense of urgency."),(0,r.kt)("p",null,"For more information about how to cancel a referendum see the\n",(0,r.kt)("a",{parentName:"p",href:"./learn-guides-polkadot-opengov#cancel-or-kill-a-referendum"},"advanced how-to guides"),"."),(0,r.kt)("admonition",{title:"Blacklisting",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Blacklisting referenda in Polkadot OpenGov is\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#blacklisting-proposals"},"the same as in Governance v1"),".")),(0,r.kt)("h2",{id:"referenda"},"Referenda"),(0,r.kt)("admonition",{title:"Public and Council Referenda in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"With the Council's dissolution, ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#council-referenda"},"council referenda")," are no\nlonger present in Polkadot OpenGov."),(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#public-referenda"},"this page")," for more information about public referenda\nin Governance v1.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"In Polkadot OpenGov all referenda are public.")," The\n",(0,r.kt)("a",{parentName:"p",href:"#the-technical-fellowship"},"Technical Fellowship")," has the option to ",(0,r.kt)("a",{parentName:"p",href:"#whitelisting"},"whitelist"),"\nreferenda that can be then proposed in the track with\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#whitelisted-caller"},"whitelist origin"),"."),(0,r.kt)("h3",{id:"referenda-timeline"},"Referenda Timeline"),(0,r.kt)("admonition",{title:"Voting timetable in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#referenda-timeline"},"this page")," for more information about the voting\ntimetable in Governance v1.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-timeline",src:n(1671).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"The figure above provides a summary view of the referenda timeline for Polkadot OpenGov."),(0,r.kt)("p",null,"In (1), when a referendum is initially created, the community can immediately vote on it. However,\nit is not immediately in a state where it can end or otherwise have its votes counted, be approved,\nand ultimately enacted. Instead, the proposal will stay within a ",(0,r.kt)("strong",{parentName:"p"},"Lead-in Period")," until it\nfulfills three criteria:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'Proposals must stay within the lead-in period for a pre-defined minimum amount of time. This helps\nmitigate against the possibility of "decision sniping" where an attacker controlling a substantial\namount of voting power might seek to have a proposal passed immediately after proposing, not\nallowing the overall voting population adequate time to consider and participate.'),(0,r.kt)("li",{parentName:"ul"},"There must be enough room for the decision within the origin. Different origins have their limit\non the number of proposals that can be decided simultaneously. Tracks that have more potent\nabilities will have lower limits. For example, the Root level Origin has a limit of one, implying\nthat only a single proposal may be decided on at once."),(0,r.kt)("li",{parentName:"ul"},"A decision deposit must be submitted. Creating a referendum is cheap as the deposit value consists\nof only the value required for the on-chain storage needed to track it. But, having a referendum\nreviewed and decided upon carries the risk of using up the limited spots available in the\nreferenda queue. Having a more significant but refundable deposit requirement makes sense to help\nmitigate spam. Failing to submit the decision deposit will lead to a referendum ",(0,r.kt)("em",{parentName:"li"},"timeout"),".")),(0,r.kt)("p",null,"Until they are in the lead-in period, proposals remain undecided. Once the criteria above are met,\nthe referendum moves to the ",(0,r.kt)("em",{parentName:"p"},"deciding")," state. The votes of the referendum are now counted towards\nthe outcome."),(0,r.kt)("p",null,"In (2), the proposal enters the ",(0,r.kt)("strong",{parentName:"p"},"Decision Period")," where votes can be cast. For a proposal to be\napproved, votes must satisfy the approval and support criteria for at least the ",(0,r.kt)("strong",{parentName:"p"},"Confirmation\nPeriod"),"; otherwise, the proposal is automatically rejected. A rejected proposal can be resubmitted\nanytime and as many times as needed."),(0,r.kt)("p",null,"In (3), approved proposals will enter the ",(0,r.kt)("strong",{parentName:"p"},"Enactment Period"),", after which proposed changes will be\nexecuted."),(0,r.kt)("p",null,"Note how the length of the lead-in, decision, confirmation, and enactment periods vary depending on\nthe origin. Root origin has more extended periods than the other origins. Also, the number of\nreferenda within each track differs, with the Root origin track only accepting one. proposal at a\ntime (see below)."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-track-capacity",src:n(67506).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"This directly affects the number of proposals that can be voted on and executed simultaneously.\nContinuing the comparison between Root and Small Tipper, Small Tipper will allow many proposals on\nits track to be executed simultaneously. In contrast, Root will allow only one proposal in its\ntrack. Once the track capacity is filled, additional proposals in the lead-in period will queue\nuntil place is available to enter the decision period."),(0,r.kt)("h3",{id:"origins-and-tracks"},"Origins and Tracks"),(0,r.kt)("p",null,"An ",(0,r.kt)("strong",{parentName:"p"},"Origin")," is a specific level of privilege that will determine the ",(0,r.kt)("strong",{parentName:"p"},"Track")," of all referenda\nexecuted with that origin. The track is basically a pipeline in which the proposal lives and\nproceeds and is independent from other origins' tracks. The proposer of the referenda now selects an\nappropriate Origin for their request based on the proposal\u2019s requirements."),(0,r.kt)("p",null,"Although the track structure is the same for all origins, track parameters are not. Such parameters\ninclude:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Maximum Deciding or Capacity"),": the limit for the number of referenda that can be decided at\nonce (i.e. the number of tracks within each origin)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Decision deposit"),": the amount of funds that must be placed on deposit to enter the Decision\nPeriod (note that more requirements must be met to enter the Decision Period)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Preparation Period"),": the minimum amount of voting time needed before entering the Decision\nPeriod (given capacity and deposit are met)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Decision Period"),": the maximum time to approve a proposal. The proposal will be accepted if\napproved by the end of the period."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Confirmation Period"),": the minimum amount of time (within the Decision Period) the approval and\nsupport criteria must hold before the proposal is approved and moved to the enactment period."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Minimum Enactment Period"),": the minimum amount of waiting time before the proposed changes are\napplied"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Approval Curve"),": the curve describing the minimum % of ",(0,r.kt)("em",{parentName:"li"},"aye")," votes as a function of time within\nthe Decision Period. The approval % is the portion of ",(0,r.kt)("em",{parentName:"li"},"aye")," votes (adjusted for conviction) over\nthe total votes (",(0,r.kt)("em",{parentName:"li"},"aye"),", ",(0,r.kt)("em",{parentName:"li"},"nay"),", and ",(0,r.kt)("em",{parentName:"li"},"abstained"),")."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Support Curve"),": the curve describing the minimum % of all votes in support of a proposal as a\nfunction of time within the Decision Period. The support % is defined as the portion of all votes\n(",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstained"),") without conviction over the total possible amount of votes in the system\n(i.e. the total active issuance).")),(0,r.kt)("p",null,"For example, a runtime upgrade (requiring a ",(0,r.kt)("inlineCode",{parentName:"p"},"set_code")," call, if approved) does not have the same\nimplications for the ecosystem as the approval of a treasury tip (",(0,r.kt)("inlineCode",{parentName:"p"},"reportAwesome")," call), and\ntherefore different Origins for these two actions are needed in which different deposits, support,\napproval, and a minimum ",(0,r.kt)("a",{parentName:"p",href:"#enactment"},"enactment")," periods will be predetermined on the pallet."),(0,r.kt)("p",null,"For detailed information about origin and tracks, and parameter values in Kusama, see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"this page"),"."),(0,r.kt)("h3",{id:"voluntary-locking-conviction-voting"},"Voluntary Locking (Conviction Voting)"),(0,r.kt)("p",null,"Polkadot utilizes an idea called voluntary\nlocking that allows token holders to increase their voting power by declaring how long they are\nwilling to lock up their tokens; hence, the number of votes for each token holder will be calculated\nby the following formula:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"votes = tokens * conviction_multiplier\n")),(0,r.kt)("p",null,"The conviction multiplier increases the vote multiplier by one every time the number of lock periods\ndouble."),(0,r.kt)(u,{mdxType:"VLTable"}),(0,r.kt)("p",null,'The maximum number of "doublings" of the lock period is set to 6 (and thus 32 lock periods in\ntotal), and one lock period equals\n',(0,r.kt)(l.Z,{network:"kusama",path:"consts.convictionVoting.voteLockingPeriod",defaultValue:100800,filter:"blocksToDays",mdxType:"RPC"}),"\n","\ndays. For additional information regarding the timeline of governance events, check out the\ngovernance section on the\n",(0,r.kt)("a",{parentName:"p",href:"maintain-polkadot-parameters/#governance"},"Polkadot Parameters page"),"","."),(0,r.kt)("admonition",{title:"do votes stack?",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can use the same number of tokens to vote on different referenda. Votes with conviction do not\nstack. If you voted with 5 DOT on Referenda A, B\nand C with 2x conviction you would have 10 votes on all those referenda and 5\nDOT locked up only for the 2x conviction period\n(i.e. two weeks), with the unlocking\ncountdown starting when the last referendum you voted on ends (assuming you are on the winning\nside). If you voted with conviction on referendum and then a week later voted on another one with\nthe same conviction, the lock on your DOT will be\nextended by a week (always assuming you are on the winning side).")),(0,r.kt)("admonition",{title:"Staked tokens can be used in governance",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"While a token is locked, you can still use it for voting and ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-staking"},"staking"),". You are\nonly prohibited from transferring these tokens to another account.")),(0,r.kt)("p",null,'Votes are always "counted" at the same time (at the end of the voting period), no matter for how\nlong the tokens are locked.'),(0,r.kt)("p",null,"See below an example that shows how voluntary locking works."),(0,r.kt)("p",null,"Peter: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"No")," with\n10 DOT for a 32-week lock period\n=> 10 x 6 = 60 Votes"),(0,r.kt)("p",null,"Logan: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"Yes")," with\n20 DOT for one week lock period =>\n20 x 1 = 20 Votes"),(0,r.kt)("p",null,"Kevin: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"Yes")," with\n15 DOT for a 2-week lock period\n=> 15 x 2 = 30 Votes"),(0,r.kt)("p",null,"Even though combined both Logan and Kevin vote with more\nDOT than Peter, the lock period for both of them\nis less than Peter, leading to their voting power counting as less."),(0,r.kt)("admonition",{title:"Conviction Voting Locks created during Gov 1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Conviction voting locks in Governance v1 will not be carried over to OpenGov. Voting with conviction\nin OpenGov will create a new lock (as this will use the ",(0,r.kt)("inlineCode",{parentName:"p"},"convictionVoting")," pallet), while any\nexisting lock under Governance v1 (using the deprecated ",(0,r.kt)("inlineCode",{parentName:"p"},"democracy")," pallet) will be left to expire.\nDelegations under Governance v1 will need to be re-issued under OpenGov.")),(0,r.kt)("h3",{id:"approval-and-support"},"Approval and Support"),(0,r.kt)("admonition",{title:"Adaptive Quorum Biasing is deprecated",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In Polkadot OpenGov, ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#adaptive-quorum-biasing"},"Adaptive quorum biasing")," used\nin Governance V1 has been replaced with the ",(0,r.kt)("strong",{parentName:"p"},"Approval and Support system"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-curves-pass",src:n(65993).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"The figure above provides a summary view of how the approval and support system works during the\nDecision Period."),(0,r.kt)("p",null,"Once the proposal exits the Lead-in Period and enters the Voting Period, to be approved, it must\nsatisfy the approval and support criteria for the ",(0,r.kt)("strong",{parentName:"p"},"Confirmation Period"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Approval")," is defined as the share of ",(0,r.kt)("a",{parentName:"li",href:"#voluntary-locking"},"conviction"),"-weighted ",(0,r.kt)("em",{parentName:"li"},"aye")," votes\nagainst the conviction-weighted total of ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"nay")," votes. The code implementation can be\nviewed\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/paritytech/polkadot-sdk/blob/f2fbba3be1d7deaf7cfc731cea00552c212ddfcf/substrate/frame/conviction-voting/src/types.rs#L77"},"here")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Support")," is the total number of ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstain")," votes (ignoring any adjustment for\nconviction) compared to the total possible votes (",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-DOT#token-issuance"},"active issuance"),")\nthat could be made in the system. In case of ",(0,r.kt)("em",{parentName:"li"},"split")," votes, only ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstain")," will count.")),(0,r.kt)("p",null,"For example, let us consider a hypothetical example where the total active issuance is\n100 DOT"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'An account A votes "Aye" with 10 DOT with 4x\nconviction'),(0,r.kt)("li",{parentName:"ul"},'An account B votes "Nay" with 5 DOT with 2x\nconviction'),(0,r.kt)("li",{parentName:"ul"},'An account C votes "Abstain" with 20 DOT. (no\nconviction can be applied on "Abstain" votes)')),(0,r.kt)("p",null,"In this scenario, only 35 DOT from the total\nactive issuance participated in voting on the referendum. Now, let us calculate the Approval and\nSupport values for that referendum."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Approval is calculated as (Aye') / (Aye' + Nay') where Aye' and Nay' are the votes after the\nconviction multiplier is applied. Hence, Approval = (10 x 4) / (10 x 4 + 5 x 2) = 40/50 which is\n80%."),(0,r.kt)("li",{parentName:"ul"},'Support is calculated as (Aye + Abstain) / (total active issuance), where "Aye" and "Abstain" are\nthe votes without the conviction multiplier. Hence, Support = (10 + 20) / 100 which is 30%.')),(0,r.kt)("admonition",{title:"Nay votes are not counted towards Support",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Support is a measure of voters who turned out either in favor of the referenda and who consciously\nabstained from it. Support does not include ",(0,r.kt)("em",{parentName:"p"},"nay")," votes. This avoids edge situations where ",(0,r.kt)("em",{parentName:"p"},"nay"),"\nvotes could push a referendum into confirming state. For example, imagine current approval is high\n(near 100%, way above the approval curve), and current support is just below the support curve. A\n",(0,r.kt)("em",{parentName:"p"},"nay")," could bump support above the support curve but not reduce approval below the approval curve.\nTherefore someone voting against a proposal would make it pass. Hence, a decrease in % of current\napproval through new votes does not directly translate into increasing support because Support needs\nto consider ",(0,r.kt)("em",{parentName:"p"},"nay")," votes.")),(0,r.kt)("p",null,"The figure above shows the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Even if the approval threshold is reached (i.e. % of current approval is greater than the approval\ncurve), the proposal only enters the confirmation period once the support threshold is also\nreached (i.e. % current support is greater than the underlying support curve)."),(0,r.kt)("li",{parentName:"ul"},"If the referendum meets the approval and support thresholds for the duration of the confirmation\nperiod, the proposal will be approved and will be scheduled for enactment. Each track has a\ndefault minimum Enactment Period and the approved referendum needs to wait till the end of it to\nbe executed. Powerful Tracks like ",(0,r.kt)("inlineCode",{parentName:"li"},"Root")," enforce a larger Enactment Period to ensure the network\nhas ample time to prepare for any changes the proposal may bring. The referendum proposers can\nalso choose to set the enactment period to be higher than its default value."),(0,r.kt)("li",{parentName:"ul"},"A referendum may exit the confirmation period when the thresholds are no longer met, due to new\n",(0,r.kt)("em",{parentName:"li"},"Nay")," votes or a change of existing ",(0,r.kt)("em",{parentName:"li"},"Aye")," or ",(0,r.kt)("em",{parentName:"li"},"Abstain")," votes to ",(0,r.kt)("em",{parentName:"li"},"Nay")," . Each time it exits, the\nconfirmation period clock is reset. For example, if the confirmation period is 20 minutes and a\nreferendum enters it just for 5 min before exiting, the next time it enters, it must be confirming\nfor 20 minutes (not 15 minutes)."),(0,r.kt)("li",{parentName:"ul"},"During the decision period, if a referendum fails to meet the approval and support thresholds for\nthe duration of the track-specific confirmation period, it fails and does not go to the enactment\nperiod (it may have to be resubmitted, see below)."),(0,r.kt)("li",{parentName:"ul"},"The approval curve starts with a value of 100% and gradually goes to 50%, but never below.\nAssuming all the active token supply has voted on a proposal, the conviction vote weighted support\nshould at least always be above 50% to pass.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-curves-pass",src:n(55745).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"Note that support may not increase monotonically as shown in the figure, as people might switch\nvotes."),(0,r.kt)("p",null,"Different Origins' tracks have different Confirmation Periods and requirements for approval and\nsupport. For additional details on the various origins and tracks, check out\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"this table"),". With proposals that use\nless privileged origins, it is far more reasonable to drop the required support to a more realistic\namount earlier than those which use highly privileged classes such as ",(0,r.kt)("inlineCode",{parentName:"p"},"Root"),"."),(0,r.kt)("h3",{id:"enactment"},"Enactment"),(0,r.kt)("admonition",{title:"Enactment in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#enactment"},"this page")," for more information about enactment in Governance\nv1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, the proposer suggests the enactment period, but there are also a minimum set\nfor each Origin Track. For example, ",(0,r.kt)("inlineCode",{parentName:"p"},"root")," Origin approvals require an extended period because of\nthe importance of the changes they bring to the network."),(0,r.kt)("h2",{id:"voting-on-a-referendum"},"Voting on a Referendum"),(0,r.kt)("p",null,"In Governance V1, voters could cast only an ",(0,r.kt)("em",{parentName:"p"},"aye")," or ",(0,r.kt)("em",{parentName:"p"},"nay")," vote. In Polkadot OpenGov, voters can\nadditionally cast a ",(0,r.kt)("em",{parentName:"p"},"abstain")," and ",(0,r.kt)("em",{parentName:"p"},"split")," votes.\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#voting-on-referenda"},"Vote splitting")," allows voters to allocate\ndifferent votes for ",(0,r.kt)("em",{parentName:"p"},"aye"),", ",(0,r.kt)("em",{parentName:"p"},"nay"),", and ",(0,r.kt)("em",{parentName:"p"},"abstain"),". Voting with conviction is not possible when\nabstaining or splitting the votes."),(0,r.kt)("admonition",{title:"Only the last vote counts",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Voting a second time replaces your original vote, e.g. voting with 10\nDOT, then a second extrinsic to vote with 5\nDOT, means that you are voting with 5\nDOT, not 10\nDOT.")),(0,r.kt)("p",null,"Note that to successfully cast votes you need to have the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-accounts#existential-deposit-and-reaping"},"existential deposit")," and some additional funds\nto pay for transaction fees."),(0,r.kt)("h3",{id:"voting-locks"},"Voting Locks"),(0,r.kt)("h4",{id:"voting-without-conviction"},"Voting Without Conviction"),(0,r.kt)("p",null,"A lock is placed on the DOT when you vote on an\nOngoing referendum. If you choose to remove your vote when the referendum is still in the decision period,\nyour voting lock is removed. Once the referendum is decided (accepted or rejected), your DOT\nwill be available for unlocking if you voted with zero conviction. The governance app or interface you\nused for participating in Polkadot OpenGov should show an option to unlock your DOT.\n",(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000184129"},"Here")," are the instructions to\ndo it on the Polkadot-JS UI."),(0,r.kt)("h4",{id:"voting-with-conviction"},"Voting with Conviction"),(0,r.kt)("p",null,"If you voted with conviction, the corresponding locks start at the end of the Referendum and not at the moment you voted.\nFor instance, let's say you voted AYE with 6X conviction on a referendum, and it got accepted; the\nDOT you voted with is locked for 32 weeks from that moment.\nIf you voted NAY with 6X conviction on a referendum and it got accepted, then your DOT\nwould be ready to be unlocked immediately. Polkadot OpenGov is designed to ensure that only the winning side\nis mandated to lock their DOT and the losing side can claim\nDOT and have it added to the transferable balance on their account."),(0,r.kt)("p",null,"For unlocking generic account locks, navigate to ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-accounts#unlocking-locks"},"this section"),". When you\ndelegate your votes, the locking mechanism differs slightly. Please check the next section on Multirole Delegation for\nmore information."),(0,r.kt)("h3",{id:"multirole-delegation"},"Multirole Delegation"),(0,r.kt)("p",null,"Polkadot OpenGov builds on the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#delegations"},"vote delegation feature from Governance v1")," where a voter can\ndelegate their voting power to another voter. It does so by introducing a feature known as\n",(0,r.kt)("strong",{parentName:"p"},"multirole delegation"),", where voters can specify a different delegate for every class of\nreferendum in the system. Delegation can be done per track, and accounts can choose to select\ndifferent delegates (or no delegation) for each track."),(0,r.kt)("p",null,"For example, a voter could delegate one entity for managing a less potent referenda class, choose a\ndifferent delegate for another class with more powerful consequences and still retain full voting\npower over any remaining classes."),(0,r.kt)("admonition",{title:"Delegate your votes",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In Polkadot OpenGov you can delegate your votes to different entities, who will vote on your behalf.\nYou can delegate your votes using the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},(0,r.kt)("strong",{parentName:"a"},"Polkadot Delegation Dashboard")),". See\n",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"this video tutorial")," to learn about the features of\nthe dashboard."),(0,r.kt)("p",{parentName:"admonition"},"If you are staking directly and not through a nomination pool, you can use bonded tokens for voting.\nNote that if you are voting with conviction, your tokens will have a democracy lock in addition to\nthe staking lock. For more information about locks, see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-accounts/#unlocking-locks"},"this page"),"."),(0,r.kt)("p",{parentName:"admonition"},"Democracy locks created through ",(0,r.kt)("a",{parentName:"p",href:"#voluntary-locking"},"conviction voting")," start the unlocking period\nafter a referendum ends, provided you voted with the winning side. In the case of delegations, the\nunlocking period countdown begins after the account undelegates. There can be different scenarios:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"if the account delegated votes to one delegate, then after undelegating, there will be one\nunlocking period with length dependent on the conviction multiplier."),(0,r.kt)("li",{parentName:"ul"},"if the account delegated votes to different delegates using different convictions, then after\nundelegating those delegates, there will be different unlocking periods with lengths dependent on\nthe conviction multipliers."))),(0,r.kt)("p",null,"It is worth noting that a user delegating their voting power does not imply that the delegate will\nhave control over the funds of the delegating user's account. That delegate's account can vote with\na user's voting power but won't be able to transfer balances, nominate a different set of\nvalidators, or execute any call other than voting on the tracks defined by the user."),(0,r.kt)("p",null,"The goal of delegations is to ensure the required support for proposals to be enacted is reached\nwhile keeping the overall design censorship-free. Also, voters might not have the technical\nknowledge to judge some referenda or might not have the time to read all referenda. Delegations\nallow voters to participate in OpenGov hands-free by delegating their voting power to trusted\nentities."),(0,r.kt)("p",null,"For a step-by-step outline of how to delegate voting power in Polkadot OpenGov, check out the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#delegations"},"Delegating Voting Power")," section on the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"Polkadot OpenGov Guides"),"."),(0,r.kt)("h2",{id:"resources"},"Resources"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/paritytech/substrate/tree/master/frame/democracy/src"},"Democracy Pallet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://medium.com/polkadot-network/gov2-polkadots-next-generation-of-decentralised-governance-4d9ef657d11b"},"Governance v2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://matrix.to/#/#Polkadot-Direction:parity.io"},"Polkadot Direction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://matrix.to/#/#Kusama-Direction:parity.io"},"Kusama Direction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://polkadot.polkassembly.io/"},"PolkAssembly"))),(0,r.kt)("hr",null),(0,r.kt)("admonition",{title:"Polkadot-JS Guides",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"If you are an advanced user, see the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"Polkadot-JS guides about OpenGov"),".")))}N.isMDXComponent=!0},55745:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-curves-nopass-27f6968907aeb88e87069d29ca062568.png"},65993:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-curves-pass-73b6c7d1849e26082880cd7d629a633e.png"},40176:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-overview-a56ef29a3a173f9dc2b60a9008dcfc1b.png"},1671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-timeline-26e5a1fae159676ab5052a4fd7416be5.png"},67506:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-track-capacity-a1e00e5bd7961ea13d38f79cf6fa4b9c.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/2f3b630e.4e30fa93.js b/assets/js/2f3b630e.4e30fa93.js deleted file mode 100644 index 9fb0eabe74b5..000000000000 --- a/assets/js/2f3b630e.4e30fa93.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[9226],{47940:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var a=n(74165),o=n(15861),i=n(67294),r=n(87152),l=n(30967),s=n(67425);function p(e,t,n){return d.apply(this,arguments)}function d(){return(d=(0,o.Z)((0,a.Z)().mark((function e(t,n,o){var i,s,p,d,c;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,s=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return p=new r.U(i),e.next=21,l.G.create({provider:p});case 21:d=e.sent,(c=n.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=c[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return s=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return s=(s=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+c[0]+") in "+n);case 35:return e.abrupt("return",s);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e,t,n,a){switch(t){case"humanReadable":(0,s.HumanReadable)(e,n,a);break;case"precise":(0,s.Precise)(e,n,a);break;case"blocksToDays":(0,s.BlocksToDays)(e,a);break;case"erasToDays":(0,s.ErasToDays)(e,a,n);break;case"percentage":(0,s.Percentage)(e,a);break;case"permillToPercent":(0,s.PermillToPercent)(e,a);break;case"arrayLength":(0,s.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const m=function(e){var t=e.network,n=e.path,r=e.defaultValue,l=e.filter,s=void 0===l?void 0:l,d=(0,i.useState)(""),m=d[0],h=d[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==s?c(r.toString(),s,t,h):h(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://statemine-rpc.polkadot.io/";break;case"statemint":e="wss://statemint-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,a.Z)().mark((function e(){var o;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p(t,n,h);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==s?c(o,s,t,h):h(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(l){console.log(l)}}}),[]),m}},67425:e=>{var t="polkadot",n="kusama",a="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,l){var s=void 0;if(r===t||r===o)s=3;else{if(r!==n&&r!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=6}e=parseFloat(e),l((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(s)+" "+i[r].symbol).toString())},Precise:function(e,t,n){n(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var l=void 0;if(r===t||r===o)l=1;else{if(r!==n&&r!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=4}i((e/=l).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},42569:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>f,contentTitle:()=>g,default:()=>N,frontMatter:()=>k,metadata:()=>v,toc:()=>b});var a=n(87462),o=n(63366),i=n(67294),r=n(3905),l=n(47940),s=i.createElement("table",null,i.createElement("tbody",null,i.createElement("tr",null,i.createElement("th",null,"Lock Periods"),i.createElement("th",null,"Vote Multiplier"),i.createElement("th",null,"Length in Days")),i.createElement("tr",null,i.createElement("td",null,"0"),i.createElement("td",null,"0.1"),i.createElement("td",{id:"p0"})),i.createElement("tr",null,i.createElement("td",null,"1"),i.createElement("td",null,"1"),i.createElement("td",{id:"p1"})),i.createElement("tr",null,i.createElement("td",null,"2"),i.createElement("td",null,"2"),i.createElement("td",{id:"p2"})),i.createElement("tr",null,i.createElement("td",null,"4"),i.createElement("td",null,"3"),i.createElement("td",{id:"p4"})),i.createElement("tr",null,i.createElement("td",null,"8"),i.createElement("td",null,"4"),i.createElement("td",{id:"p8"})),i.createElement("tr",null,i.createElement("td",null,"16"),i.createElement("td",null,"5"),i.createElement("td",{id:"p16"})),i.createElement("tr",null,i.createElement("td",null,"32"),i.createElement("td",null,"6"),i.createElement("td",{id:"p32"})))),p=["p0","p1","p2","p4","p8","p16","p32"],d={p0:0,p1:7,p2:14,p4:28,p8:56,p16:112,p32:224},c={p0:0,p1:7,p2:14,p4:28,p8:56,p16:112,p32:224};function m(e){p.forEach((function(t){var n=document.getElementById(t);"polkadot"===e?n.innerText=d[t]:"kusama"===e&&(n.innerText=c[t])}))}const h=function(){var e=(0,i.useState)("");return e[0],e[1],(0,i.useEffect)((function(){var e=document.title;"Governance V1 \xb7 Polkadot Wiki"===e||"Introduction to Polkadot OpenGov \xb7 Polkadot Wiki"===e?m("polkadot"):"Governance V1 \xb7 Guide"===e||"Introduction to Polkadot OpenGov \xb7 Guide"===e?m("kusama"):console.log("Unknown wiki/guide type")}),[]),s};var u=["components"],k={id:"learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",sidebar_label:"Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",keywords:["governance","referenda","proposal","voting","endorse"],slug:"../learn-polkadot-opengov"},g=void 0,v={unversionedId:"learn/learn-polkadot-opengov",id:"learn/learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",source:"@site/../docs/learn/learn-polkadot-opengov.md",sourceDirName:"learn",slug:"/learn-polkadot-opengov",permalink:"/docs/learn-polkadot-opengov",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-polkadot-opengov.md",tags:[],version:"current",lastUpdatedBy:"Radha",lastUpdatedAt:1706216913,formattedLastUpdatedAt:"Jan 25, 2024",frontMatter:{id:"learn-polkadot-opengov",title:"Introduction to Polkadot OpenGov",sidebar_label:"Polkadot OpenGov",description:"Polkadot\u2019s Latest Model for Decentralized Governance.",keywords:["governance","referenda","proposal","voting","endorse"],slug:"../learn-polkadot-opengov"},sidebar:"docs",previous:{title:"Polkadot OpenGov",permalink:"/docs/learn-polkadot-opengov-index"},next:{title:"OpenGov Origins",permalink:"/docs/learn-polkadot-opengov-origins"}},f={},b=[{value:"Premise",id:"premise",level:2},{value:"Summary",id:"summary",level:2},{value:"Gov1 vs. Polkadot OpenGov",id:"gov1-vs-polkadot-opengov",level:2},{value:"Proposals",id:"proposals",level:2},{value:"Cancelling and Blacklisting",id:"cancelling-and-blacklisting",level:3},{value:"Referenda",id:"referenda",level:2},{value:"Referenda Timeline",id:"referenda-timeline",level:3},{value:"Origins and Tracks",id:"origins-and-tracks",level:3},{value:"Voluntary Locking (Conviction Voting)",id:"voluntary-locking-conviction-voting",level:3},{value:"Approval and Support",id:"approval-and-support",level:3},{value:"Enactment",id:"enactment",level:3},{value:"Voting on a Referendum",id:"voting-on-a-referendum",level:2},{value:"Multirole Delegation",id:"multirole-delegation",level:3},{value:"Resources",id:"resources",level:2}],w={toc:b},y="wrapper";function N(e){var t=e.components,i=(0,o.Z)(e,u);return(0,r.kt)(y,(0,a.Z)({},w,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{title:"The content in this document is subject to change",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"The governance protocol has already undergone iterations (see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance V1"),"). Governance is a constantly evolving protocol at this stage\nin its lifecycle."),(0,r.kt)("p",{parentName:"admonition"},"For technical information about Polkadot OpenGov and how to interact with it, please refer to this\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"dedicated Wiki page"),"."),(0,r.kt)("p",{parentName:"admonition"},"For additional support about Polkadot OpenGov see the\n",(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/65000105211"},"dedicated support pages"),".")),(0,r.kt)("admonition",{title:"Polkadot Delegation Dashboard",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See the video tutorial below to easily delegate your votes to somebody else using the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},"Polkadot Delegation Dashboard"),"."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/RapBYZc5ZPo/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"Delegation Dashboard Tutorial")))),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"If you become a nomination pool member or a pool admin, you cannot participate in Governance with\nthe bonded tokens in the pool, as they are held in a\n",(0,r.kt)("a",{parentName:"strong",href:"/docs/learn-account-advanced#system-accounts"},"system account"),"."))),(0,r.kt)("p",null,"Polkadot uses a sophisticated governance\nmechanism that allows it to evolve gracefully overtime at the ultimate behest of its assembled\nstakeholders. The stated goal is to ensure that the majority of the stake can always command the\nnetwork."),(0,r.kt)("p",null,"Polkadot brings together various novel\nmechanisms, including an amorphous (abstract) form of state-transition function stored on-chain\ndefined in a platform-agnostic language (i.e. ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-wasm"},"WebAssembly"),"), and several on-chain\nvoting mechanisms such as referenda and batch approval voting. All changes to the protocol must be\nagreed upon by stake-weighted referenda."),(0,r.kt)("h2",{id:"premise"},"Premise"),(0,r.kt)("p",null,"Polkadot's first governance system\n(",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance V1"),") included three main components."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#technical-committee"},"Technical Committee"),": A technocratic committee to\nmanage upgrade timelines."),(0,r.kt)("li",{parentName:"ul"},"The ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#council"},"Council"),': An approval-voted, elected executive "government" to\nmanage parameters, admin, and spending proposals.'),(0,r.kt)("li",{parentName:"ul"},"The Public: All token holders.")),(0,r.kt)("p",null,"Over the first few years of operation, Governance V1 ensured the appropriate usage of treasury funds\nand enabled timely upgrades and fixes. Like most early technologies, protocols must evolve as they\nmature to improve their shortcomings and keep up with modern advancements. In Governance V1, all\nreferenda carried the same weight as only one referendum could be voted on at a time (except for\nemergency proposals), and the voting period could last multiple weeks. Also, an\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#alternating-voting-timetable"},"alternating voting timetable")," allowed to vote\neither for a public referendum or a council motion every\n28 days. This resulted in the system favoring\ncareful consideration of very few proposals instead of broad consideration of many."),(0,r.kt)("p",null,"Polkadot OpenGov changes how the practical means of day-to-day decisions are made, making the\nrepercussions of referenda better scoped and agile to increase the number of collective decisions\nthe system can make at any given time."),(0,r.kt)("p",null,"The following content is focused on what the new Polkadot OpenGov version brings to the governance\non Polkadot, and on the main differences with\nprevious governance versions. We recommend learning about ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance"},"Governance v1")," to\nbetter understand the need for and the direction of Polkadot OpenGov."),(0,r.kt)("h2",{id:"summary"},"Summary"),(0,r.kt)("p",null,"In Governance v1, active token holders (public) and the Council together administrated network's\nupgrade decisions. Whether the public or the council initiated the proposal, it would eventually\nhave to go through a referendum to let all holders (weighted by stake and conviction) make the\ndecision."),(0,r.kt)("p",null,"The Council fulfilled its role as the representative of the public, guardian of the treasury and\ninitiator of legislation, but it was often seen as a centralized entity. To further decentralize\nPolkadot, Polkadot OpenGov proposes the\nfollowing main changes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Migrating all responsibilities of the Council to the public via a direct democracy voting system."),(0,r.kt)("li",{parentName:"ul"},"Dissolving the current ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#council"},"Council")," collective"),(0,r.kt)("li",{parentName:"ul"},"Allowing users to delegate voting power in more ways to community members"),(0,r.kt)("li",{parentName:"ul"},"Dissolving the ",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-governance#technical-committee"},"Technical Committee")," and establishing\nthe broader ",(0,r.kt)("a",{parentName:"li",href:"#the-technical-fellowship"},"Polkadot Technical Fellowship"))),(0,r.kt)("p",null,"The figure below shows an overview of Polkadot OpenGov's structure."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#summary"},"this page")," for a comparison with the structure of Governance V1.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-overview",src:n(40176).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"In Polkadot OpenGov, all the proposals are initiated by the public. The proposal will enter a\nLead-in period (for more information, see ",(0,r.kt)("a",{parentName:"p",href:"#referenda-timeline"},"Referenda Timeline"),"), after which it\nwill follow a specific ",(0,r.kt)("a",{parentName:"p",href:"#origins-and-tracks"},"Track")," which has a dedicated Origin. There are\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"15 Origins"),", each with a different\ntrack. The origins and tracks parameters are preset values that set the duration of a referendum as\nwell as how many referenda can be voted on simultaneously. For example, a treasury proposal can now\nbe submitted in different tracks depending on the amount requested. A proposal for a small tip will\nneed to be submitted in the Small Tipper track, while a proposal requiring substantial funds will\nneed to be submitted to the Medium or Big Spender track."),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"#the-technical-fellowship"},"Polkadot Technical Fellowship")," can decide to\n",(0,r.kt)("a",{parentName:"p",href:"#whitelisting"},"whitelist")," a proposal that will be enacted through the Whitelist Caller origin.\nThose proposals will have a shorter Lead-in, Confirmation, and Enactment period when compared to the\nRoot Origin track."),(0,r.kt)("p",null,"Each track has its own preset ",(0,r.kt)("a",{parentName:"p",href:"#approval-and-support"},"Approval and Support")," curves which are based\non the origin's privileges. When both the approval and support criteria are satisfied for a specific\nperiod (called the confirmation period), the referenda passes and will be executed after the\nenactment period."),(0,r.kt)("p",null,"All referenda within each track and across tracks can be voted on simultaneously (assuming track\nmaximum capacity is not reached)."),(0,r.kt)("p",null,"Polkadot OpenGov also comes with multi-role delegations where the token holder can assign voting\npower on different tracks to different entities who are experts in judging the referenda submitted\nto those tracks. For example, suppose a token holder does not have the technical background to\nconsider the merits and vote on the referenda submitted to the Root track. In that case, they can\ndelegate their voting power just for the Root track to a trusted expert who (according to them) acts\nin the best interest of the network protocol. In this way, token holders do not need to be\nup-to-date with governance matters and can still make their votes count through delegates."),(0,r.kt)("admonition",{title:"Delegation Dashboard",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"To easily delegate your votes you can use the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},"Polkadot Delegation Dashboard"),". See\n",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"this video tutorial")," to know more about the dashboard\nand learn how to use it.")),(0,r.kt)("h2",{id:"gov1-vs-polkadot-opengov"},"Gov1 vs. Polkadot OpenGov"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Governance V1"),(0,r.kt)("th",{parentName:"tr",align:null},"Polkadot OpenGov"),(0,r.kt)("th",{parentName:"tr",align:null},"Polkadot OpenGov Benefit"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Includes the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#council"},"Council"),", the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#technical-committee"},"Technical Committee"),", and the Public (i.e. token holders)."),(0,r.kt)("td",{parentName:"tr",align:null},"Includes the Public and the ",(0,r.kt)("a",{parentName:"td",href:"#the-technical-fellowship"},"Technical Fellowship"),"."),(0,r.kt)("td",{parentName:"tr",align:null},"Simpler and more decentralized structure.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Referenda executed only from one origin (Root). Referenda in this origin must be carefully scrutinized. Therefore, there is only one track (i.e. only one referendum at a time can be executed)."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda executed from ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"multiple origins"),", each with a different track that shapes proposals\u2019 timelines. Depending on the origin, multiple referenda within the same track are possible."),(0,r.kt)("td",{parentName:"tr",align:null},"Possibility to categorize proposals (based on importance and urgency) and execute them simultaneously within and between origin tracks.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Proposals can be submitted by either the Council or the Public."),(0,r.kt)("td",{parentName:"tr",align:null},"The public submits proposals."),(0,r.kt)("td",{parentName:"tr",align:null},"More democratic.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Uses ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#adaptive-quorum-biasing"},"Adaptive Quorum Biasing")," to define the approval threshold based on turnout. Given the same turnout, council-initiated referenda require fewer Aye votes to pass compared to public referenda."),(0,r.kt)("td",{parentName:"tr",align:null},"Uses origin-specific approval and support curves defining the amount of approval and support (i.e. turnout) needed as a function of time. The same curves are applied to all referenda within the same origin track."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda timeline depends on the origin and not on who submitted the proposal (i.e. Council or Public). This is a more democratic and equalitarian system.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Uses ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#alternating-voting-timetable"},"alternating voting timetable")," allowing voters to cast votes for either council or public referenda every 28 eras."),(0,r.kt)("td",{parentName:"tr",align:null},"Multiple referenda can be voted at the same time."),(0,r.kt)("td",{parentName:"tr",align:null},"More flexible and agile governance system.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Except for emergency proposals, all referenda have fixed voting and enactment periods of 28 eras."),(0,r.kt)("td",{parentName:"tr",align:null},"Periods' length is customizable and has pre-defined limits for each origin. The same limits apply to all tracks with the same origin. For example, the track in the origin Root will be longer than the track within the Small Tipper origin."),(0,r.kt)("td",{parentName:"tr",align:null},"Referenda\u2019s timeline is tailored to their importance and urgency. Flexible enactment period based on origin.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Emergency proposals turned referenda can be simultaneously voted on and executed with other referenda and have shorter enactment periods. They must be proposed by the Technical Committee and approved by the Council."),(0,r.kt)("td",{parentName:"tr",align:null},"No emergency proposals. The Technical Fellowship can whitelist proposals that will have their origin with shorter lead-in, confirmation, and enactment periods."),(0,r.kt)("td",{parentName:"tr",align:null},"The Technical Fellowship is a more decentralized entity when compared to the Technical Committee. Whitelisting a proposal requires a majority of approval from the fellowship.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Only the ",(0,r.kt)("a",{parentName:"td",href:"/docs/learn-governance#endorsing-proposals"},"most-endorsed proposal")," is able to transit from Launch to Voting period. The time for the transition is indeterminate, and (with no possibility of canceling endorsements) proposers and endorsers might wait a long time before a referendum is tabled, and getting their deposits back."),(0,r.kt)("td",{parentName:"tr",align:null},"All proposals will eventually be voted on (given track capacity and deposit are met and the Lead-in period has ended)."),(0,r.kt)("td",{parentName:"tr",align:null},"It allows all proposals to get a chance to be voted on in a timely predictive manner.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Only ",(0,r.kt)("em",{parentName:"td"},"aye")," or ",(0,r.kt)("em",{parentName:"td"},"nay")," votes possible."),(0,r.kt)("td",{parentName:"tr",align:null},"Voters can have the additional voting options of abstaining or splitting votes."),(0,r.kt)("td",{parentName:"tr",align:null},"More ways to engage in voting and increase turnout.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Voters can decide to delegate votes to another account."),(0,r.kt)("td",{parentName:"tr",align:null},"Voters can use ",(0,r.kt)("a",{parentName:"td",href:"#multirole-delegation"},"multirole delegations")," and delegate votes to different accounts depending on origins."),(0,r.kt)("td",{parentName:"tr",align:null},"More agile delegations tailored by expertise.")))),(0,r.kt)("h2",{id:"proposals"},"Proposals"),(0,r.kt)("admonition",{title:"Starting a proposal in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#proposals"},"this page")," for more information about starting referenda in\nGovernance v1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, anyone can start a referendum at any time and do so as often as they wish.\nPrevious features were expanded and improved, most notably\n",(0,r.kt)("a",{parentName:"p",href:"#origins-and-tracks"},(0,r.kt)("strong",{parentName:"a"},"Origins and Tracks"))," help aid in the flow and processing of the submitted\nreferenda."),(0,r.kt)("h3",{id:"cancelling-and-blacklisting"},"Cancelling and Blacklisting"),(0,r.kt)("admonition",{title:"Cancelling Referenda in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#cancelling-proposals"},"this page")," for more information about cancelling\nreferenda in Governance v1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, there is a special operation called ",(0,r.kt)("strong",{parentName:"p"},"Cancellation")," for intervening with a\nproposal already being voted on. The operation will immediately reject an ongoing referendum\nregardless of its status. There is also a provision to ensure the deposit of the proposer is slashed\nif the proposal is malicious or spam."),(0,r.kt)("p",null,"Cancellation is a governance operation the network must vote on to be executed. Cancellation comes\nwith ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#referendum-canceller"},"its own Origin and Track")," which has\na low lead-time and Approval/Support curves with slightly sharper reductions in their thresholds for\npassing, given that it is invoked with a sense of urgency."),(0,r.kt)("p",null,"For more information about how to cancel a referendum see the\n",(0,r.kt)("a",{parentName:"p",href:"./learn-guides-polkadot-opengov#cancel-or-kill-a-referendum"},"advanced how-to guides"),"."),(0,r.kt)("admonition",{title:"Blacklisting",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Blacklisting referenda in Polkadot OpenGov is\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#blacklisting-proposals"},"the same as in Governance v1"),".")),(0,r.kt)("h2",{id:"referenda"},"Referenda"),(0,r.kt)("admonition",{title:"Public and Council Referenda in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"With the Council's dissolution, ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#council-referenda"},"council referenda")," are no\nlonger present in Polkadot OpenGov."),(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#public-referenda"},"this page")," for more information about public referenda\nin Governance v1.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"In Polkadot OpenGov all referenda are public.")," The\n",(0,r.kt)("a",{parentName:"p",href:"#the-technical-fellowship"},"Technical Fellowship")," has the option to ",(0,r.kt)("a",{parentName:"p",href:"#whitelisting"},"whitelist"),"\nreferenda that can be then proposed in the track with\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#whitelisted-caller"},"whitelist origin"),"."),(0,r.kt)("h3",{id:"referenda-timeline"},"Referenda Timeline"),(0,r.kt)("admonition",{title:"Voting timetable in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#referenda-timeline"},"this page")," for more information about the voting\ntimetable in Governance v1.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-timeline",src:n(1671).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"The figure above provides a summary view of the referenda timeline for Polkadot OpenGov."),(0,r.kt)("p",null,"In (1), when a referendum is initially created, the community can immediately vote on it. However,\nit is not immediately in a state where it can end or otherwise have its votes counted, be approved,\nand ultimately enacted. Instead, the proposal will stay within a ",(0,r.kt)("strong",{parentName:"p"},"Lead-in Period")," until it\nfulfills three criteria:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'Proposals must stay within the lead-in period for a pre-defined minimum amount of time. This helps\nmitigate against the possibility of "decision sniping" where an attacker controlling a substantial\namount of voting power might seek to have a proposal passed immediately after proposing, not\nallowing the overall voting population adequate time to consider and participate.'),(0,r.kt)("li",{parentName:"ul"},"There must be enough room for the decision within the origin. Different origins have their limit\non the number of proposals that can be decided simultaneously. Tracks that have more potent\nabilities will have lower limits. For example, the Root level Origin has a limit of one, implying\nthat only a single proposal may be decided on at once."),(0,r.kt)("li",{parentName:"ul"},"A decision deposit must be submitted. Creating a referendum is cheap as the deposit value consists\nof only the value required for the on-chain storage needed to track it. But, having a referendum\nreviewed and decided upon carries the risk of using up the limited spots available in the\nreferenda queue. Having a more significant but refundable deposit requirement makes sense to help\nmitigate spam. Failing to submit the decision deposit will lead to a referendum ",(0,r.kt)("em",{parentName:"li"},"timeout"),".")),(0,r.kt)("p",null,"Until they are in the lead-in period, proposals remain undecided. Once the criteria above are met,\nthe referendum moves to the ",(0,r.kt)("em",{parentName:"p"},"deciding")," state. The votes of the referendum are now counted towards\nthe outcome."),(0,r.kt)("p",null,"In (2), the proposal enters the ",(0,r.kt)("strong",{parentName:"p"},"Decision Period")," where votes can be cast. For a proposal to be\napproved, votes must satisfy the approval and support criteria for at least the ",(0,r.kt)("strong",{parentName:"p"},"Confirmation\nPeriod"),"; otherwise, the proposal is automatically rejected. A rejected proposal can be resubmitted\nanytime and as many times as needed."),(0,r.kt)("p",null,"In (3), approved proposals will enter the ",(0,r.kt)("strong",{parentName:"p"},"Enactment Period"),", after which proposed changes will be\nexecuted."),(0,r.kt)("p",null,"Note how the length of the lead-in, decision, confirmation, and enactment periods vary depending on\nthe origin. Root origin has more extended periods than the other origins. Also, the number of\nreferenda within each track differs, with the Root origin track only accepting one. proposal at a\ntime (see below)."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-track-capacity",src:n(67506).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"This directly affects the number of proposals that can be voted on and executed simultaneously.\nContinuing the comparison between Root and Small Tipper, Small Tipper will allow many proposals on\nits track to be executed simultaneously. In contrast, Root will allow only one proposal in its\ntrack. Once the track capacity is filled, additional proposals in the lead-in period will queue\nuntil place is available to enter the decision period."),(0,r.kt)("h3",{id:"origins-and-tracks"},"Origins and Tracks"),(0,r.kt)("p",null,"An ",(0,r.kt)("strong",{parentName:"p"},"Origin")," is a specific level of privilege that will determine the ",(0,r.kt)("strong",{parentName:"p"},"Track")," of all referenda\nexecuted with that origin. The track is basically a pipeline in which the proposal lives and\nproceeds and is independent from other origins' tracks. The proposer of the referenda now selects an\nappropriate Origin for their request based on the proposal\u2019s requirements."),(0,r.kt)("p",null,"Although the track structure is the same for all origins, track parameters are not. Such parameters\ninclude:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Maximum Deciding or Capacity"),": the limit for the number of referenda that can be decided at\nonce (i.e. the number of tracks within each origin)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Decision deposit"),": the amount of funds that must be placed on deposit to enter the Decision\nPeriod (note that more requirements must be met to enter the Decision Period)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Preparation Period"),": the minimum amount of voting time needed before entering the Decision\nPeriod (given capacity and deposit are met)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Decision Period"),": the maximum time to approve a proposal. The proposal will be accepted if\napproved by the end of the period."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Confirmation Period"),": the minimum amount of time (within the Decision Period) the approval and\nsupport criteria must hold before the proposal is approved and moved to the enactment period."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Minimum Enactment Period"),": the minimum amount of waiting time before the proposed changes are\napplied"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Approval Curve"),": the curve describing the minimum % of ",(0,r.kt)("em",{parentName:"li"},"aye")," votes as a function of time within\nthe Decision Period. The approval % is the portion of ",(0,r.kt)("em",{parentName:"li"},"aye")," votes (adjusted for conviction) over\nthe total votes (",(0,r.kt)("em",{parentName:"li"},"aye"),", ",(0,r.kt)("em",{parentName:"li"},"nay"),", and ",(0,r.kt)("em",{parentName:"li"},"abstained"),")."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Support Curve"),": the curve describing the minimum % of all votes in support of a proposal as a\nfunction of time within the Decision Period. The support % is defined as the portion of all votes\n(",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstained"),") without conviction over the total possible amount of votes in the system\n(i.e. the total active issuance).")),(0,r.kt)("p",null,"For example, a runtime upgrade (requiring a ",(0,r.kt)("inlineCode",{parentName:"p"},"set_code")," call, if approved) does not have the same\nimplications for the ecosystem as the approval of a treasury tip (",(0,r.kt)("inlineCode",{parentName:"p"},"reportAwesome")," call), and\ntherefore different Origins for these two actions are needed in which different deposits, support,\napproval, and a minimum ",(0,r.kt)("a",{parentName:"p",href:"#enactment"},"enactment")," periods will be predetermined on the pallet."),(0,r.kt)("p",null,"For detailed information about origin and tracks, and parameter values in Kusama, see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"this page"),"."),(0,r.kt)("h3",{id:"voluntary-locking-conviction-voting"},"Voluntary Locking (Conviction Voting)"),(0,r.kt)("p",null,"Polkadot utilizes an idea called voluntary\nlocking that allows token holders to increase their voting power by declaring how long they are\nwilling to lock up their tokens; hence, the number of votes for each token holder will be calculated\nby the following formula:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"votes = tokens * conviction_multiplier\n")),(0,r.kt)("p",null,"The conviction multiplier increases the vote multiplier by one every time the number of lock periods\ndouble."),(0,r.kt)(h,{mdxType:"VLTable"}),(0,r.kt)("p",null,'The maximum number of "doublings" of the lock period is set to 6 (and thus 32 lock periods in\ntotal), and one lock period equals\n',(0,r.kt)(l.Z,{network:"kusama",path:"consts.convictionVoting.voteLockingPeriod",defaultValue:100800,filter:"blocksToDays",mdxType:"RPC"}),"\n","\ndays. For additional information regarding the timeline of governance events, check out the\ngovernance section on the\n",(0,r.kt)("a",{parentName:"p",href:"maintain-polkadot-parameters/#governance"},"Polkadot Parameters page"),"","."),(0,r.kt)("admonition",{title:"do votes stack?",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can use the same number of tokens to vote on different referenda. Votes with conviction do not\nstack. If you voted with 5 DOT on Referenda A, B\nand C with 2x conviction you would have 10 votes on all those referenda and 5\nDOT locked up only for the 2x conviction period\n(i.e. two weeks), with the unlocking\ncountdown starting when the last referendum you voted on ends (assuming you are on the winning\nside). If you voted with conviction on referendum and then a week later voted on another one with\nthe same conviction, the lock on your DOT will be\nextended by a week (always assuming you are on the winning side).")),(0,r.kt)("admonition",{title:"Staked tokens can be used in governance",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"While a token is locked, you can still use it for voting and ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-staking"},"staking"),". You are\nonly prohibited from transferring these tokens to another account.")),(0,r.kt)("p",null,'Votes are always "counted" at the same time (at the end of the voting period), no matter for how\nlong the tokens are locked.'),(0,r.kt)("p",null,"See below an example that shows how voluntary locking works."),(0,r.kt)("p",null,"Peter: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"No")," with\n10 DOT for a 32-week lock period\n=> 10 x 6 = 60 Votes"),(0,r.kt)("p",null,"Logan: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"Yes")," with\n20 DOT for one week lock period =>\n20 x 1 = 20 Votes"),(0,r.kt)("p",null,"Kevin: Votes ",(0,r.kt)("inlineCode",{parentName:"p"},"Yes")," with\n15 DOT for a 2-week lock period\n=> 15 x 2 = 30 Votes"),(0,r.kt)("p",null,"Even though combined both Logan and Kevin vote with more\nDOT than Peter, the lock period for both of them\nis less than Peter, leading to their voting power counting as less."),(0,r.kt)("admonition",{title:"Conviction Voting Locks created during Gov 1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Conviction voting locks in Governance v1 will not be carried over to OpenGov. Voting with conviction\nin OpenGov will create a new lock (as this will use the ",(0,r.kt)("inlineCode",{parentName:"p"},"convictionVoting")," pallet), while any\nexisting lock under Governance v1 (using the deprecated ",(0,r.kt)("inlineCode",{parentName:"p"},"democracy")," pallet) will be left to expire.\nDelegations under Governance v1 will need to be re-issued under OpenGov.")),(0,r.kt)("h3",{id:"approval-and-support"},"Approval and Support"),(0,r.kt)("admonition",{title:"Adaptive Quorum Biasing is deprecated",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In Polkadot OpenGov, ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#adaptive-quorum-biasing"},"Adaptive quorum biasing")," used\nin Governance V1 has been replaced with the ",(0,r.kt)("strong",{parentName:"p"},"Approval and Support system"),".")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-curves-pass",src:n(65993).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"The figure above provides a summary view of how the approval and support system works during the\nDecision Period."),(0,r.kt)("p",null,"Once the proposal exits the Lead-in Period and enters the Voting Period, to be approved, it must\nsatisfy the approval and support criteria for the ",(0,r.kt)("strong",{parentName:"p"},"Confirmation Period"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Approval")," is defined as the share of ",(0,r.kt)("a",{parentName:"li",href:"#voluntary-locking"},"conviction"),"-weighted ",(0,r.kt)("em",{parentName:"li"},"aye")," votes\nagainst the conviction-weighted total of ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"nay")," votes. The code implementation can be\nviewed\n",(0,r.kt)("a",{parentName:"li",href:"https://github.com/paritytech/polkadot-sdk/blob/f2fbba3be1d7deaf7cfc731cea00552c212ddfcf/substrate/frame/conviction-voting/src/types.rs#L77"},"here")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Support")," is the total number of ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstain")," votes (ignoring any adjustment for\nconviction) compared to the total possible votes (",(0,r.kt)("a",{parentName:"li",href:"/docs/learn-DOT#token-issuance"},"active issuance"),")\nthat could be made in the system. In case of ",(0,r.kt)("em",{parentName:"li"},"split")," votes, only ",(0,r.kt)("em",{parentName:"li"},"aye")," and ",(0,r.kt)("em",{parentName:"li"},"abstain")," will count.")),(0,r.kt)("p",null,"For example, let us consider a hypothetical example where the total active issuance is\n100 DOT"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'An account A votes "Aye" with 10 DOT with 4x\nconviction'),(0,r.kt)("li",{parentName:"ul"},'An account B votes "Nay" with 5 DOT with 2x\nconviction'),(0,r.kt)("li",{parentName:"ul"},'An account C votes "Abstain" with 20 DOT. (no\nconviction can be applied on "Abstain" votes)')),(0,r.kt)("p",null,"In this scenario, only 35 DOT from the total\nactive issuance participated in voting on the referendum. Now, let us calculate the Approval and\nSupport values for that referendum."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Approval is calculated as (Aye') / (Aye' + Nay') where Aye' and Nay' are the votes after the\nconviction multiplier is applied. Hence, Approval = (10 x 4) / (10 x 4 + 5 x 2) = 40/50 which is\n80%."),(0,r.kt)("li",{parentName:"ul"},'Support is calculated as (Aye + Abstain) / (total active issuance), where "Aye" and "Abstain" are\nthe votes without the conviction multiplier. Hence, Support = (10 + 20) / 100 which is 30%.')),(0,r.kt)("admonition",{title:"Nay votes are not counted towards Support",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Support is a measure of voters who turned out either in favor of the referenda and who consciously\nabstained from it. Support does not include ",(0,r.kt)("em",{parentName:"p"},"nay")," votes. This avoids edge situations where ",(0,r.kt)("em",{parentName:"p"},"nay"),"\nvotes could push a referendum into confirming state. For example, imagine current approval is high\n(near 100%, way above the approval curve), and current support is just below the support curve. A\n",(0,r.kt)("em",{parentName:"p"},"nay")," could bump support above the support curve but not reduce approval below the approval curve.\nTherefore someone voting against a proposal would make it pass. Hence, a decrease in % of current\napproval through new votes does not directly translate into increasing support because Support needs\nto consider ",(0,r.kt)("em",{parentName:"p"},"nay")," votes.")),(0,r.kt)("p",null,"The figure above shows the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Even if the approval threshold is reached (i.e. % of current approval is greater than the approval\ncurve), the proposal only enters the confirmation period once the support threshold is also\nreached (i.e. % current support is greater than the underlying support curve)."),(0,r.kt)("li",{parentName:"ul"},"If the referendum meets the approval and support thresholds for the duration of the confirmation\nperiod, the proposal will be approved and will be scheduled for enactment. Each track has a\ndefault minimum Enactment Period and the approved referendum needs to wait till the end of it to\nbe executed. Powerful Tracks like ",(0,r.kt)("inlineCode",{parentName:"li"},"Root")," enforce a larger Enactment Period to ensure the network\nhas ample time to prepare for any changes the proposal may bring. The referendum proposers can\nalso choose to set the enactment period to be higher than its default value."),(0,r.kt)("li",{parentName:"ul"},"A referendum may exit the confirmation period when the thresholds are no longer met, due to new\n",(0,r.kt)("em",{parentName:"li"},"Nay")," votes or a change of existing ",(0,r.kt)("em",{parentName:"li"},"Aye")," or ",(0,r.kt)("em",{parentName:"li"},"Abstain")," votes to ",(0,r.kt)("em",{parentName:"li"},"Nay")," . Each time it exits, the\nconfirmation period clock is reset. For example, if the confirmation period is 20 minutes and a\nreferendum enters it just for 5 min before exiting, the next time it enters, it must be confirming\nfor 20 minutes (not 15 minutes)."),(0,r.kt)("li",{parentName:"ul"},"During the decision period, if a referendum fails to meet the approval and support thresholds for\nthe duration of the track-specific confirmation period, it fails and does not go to the enactment\nperiod (it may have to be resubmitted, see below)."),(0,r.kt)("li",{parentName:"ul"},"The approval curve starts with a value of 100% and gradually goes to 50%, but never below.\nAssuming all the active token supply has voted on a proposal, the conviction vote weighted support\nshould at least always be above 50% to pass.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"opengov-curves-pass",src:n(55745).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"Note that support may not increase monotonically as shown in the figure, as people might switch\nvotes."),(0,r.kt)("p",null,"Different Origins' tracks have different Confirmation Periods and requirements for approval and\nsupport. For additional details on the various origins and tracks, check out\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-origins#origins-and-tracks-info"},"this table"),". With proposals that use\nless privileged origins, it is far more reasonable to drop the required support to a more realistic\namount earlier than those which use highly privileged classes such as ",(0,r.kt)("inlineCode",{parentName:"p"},"Root"),"."),(0,r.kt)("h3",{id:"enactment"},"Enactment"),(0,r.kt)("admonition",{title:"Enactment in Governance v1",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#enactment"},"this page")," for more information about enactment in Governance\nv1.")),(0,r.kt)("p",null,"In Polkadot OpenGov, the proposer suggests the enactment period, but there are also a minimum set\nfor each Origin Track. For example, ",(0,r.kt)("inlineCode",{parentName:"p"},"root")," Origin approvals require an extended period because of\nthe importance of the changes they bring to the network."),(0,r.kt)("h2",{id:"voting-on-a-referendum"},"Voting on a Referendum"),(0,r.kt)("p",null,"In Governance V1, voters could cast only an ",(0,r.kt)("em",{parentName:"p"},"aye")," or ",(0,r.kt)("em",{parentName:"p"},"nay")," vote. In Polkadot OpenGov, voters can\nadditionally cast a ",(0,r.kt)("em",{parentName:"p"},"abstain")," and ",(0,r.kt)("em",{parentName:"p"},"split")," votes.\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#voting-on-referenda"},"Vote splitting")," allows voters to allocate\ndifferent votes for ",(0,r.kt)("em",{parentName:"p"},"aye"),", ",(0,r.kt)("em",{parentName:"p"},"nay"),", and ",(0,r.kt)("em",{parentName:"p"},"abstain"),". Voting with conviction is not possible when\nabstaining or splitting the votes."),(0,r.kt)("admonition",{title:"Only the last vote counts",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Voting a second time replaces your original vote, e.g. voting with 10\nDOT, then a second extrinsic to vote with 5\nDOT, means that you are voting with 5\nDOT, not 10\nDOT.")),(0,r.kt)("p",null,"Note that to successfully cast votes you need to have the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-accounts#existential-deposit-and-reaping"},"existential deposit")," and some additional funds\nto pay for transaction fees."),(0,r.kt)("h3",{id:"multirole-delegation"},"Multirole Delegation"),(0,r.kt)("p",null,"Polkadot OpenGov builds on the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-governance#delegations"},"vote delegation feature from Governance v1")," where a voter can\ndelegate their voting power to another voter. It does so by introducing a feature known as\n",(0,r.kt)("strong",{parentName:"p"},"multirole delegation"),", where voters can specify a different delegate for every class of\nreferendum in the system. Delegation can be done per track, and accounts can choose to select\ndifferent delegates (or no delegation) for each track."),(0,r.kt)("p",null,"For example, a voter could delegate one entity for managing a less potent referenda class, choose a\ndifferent delegate for another class with more powerful consequences and still retain full voting\npower over any remaining classes."),(0,r.kt)("admonition",{title:"Delegate your votes",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In Polkadot OpenGov you can delegate your votes to different entities, who will vote on your behalf.\nYou can delegate your votes using the\n",(0,r.kt)("a",{parentName:"p",href:"https://delegation.polkadot.network/"},(0,r.kt)("strong",{parentName:"a"},"Polkadot Delegation Dashboard")),". See\n",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=RapBYZc5ZPo"},"this video tutorial")," to learn about the features of\nthe dashboard."),(0,r.kt)("p",{parentName:"admonition"},"If you are staking directly and not through a nomination pool, you can use bonded tokens for voting.\nNote that if you are voting with conviction, your tokens will have a democracy lock in addition to\nthe staking lock. For more information about locks, see\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-accounts/#unlocking-locks"},"this page"),"."),(0,r.kt)("p",{parentName:"admonition"},"Democracy locks created through ",(0,r.kt)("a",{parentName:"p",href:"#voluntary-locking"},"conviction voting")," start the unlocking period\nafter a referendum ends, provided you voted with the winning side. In the case of delegations, the\nunlocking period countdown begins after the account undelegates. There can be different scenarios:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"if the account delegated votes to one delegate, then after undelegating, there will be one\nunlocking period with length dependent on the conviction multiplier."),(0,r.kt)("li",{parentName:"ul"},"if the account delegated votes to different delegates using different convictions, then after\nundelegating those delegates, there will be different unlocking periods with lengths dependent on\nthe conviction multipliers."))),(0,r.kt)("p",null,"It is worth noting that a user delegating their voting power does not imply that the delegate will\nhave control over the funds of the delegating user's account. That delegate's account can vote with\na user's voting power but won't be able to transfer balances, nominate a different set of\nvalidators, or execute any call other than voting on the tracks defined by the user."),(0,r.kt)("p",null,"The goal of delegations is to ensure the required support for proposals to be enacted is reached\nwhile keeping the overall design censorship-free. Also, voters might not have the technical\nknowledge to judge some referenda or might not have the time to read all referenda. Delegations\nallow voters to participate in OpenGov hands-free by delegating their voting power to trusted\nentities."),(0,r.kt)("p",null,"For a step-by-step outline of how to delegate voting power in Polkadot OpenGov, check out the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#delegations"},"Delegating Voting Power")," section on the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"Polkadot OpenGov Guides"),"."),(0,r.kt)("h2",{id:"resources"},"Resources"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/paritytech/substrate/tree/master/frame/democracy/src"},"Democracy Pallet")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://medium.com/polkadot-network/gov2-polkadots-next-generation-of-decentralised-governance-4d9ef657d11b"},"Governance v2")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://matrix.to/#/#Polkadot-Direction:parity.io"},"Polkadot Direction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://matrix.to/#/#Kusama-Direction:parity.io"},"Kusama Direction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://polkadot.polkassembly.io/"},"PolkAssembly"))),(0,r.kt)("hr",null),(0,r.kt)("admonition",{title:"Polkadot-JS Guides",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"If you are an advanced user, see the\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov"},"Polkadot-JS guides about OpenGov"),".")))}N.isMDXComponent=!0},55745:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-curves-nopass-27f6968907aeb88e87069d29ca062568.png"},65993:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-curves-pass-73b6c7d1849e26082880cd7d629a633e.png"},40176:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-overview-a56ef29a3a173f9dc2b60a9008dcfc1b.png"},1671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-timeline-26e5a1fae159676ab5052a4fd7416be5.png"},67506:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=n.p+"assets/images/opengov-track-capacity-a1e00e5bd7961ea13d38f79cf6fa4b9c.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/73a7060c.0ac6e680.js b/assets/js/73a7060c.0ac6e680.js new file mode 100644 index 000000000000..a60c4f245a8d --- /dev/null +++ b/assets/js/73a7060c.0ac6e680.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[5752],{47940:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var n=a(74165),o=a(15861),i=a(67294),r=a(87152),l=a(30967),s=a(67425);function p(e,t,a){return c.apply(this,arguments)}function c(){return(c=(0,o.Z)((0,n.Z)().mark((function e(t,a,o){var i,s,p,c,d;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,s=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return p=new r.U(i),e.next=21,l.G.create({provider:p});case 21:c=e.sent,(d=a.split(".")).forEach((function(e){e in c&&(c=c[e])})),e.t1=d[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return s=c.toString(),e.abrupt("break",35);case 29:return e.next=31,c();case 31:return s=(s=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+d[0]+") in "+a);case 35:return e.abrupt("return",s);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e,t,a,n){switch(t){case"humanReadable":(0,s.HumanReadable)(e,a,n);break;case"precise":(0,s.Precise)(e,a,n);break;case"blocksToDays":(0,s.BlocksToDays)(e,n);break;case"erasToDays":(0,s.ErasToDays)(e,n,a);break;case"percentage":(0,s.Percentage)(e,n);break;case"permillToPercent":(0,s.PermillToPercent)(e,n);break;case"arrayLength":(0,s.ArrayLength)(e,n);break;default:return void console.log("Ignoring unknown filter type")}}const h=function(e){var t=e.network,a=e.path,r=e.defaultValue,l=e.filter,s=void 0===l?void 0:l,c=(0,i.useState)(""),h=c[0],m=c[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==s?d(r.toString(),s,t,m):m(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://statemine-rpc.polkadot.io/";break;case"statemint":e="wss://statemint-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,n.Z)().mark((function e(){var o;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p(t,a,m);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==s?d(o,s,t,m):m(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(l){console.log(l)}}}),[]),h}},67425:e=>{var t="polkadot",a="kusama",n="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,l){var s=void 0;if(r===t||r===o)s=3;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=6}e=parseFloat(e),l((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(s)+" "+i[r].symbol).toString())},Precise:function(e,t,a){a(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var l=void 0;if(r===t||r===o)l=1;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=4}i((e/=l).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},72523:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>d});var n=a(87462),o=a(63366),i=(a(67294),a(3905)),r=(a(47940),["components"]),l={id:"learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",sidebar_label:"Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",keywords:["governance","referenda","proposal","voting","whitelist","fellowship","opengov","rank"],slug:"../learn-polkadot-technical-fellowship"},s=void 0,p={unversionedId:"learn/learn-polkadot-technical-fellowship",id:"learn/learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",source:"@site/../docs/learn/learn-polkadot-technical-fellowship.md",sourceDirName:"learn",slug:"/learn-polkadot-technical-fellowship",permalink:"/docs/learn-polkadot-technical-fellowship",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-polkadot-technical-fellowship.md",tags:[],version:"current",lastUpdatedBy:"Radha",lastUpdatedAt:1706610366,formattedLastUpdatedAt:"Jan 30, 2024",frontMatter:{id:"learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",sidebar_label:"Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",keywords:["governance","referenda","proposal","voting","whitelist","fellowship","opengov","rank"],slug:"../learn-polkadot-technical-fellowship"},sidebar:"docs",previous:{title:"OpenGov Origins",permalink:"/docs/learn-polkadot-opengov-origins"},next:{title:"Treasury",permalink:"/docs/learn-polkadot-opengov-treasury"}},c={},d=[{value:"Technical Fellowship Referenda",id:"technical-fellowship-referenda",level:2},{value:"Whitelisting",id:"whitelisting",level:3},{value:"Technical Fellowship Ranking and Salary",id:"technical-fellowship-ranking-and-salary",level:2},{value:"Membership Management",id:"membership-management",level:2},{value:"Becoming a Member",id:"becoming-a-member",level:3},{value:"Rank Updates",id:"rank-updates",level:3},{value:"Retain Rank",id:"retain-rank",level:4},{value:"Demotion and Suspension",id:"demotion-and-suspension",level:4}],h={toc:d},m="wrapper";function k(e){var t=e.components,l=(0,o.Z)(e,r);return(0,i.kt)(m,(0,n.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The Technical Fellowship is a self-governing body of experts and developers of Polkadot and Kusama\nnetworks protocols. It operates on-chain through the Polkadot\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/fellowship/referenda"},"Collectives"),"\nsystem chain and off-chain through the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows"},"Polkadot Fellows"),"\nrepository."),(0,i.kt)("admonition",{title:"Historical Context",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The Polkadot Technical Fellowship was established in 2022 and plays an important role in the\nPolkadot OpenGov. This fellowship replaced the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-governance#technical-committee"},"Technical Committee")," from Polkadot's first iteration of\ngovernance, and will be serving both the Polkadot and Kusama networks. This Fellowship is designed\nto be far broader in membership (i.e. to work well with even tens of thousands of members) and with\nfar lower barriers to entry both in terms of administrative process flow and levels of expertise.\nFor more information, read through the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/manifesto/blob/0c3df46d76625980b8b48742cb86f4d8fa6dda8d/manifesto.pdf"},"Fellowship Manifesto"),".")),(0,i.kt)("p",null,"Apart from the collectives system chain and the GitHub repository, the Polkadot Technical Fellowship\nalso uses multiple public avenues to discuss updates related to the Polkadot protocol. Their public\ndiscussions can be viewed on ",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/#fellowship-members:parity.io"},"this chatroom")," and\ntheir monthly meetings are posted to this OpenDev - Polkadot Fellowship Core Dev Call\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=5P6Axm4JrmQ&list=PLtyd7v_I7PGlDJCCCLGLjJ0yv33JAEE_-"},"YouTube playlist.")),(0,i.kt)("h2",{id:"technical-fellowship-referenda"},"Technical Fellowship Referenda"),(0,i.kt)("p",null,"The fellowship's governance model has multiple tracks with their own approval and support\nparameters, where the votes are weighted by the rank of the member. Members of the Fellowship can\nvote on any given Fellowship proposal and the aggregated opinion of the members (weighted by their\nrank) constitutes the Fellowship's collective opinion. The list of current and historic fellowship\nreferenda can be viewed on ",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/"},"Polkassembly")," or\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.subsquare.io/"},"Subsquare.")," The fellowship governance is primarily used for its\nmembership management, ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/RFCs"},"approving RFCs")," and whitelisting\nPolkadot OpenGov proposals created on the whitelist track."),(0,i.kt)("h3",{id:"whitelisting"},"Whitelisting"),(0,i.kt)("p",null,'Polkadot OpenGov allows the Technical Fellowship to authorize an origin known as\n"Whitelisted-Caller" to execute with Root-level privileges for calls approved by the Fellowship\n(currently only level-three fellows and above can vote for whitelist calls). Note that the\nfellowship cannot unanimously change the network parameters, conduct rescues or move assets. The\nwhitelisted proposals still have to go through the whole life cycle of an OpenGov referendum and can\nonly be enacted when the referendum passes successfully.'),(0,i.kt)("p",null,"The whitelisting process starts as a fellowship referenda with embedded XCM call from the\ncollectives system chain to the Polkadot relay chain. For instance,\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/referenda/68"},"the Polkadot Fellowship referenda 68")," was used to\n",(0,i.kt)("strong",{parentName:"p"},"whitelist")," ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/referenda/440"},"the Polkadot OpenGov referenda 440"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"whitelist-xcm",src:a(78193).Z,width:"2880",height:"374"})),(0,i.kt)("admonition",{title:"Submitting Whitelisted Proposals",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"For more information about how to submit a whitelisted proposal see the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#submitting-a-referendum-on-the-whitelisted-caller-track"},"dedicated advanced how-to guides"),".")),(0,i.kt)("h2",{id:"technical-fellowship-ranking-and-salary"},"Technical Fellowship Ranking and Salary"),(0,i.kt)("p",null,"The Fellowship ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/manifesto"},"manifesto")," outlines the requirements\nand expectations for individuals to attain and retain any given rank, ranging between 0 to 9. By\ndefault, an active account on the collectives system chain has no assigned rank and can be inducted\ninto the Polkadot Technical Fellowship starting with rank 0. The Fellowship Manifesto states that\nmembers should receive a monthly allowance on par with gross income in OECD countries. A\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/RFCs/pull/50"},"fellowship RFC")," was proposed with concrete\namounts for each ranked members."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Dan"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Title"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Annual Salary"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"I"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Member"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$10,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"II"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Proficient"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$20,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"III"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Fellow"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$80,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"IV"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Architect"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$120,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"V"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Architect Adept"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$160,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VI"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Grand Architect"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VII"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Free Master"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VIII"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Master Constant"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"IX"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Grand Master"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")))),(0,i.kt)("h2",{id:"membership-management"},"Membership Management"),(0,i.kt)("p",null,"The Polkadot technical Fellowship was initally ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/seeding"},"seeded"),"\nwith its members and their corresponding ranks, and got\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/motion/403"},"added on to Polkadot's Collectives")," system chain. All\nnew membership requests will go through the fellowship governance and the procedure is outlined in\nthe section below."),(0,i.kt)("h3",{id:"becoming-a-member"},"Becoming a Member"),(0,i.kt)("p",null,"As a member of the Polkadot Technical Fellowship, you are expected to faithfully uphold the below\ntenets:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Sincerely uphold the interests of Polkadot and avoid actions which clearly work against it."),(0,i.kt)("li",{parentName:"ul"},"Respect the philosophy and principles of Polkadot."),(0,i.kt)("li",{parentName:"ul"},"Respect the operational procedures, norms and voting conventions of the Fellowship."),(0,i.kt)("li",{parentName:"ul"},"Respect fellow Members and the wider community.")),(0,i.kt)("admonition",{title:"Register your interest",type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"For new fellowship inductions, Polkassembly has created an interface (still in beta) to\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/join-fellowship?network=collectives"},"apply for the Polkadot Technical Fellowship."),"\nThis initiative is funded by Polkadot treasury through\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/treasury/574"},"OpenGov referendum 373"))),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The fellowship manifesto states that any account may register to become a candidate for a basic\ndeposit, but that feature has not been added to the collectives runtime yet. To be added as a\ncandidate of the Polkadot Technical Fellowship, a pre-existing member with rank greater than or\nequal to 1 can initiate the process. The fellowship membership management is administered through\nthe\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/blob/master/substrate/frame/core-fellowship/src/lib.rs"},"core fellowship"),"\npallet.")),(0,i.kt)("p",null,"Before starting the candidate induction process, please ensure the candidate account is active and\nhas a balance greater than the existential deposit of the collectives system chain (0.1 DOT). It is\nrecommended that the candidate account also has a verified identity."),(0,i.kt)("p",null,"The first step is to add a preimage on the collectives system chain. This preimage should include\nthe call to ",(0,i.kt)("inlineCode",{parentName:"p"},"induct")," a candidate account, as shown below. The preimage can be added by any account\non the collectives system chain. The preimage hash of this call will later be used for creating a\nfellowship referenda with an approriate origin and track."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-induct",src:a(8093).Z,width:"2156",height:"956"})),(0,i.kt)("p",null,"The next step is to create a fellowship referenda, which can only be done by a pre-existing\nTechnical Fellowship member. When a fellowship member navigates to Governance > Fellowship >\nReferenda, they should be able to see a submit proposal button. In the example below,submission\ntrack is chosen as ",(0,i.kt)("inlineCode",{parentName:"p"},"1/members"),", origin as ",(0,i.kt)("inlineCode",{parentName:"p"},"FellowshipOrigins")," and fellowship origins as ",(0,i.kt)("inlineCode",{parentName:"p"},"Members"),".\nThis selection should work for inducting an account without any rank to the fellowship as a\ncandidate with rank 0. After copying the preimage hash in the designated field, the preimage length\nwill automatically be populated."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-induct-proposal",src:a(90569).Z,width:"2135",height:"1457"})),(0,i.kt)("p",null,"After submitting the proposal, the voting can commence. A decision deposit needs to be placed for\nthis fellowship referendum to be decided. After the fellowship referenda successfully passes, the\ncandidate is successfully inducted into the Polkadot Fellowship with rank 0."),(0,i.kt)("h3",{id:"rank-updates"},"Rank Updates"),(0,i.kt)("p",null,"The Polkadot Technical Fellowship members are expected to provide a periodic evidence to request for\nretaining their rank or to get promoted to a higher rank. Any fellowship member upto rank 4 can be\npromoted to the next rank through a fellowship referenda that can be voted by the members who are 2\nranks higher. For instance, the fellowship\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.subsquare.io/fellowship/referenda/64"},"referenda 64")," which promotes a member\nfrom rank 1 to rank 2 can only be voted by members whose ranks are greater than or equal to 3.\nPromotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov\nreferendum."),(0,i.kt)("p",null,"This preimage example should include the call to ",(0,i.kt)("inlineCode",{parentName:"p"},"promote")," an account to a specific rank, as shown\nbelow. This preimage can be added by any account on the collectives system chain."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-promote",src:a(72131).Z,width:"2154",height:"1068"})),(0,i.kt)("p",null,"In the snapshot below, the submission track is chosen as ",(0,i.kt)("inlineCode",{parentName:"p"},"21/Promote to I Dan"),", origin as\n",(0,i.kt)("inlineCode",{parentName:"p"},"FellowshipOrigins")," and fellowship origins as ",(0,i.kt)("inlineCode",{parentName:"p"},"PromoteTo1Dan"),". This selection should work for\npromoting a candidate with rank 0 to a member with rank 1."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-promote-proposal",src:a(77932).Z,width:"1930",height:"1290"})),(0,i.kt)("p",null,"For promoting a member from Rank 1 to Rank 2, the submission track can be chosen as\n",(0,i.kt)("inlineCode",{parentName:"p"},"22/Promote to II Dan"),", origin as ",(0,i.kt)("inlineCode",{parentName:"p"},"FellowshipOrigins")," and fellowship origins as ",(0,i.kt)("inlineCode",{parentName:"p"},"PromoteTo2Dan"),".\nOnly the members with Rank >= 3 can vote on this proposal."),(0,i.kt)("h4",{id:"retain-rank"},"Retain Rank"),(0,i.kt)("p",null,"To retain a rank, the Polkadot Fellowship members are expected to submit evidence of work in an\non-going basis."),(0,i.kt)("h4",{id:"demotion-and-suspension"},"Demotion and Suspension"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Demotion")," occurs automatically after a given period has elapsed, and the member is unable to\ndefend their position to their peers."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Suspension")," can happen only through a Polkadot OpenGov referendum, which ensures that the\nFellowship's bias alone does not necessarily result in expulsion."))}k.isMDXComponent=!0},90569:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-candidate-proposal-122577015c3accf667cc0d656db4f106.png"},8093:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-induct-candidate-c63b9ceb860299e4794fd78db413c4fd.png"},72131:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-promote-member-e1f54272fb62c29759d3003503f43b4e.png"},77932:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-promotion-proposal-8c5e9fd360d66f03e6168e923e3a970c.png"},78193:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-whitelist-xcm-02a3e8aa5ac0c678b739738f383a6e57.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/73a7060c.61c9b86d.js b/assets/js/73a7060c.61c9b86d.js deleted file mode 100644 index d52e6689709e..000000000000 --- a/assets/js/73a7060c.61c9b86d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[5752],{47940:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var n=a(74165),o=a(15861),i=a(67294),r=a(87152),l=a(30967),s=a(67425);function p(e,t,a){return c.apply(this,arguments)}function c(){return(c=(0,o.Z)((0,n.Z)().mark((function e(t,a,o){var i,s,p,c,d;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,s=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return p=new r.U(i),e.next=21,l.G.create({provider:p});case 21:c=e.sent,(d=a.split(".")).forEach((function(e){e in c&&(c=c[e])})),e.t1=d[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return s=c.toString(),e.abrupt("break",35);case 29:return e.next=31,c();case 31:return s=(s=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+d[0]+") in "+a);case 35:return e.abrupt("return",s);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e,t,a,n){switch(t){case"humanReadable":(0,s.HumanReadable)(e,a,n);break;case"precise":(0,s.Precise)(e,a,n);break;case"blocksToDays":(0,s.BlocksToDays)(e,n);break;case"erasToDays":(0,s.ErasToDays)(e,n,a);break;case"percentage":(0,s.Percentage)(e,n);break;case"permillToPercent":(0,s.PermillToPercent)(e,n);break;case"arrayLength":(0,s.ArrayLength)(e,n);break;default:return void console.log("Ignoring unknown filter type")}}const h=function(e){var t=e.network,a=e.path,r=e.defaultValue,l=e.filter,s=void 0===l?void 0:l,c=(0,i.useState)(""),h=c[0],m=c[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==s?d(r.toString(),s,t,m):m(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://statemine-rpc.polkadot.io/";break;case"statemint":e="wss://statemint-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,n.Z)().mark((function e(){var o;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,p(t,a,m);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==s?d(o,s,t,m):m(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(l){console.log(l)}}}),[]),h}},67425:e=>{var t="polkadot",a="kusama",n="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,l){var s=void 0;if(r===t||r===o)s=3;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=6}e=parseFloat(e),l((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(s)+" "+i[r].symbol).toString())},Precise:function(e,t,a){a(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var l=void 0;if(r===t||r===o)l=1;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=4}i((e/=l).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},72523:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>d});var n=a(87462),o=a(63366),i=(a(67294),a(3905)),r=(a(47940),["components"]),l={id:"learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",sidebar_label:"Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",keywords:["governance","referenda","proposal","voting","whitelist","fellowship","opengov","rank"],slug:"../learn-polkadot-technical-fellowship"},s=void 0,p={unversionedId:"learn/learn-polkadot-technical-fellowship",id:"learn/learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",source:"@site/../docs/learn/learn-polkadot-technical-fellowship.md",sourceDirName:"learn",slug:"/learn-polkadot-technical-fellowship",permalink:"/docs/learn-polkadot-technical-fellowship",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-polkadot-technical-fellowship.md",tags:[],version:"current",lastUpdatedBy:"Radha",lastUpdatedAt:1706217711,formattedLastUpdatedAt:"Jan 25, 2024",frontMatter:{id:"learn-polkadot-technical-fellowship",title:"Polkadot Technical Fellowship",sidebar_label:"Technical Fellowship",description:"Self-governing body of experts and developers of the Polkadot protocol.",keywords:["governance","referenda","proposal","voting","whitelist","fellowship","opengov","rank"],slug:"../learn-polkadot-technical-fellowship"},sidebar:"docs",previous:{title:"OpenGov Origins",permalink:"/docs/learn-polkadot-opengov-origins"},next:{title:"Treasury",permalink:"/docs/learn-polkadot-opengov-treasury"}},c={},d=[{value:"Technical Fellowship Referenda",id:"technical-fellowship-referenda",level:2},{value:"Whitelisting",id:"whitelisting",level:3},{value:"Technical Fellowship Ranking and Salary",id:"technical-fellowship-ranking-and-salary",level:2},{value:"Membership Management",id:"membership-management",level:2},{value:"Becoming a Member",id:"becoming-a-member",level:3},{value:"Promotion and Demotion",id:"promotion-and-demotion",level:3}],h={toc:d},m="wrapper";function k(e){var t=e.components,l=(0,o.Z)(e,r);return(0,i.kt)(m,(0,n.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The Technical Fellowship is a self-governing body of experts and developers of Polkadot and Kusama\nnetworks protocols. It operates on-chain through the Polkadot\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/fellowship/referenda"},"Collectives"),"\nsystem chain and off-chain through the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows"},"Polkadot Fellows"),"\nrepository."),(0,i.kt)("admonition",{title:"Historical Context",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The Polkadot Technical Fellowship was established in 2022 and plays an important role in the\nPolkadot OpenGov. This fellowship replaced the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-governance#technical-committee"},"Technical Committee")," from Polkadot's first iteration of\ngovernance, and will be serving both the Polkadot and Kusama networks. This Fellowship is designed\nto be far broader in membership (i.e. to work well with even tens of thousands of members) and with\nfar lower barriers to entry both in terms of administrative process flow and levels of expertise.\nFor more information, read through the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/manifesto/blob/0c3df46d76625980b8b48742cb86f4d8fa6dda8d/manifesto.pdf"},"Fellowship Manifesto"),".")),(0,i.kt)("p",null,"Apart from the collectives system chain and the GitHub repository, the Polkadot Technical Fellowship\nalso uses multiple public avenues to discuss updates related to the Polkadot protocol. Their public\ndiscussions can be viewed on ",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/#fellowship-members:parity.io"},"this chatroom")," and\ntheir monthly meetings are posted to this OpenDev - Polkadot Fellowship Core Dev Call\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=5P6Axm4JrmQ&list=PLtyd7v_I7PGlDJCCCLGLjJ0yv33JAEE_-"},"YouTube playlist.")),(0,i.kt)("h2",{id:"technical-fellowship-referenda"},"Technical Fellowship Referenda"),(0,i.kt)("p",null,"The fellowship's governance model has multiple tracks with their own approval and support\nparameters, where the votes are weighted by the rank of the member. Members of the Fellowship can\nvote on any given Fellowship proposal and the aggregated opinion of the members (weighted by their\nrank) constitutes the Fellowship's collective opinion. The list of current and historic fellowship\nreferenda can be viewed on ",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/"},"Polkassembly")," or\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.subsquare.io/"},"Subsquare.")," The fellowship governance is primarily used for its\nmembership management, ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/RFCs"},"approving RFCs")," and whitelisting\nPolkadot OpenGov proposals created on the whitelist track."),(0,i.kt)("h3",{id:"whitelisting"},"Whitelisting"),(0,i.kt)("p",null,'Polkadot OpenGov allows the Technical Fellowship to authorize an origin known as\n"Whitelisted-Caller" to execute with Root-level privileges for calls approved by the Fellowship\n(currently only level-three fellows and above can vote for whitelist calls). Note that the\nfellowship cannot unanimously change the network parameters, conduct rescues or move assets. The\nwhitelisted proposals still have to go through the whole life cycle of an OpenGov referendum and can\nonly be enacted when the referendum passes successfully.'),(0,i.kt)("p",null,"The whitelisting process starts as a fellowship referenda with embedded XCM call from the\ncollectives system chain to the Polkadot relay chain. For instance,\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/referenda/68"},"the Polkadot Fellowship referenda 68")," was used to\n",(0,i.kt)("strong",{parentName:"p"},"whitelist")," ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/referenda/440"},"the Polkadot OpenGov referenda 440"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"whitelist-xcm",src:a(78193).Z,width:"2880",height:"374"})),(0,i.kt)("admonition",{title:"Submitting Whitelisted Proposals",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"For more information about how to submit a whitelisted proposal see the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#submitting-a-referendum-on-the-whitelisted-caller-track"},"dedicated advanced how-to guides"),".")),(0,i.kt)("h2",{id:"technical-fellowship-ranking-and-salary"},"Technical Fellowship Ranking and Salary"),(0,i.kt)("p",null,"The Fellowship ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/manifesto"},"manifesto")," outlines the requirements\nand expectations for individuals to attain and retain any given rank, ranging between 0 to 9. By\ndefault, an active account on the collectives system chain has no assigned rank and can be inducted\ninto the Polkadot Technical Fellowship starting with rank 0. The Fellowship Manifesto states that\nmembers should receive a monthly allowance on par with gross income in OECD countries. A\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/RFCs/pull/50"},"fellowship RFC")," was proposed with concrete\namounts for each ranked members."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Dan"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Title"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Annual Salary"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"I"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Member"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$10,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"II"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Proficient"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$20,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"III"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Fellow"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$80,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"IV"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Architect"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$120,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"V"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Architect Adept"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$160,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VI"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Grand Architect"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VII"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Free Master"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"VIII"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Master Constant"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"IX"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Grand Master"),(0,i.kt)("td",{parentName:"tr",align:"center"},"$200,000")))),(0,i.kt)("h2",{id:"membership-management"},"Membership Management"),(0,i.kt)("p",null,"The Polkadot technical Fellowship was initally ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/polkadot-fellows/seeding"},"seeded"),"\nwith its members and their corresponding ranks, and got\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/motion/403"},"added on to Polkadot's Collectives")," system chain. All\nnew membership requests will go through the fellowship governance and the procedure is outlined in\nthe section below."),(0,i.kt)("h3",{id:"becoming-a-member"},"Becoming a Member"),(0,i.kt)("p",null,"As a member of the Polkadot Technical Fellowship, you are expected to faithfully uphold the below\ntenets:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Sincerely uphold the interests of Polkadot and avoid actions which clearly work against it."),(0,i.kt)("li",{parentName:"ul"},"Respect the philosophy and principles of Polkadot."),(0,i.kt)("li",{parentName:"ul"},"Respect the operational procedures, norms and voting conventions of the Fellowship."),(0,i.kt)("li",{parentName:"ul"},"Respect fellow Members and the wider community.")),(0,i.kt)("admonition",{title:"Register your interest",type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"For new fellowship inductions, Polkassembly has created an interface (still in beta) to\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.polkassembly.io/join-fellowship?network=collectives"},"apply for the Polkadot Technical Fellowship."),"\nThis initiative is funded by Polkadot treasury through\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/treasury/574"},"OpenGov referendum 373"))),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The fellowship manifesto states that any account may register to become a candidate for a basic\ndeposit, but that feature has not been added to the collectives runtime yet.")),(0,i.kt)("p",null,"To be added as a candidate of the Polkadot Technical Fellowship, a pre-existing member with rank\ngreater than or equal to 1 can initiate the process. The fellowship membership management is\nadministered through the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/blob/master/substrate/frame/core-fellowship/src/lib.rs"},"core fellowship"),"\npallet."),(0,i.kt)("p",null,"Before starting the candidate induction process, please ensure the candidate account is active and\nhas a balance greater than the existential deposit of the collectives system chain (0.1 DOT). It is\nrecommended that the candidate account also has a verified identity."),(0,i.kt)("p",null,"The first step is to add a preimage on the collectives system chain. This preimage should include\nthe call to ",(0,i.kt)("inlineCode",{parentName:"p"},"induct")," a candidate account, as shown below. The preimage can be added by any account\non the collectives system chain. The preimage hash of this call will later be used for creating a\nfellowship referenda with an approriate origin and track."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-induct",src:a(8093).Z,width:"2156",height:"956"})),(0,i.kt)("p",null,"The next step is to create a fellowship referenda, which can only be done by a pre-existing\nTechnical Fellowship member. When a fellowship member navigates to Governance > Fellowship >\nReferenda, they should be able to see a submit proposal button. In the example below,submission\ntrack is chosen as ",(0,i.kt)("inlineCode",{parentName:"p"},"1/members"),", origin as ",(0,i.kt)("inlineCode",{parentName:"p"},"FellowshipOrigins")," and fellowship origins as ",(0,i.kt)("inlineCode",{parentName:"p"},"Members"),".\nThis selection should work for inducting an account without any rank to the fellowship as a\ncandidate with rank 0. After copying the preimage hash in the designated field, the preimage length\nwill automatically be populated."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-induct-proposal",src:a(90569).Z,width:"2135",height:"1457"})),(0,i.kt)("p",null,"After submitting the proposal, the voting can commence. A decision deposit needs to be placed for\nthis fellowship referendum to be decided. After the fellowship referenda successfully passes, the\ncandidate is successfully inducted into the Polkadot Fellowship with rank 0."),(0,i.kt)("h3",{id:"promotion-and-demotion"},"Promotion and Demotion"),(0,i.kt)("p",null,"Any fellowship member upto rank 4 can be promoted to the next rank through a fellowship referenda\nthat can be voted by the members who are 2 ranks higher. For instance, the fellowship\n",(0,i.kt)("a",{parentName:"p",href:"https://collectives.subsquare.io/fellowship/referenda/64"},"referenda 64")," which promotes a member\nfrom rank 1 to rank 2 can only be voted by members whose ranks are greater than or equal to 3.\nPromotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov\nreferendum."),(0,i.kt)("p",null,"This preimage example should include the call to ",(0,i.kt)("inlineCode",{parentName:"p"},"promote")," an account to a specific rank, as shown\nbelow. This preimage can be added by any account on the collectives system chain."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-promote",src:a(72131).Z,width:"2154",height:"1068"})),(0,i.kt)("p",null,"In the snapshot below, the submission track is chosen as ",(0,i.kt)("inlineCode",{parentName:"p"},"21/Promote to 1 Dan"),", origin as\n",(0,i.kt)("inlineCode",{parentName:"p"},"FellowshipOrigins")," and fellowship origins as ",(0,i.kt)("inlineCode",{parentName:"p"},"PromoteTo1Dan"),". This selection should work for\npromoting a candidate with rank 0 to a member with rank 1."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"candidate-promote-proposal",src:a(77932).Z,width:"1930",height:"1290"})),(0,i.kt)("p",null,"To retain a rank, the Polkadot Fellowship members are expected to submit evidence of work in an\non-going basis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Demotion")," occurs automatically after a given period has elapsed, and the member is unable to\ndefend their position to their peers."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Suspension")," can happen only through a Polkadot OpenGov referendum, which ensures that the\nFellowship's bias alone does not necessarily result in expulsion."))}k.isMDXComponent=!0},90569:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-candidate-proposal-122577015c3accf667cc0d656db4f106.png"},8093:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-induct-candidate-c63b9ceb860299e4794fd78db413c4fd.png"},72131:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-promote-member-e1f54272fb62c29759d3003503f43b4e.png"},77932:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-promotion-proposal-8c5e9fd360d66f03e6168e923e3a970c.png"},78193:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/fellowship-whitelist-xcm-02a3e8aa5ac0c678b739738f383a6e57.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.dc771d78.js b/assets/js/runtime~main.17eef2f2.js similarity index 98% rename from assets/js/runtime~main.dc771d78.js rename to assets/js/runtime~main.17eef2f2.js index 58951b68a8f1..e99dd80485be 100644 --- a/assets/js/runtime~main.dc771d78.js +++ b/assets/js/runtime~main.17eef2f2.js @@ -1 +1 @@ -(()=>{"use strict";var e,d,f,a,b={},c={};function r(e){var d=c[e];if(void 0!==d)return d.exports;var f=c[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,e=[],r.O=(d,f,a,b)=>{if(!f){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,a,b]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};d=d||[null,f({}),f([]),f(f)];for(var t=2&a&&e;"object"==typeof t&&!~d.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((d=>c[d]=()=>e[d]));return c.default=()=>e,r.d(b,c),b},r.d=(e,d)=>{for(var f in d)r.o(d,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:d[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,f)=>(r.f[f](e,d),d)),[])),r.u=e=>"assets/js/"+({1:"f4fb6e9c",6:"408829bd",12:"1d6d4797",43:"74985360",53:"935f2afb",63:"9f319605",150:"77c23c97",192:"f189ca9f",217:"c7a044bb",250:"f2717f8e",315:"9528ac88",356:"797239df",502:"2d429218",537:"3829cf1d",576:"f52abf29",601:"0c06bca3",609:"d569989b",657:"386bfe51",691:"145746f5",810:"23498fd5",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1486:"8dd7cee0",1494:"b21dd8a7",1506:"c977dfe8",1529:"ffe9c3c9",1585:"33b0bcab",1598:"7fbac68a",1678:"fa343ad1",1686:"f7191335",1703:"a5002e4a",1723:"0df78d26",1748:"987d08ef",1774:"9e6341e5",1786:"d9ef69a7",1825:"48074a08",1872:"78e1e977",1953:"1ed3671a",1957:"df154d69",1966:"f47489cd",1979:"0cb62240",2008:"4f031749",2042:"dd32e389",2078:"84f79495",2117:"21877fa5",2119:"6d5c9a28",2136:"ecb495b7",2169:"1646726c",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2354:"493c7fdf",2399:"8d3a1bf8",2483:"d6d2b2d5",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2609:"db0b42b0",2633:"e2e89062",2635:"0b632434",2665:"f4130007",2677:"ece9fdae",2704:"f3bde756",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2791:"7d54ab5a",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3330:"e31fc461",3332:"3497b7c6",3347:"32dac8d4",3348:"7ccc428f",3356:"f14351c1",3452:"3d1bf5db",3484:"5c90fc9b",3513:"41b7b3e8",3554:"d5909206",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3837:"beb5436b",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4174:"a7c27f4d",4195:"c4f5d8e4",4338:"84ede15a",4355:"19ed4d4c",4363:"f2c21b54",4379:"c662f00a",4428:"991ceaa9",4445:"4d9b9869",4476:"f4003c83",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4620:"48d75399",4634:"54338ffb",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4825:"06ea9e61",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",5005:"320c8a05",5011:"7e9389ad",5013:"c41801b5",5103:"db039c7f",5157:"d27ae88d",5281:"31bd35e0",5422:"b3719d54",5483:"f7acb151",5492:"1882e65d",5526:"0c68fb82",5548:"d6b0148d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5989:"fbf58567",6104:"c7c5ba1a",6110:"b9c2850c",6140:"32e8da05",6220:"d01f45b7",6253:"a29dc56e",6255:"452ad91d",6277:"a62d9768",6286:"059e0573",6294:"bbba852d",6312:"dbc4065c",6325:"3002ebf4",6357:"43cda9e8",6373:"ceaa29cb",6482:"49816380",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6687:"bf789d83",6689:"f2521980",6730:"73617284",6776:"666ba125",6779:"c5d9e474",6827:"279fb1d6",6862:"60e73337",6918:"29a046f3",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7280:"fbea1897",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7485:"d3db551a",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7778:"41871d53",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8067:"69b97ecd",8115:"8247eba8",8138:"694672cd",8139:"386099fc",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8355:"c91a9c06",8361:"824749c6",8444:"28b84bbb",8609:"ed3409b3",8648:"71ed82b9",8702:"a74a59a0",8757:"83d4859f",8791:"ab138bf8",8831:"3bd77df4",8855:"d3a753cf",8860:"766a10e1",8866:"98a30fd8",8876:"31c99aa1",8901:"b48c599b",9062:"b38833d4",9071:"60738e36",9112:"a4b71220",9126:"924835c1",9217:"64c7e1cc",9226:"2f3b630e",9247:"8167490d",9276:"e344dd79",9315:"6d2ffbf3",9323:"131c7f55",9478:"c7a2145e",9514:"1be78505",9548:"f95cee6f",9626:"32c9742a",9764:"dc776cbc",9779:"cd144357",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9905:"b0cb055f",9993:"482bfb5c"}[e]||e)+"."+{1:"5563b650",6:"54b24b97",12:"9f327517",43:"c0a56a28",53:"39cfab57",63:"4e5acc1b",150:"dcf5e34f",192:"2ac0e4f9",217:"0102c432",250:"11cfd82d",315:"1fbe91c6",356:"220d0258",502:"3789530f",537:"2aa85719",576:"6b344346",601:"6806af70",609:"7ea29085",657:"f5513d14",691:"74ddc873",810:"f27faee3",1062:"e04ac837",1083:"ac5baa92",1090:"26932415",1211:"84a813cb",1213:"fee6731f",1239:"5f1e8cea",1288:"3482a532",1299:"7dda7011",1372:"44b4d9b2",1415:"68f49da4",1419:"7ba32ca0",1426:"ad86846c",1446:"2265d608",1451:"168bea6c",1486:"88c52f6d",1494:"b887110e",1506:"c56070c7",1529:"72c67a2d",1585:"e1ec66d3",1598:"c2253902",1678:"b3589c09",1686:"ce7ae0b6",1703:"62855a55",1723:"86de2f74",1748:"61758801",1774:"1c405b46",1786:"6a2d15ec",1825:"c534a999",1872:"342366ba",1953:"e4392cf0",1957:"d99c9092",1966:"70e3ff3a",1979:"6d282955",2008:"32bb0efa",2042:"2483fb69",2078:"17164550",2117:"0678ac75",2119:"783b1699",2136:"dbf5ae7f",2169:"1a16bf38",2194:"8cc30adb",2242:"f254b300",2248:"51e116c1",2354:"25f75ea0",2399:"97692e37",2483:"47c545c2",2507:"1df35914",2508:"b4c49d3b",2552:"6484aed3",2581:"331a4147",2609:"53e26c77",2633:"52d5c353",2635:"830edb6d",2665:"c197c6c2",2677:"2e640844",2704:"c83746c5",2712:"d084caff",2749:"9a8b4034",2754:"82d7eade",2758:"7a12fb0f",2791:"19a933a8",2884:"3b223315",2909:"5449596f",2914:"ace15b40",2949:"7738f0eb",3066:"2d6ba895",3091:"49ed30e6",3132:"85a16703",3262:"9288e4b5",3330:"f8f9d28c",3332:"59059207",3347:"bc5aa7bf",3348:"32c50c47",3356:"6ee81354",3452:"3a04e762",3484:"e60b3258",3513:"ed690a14",3554:"6dc12371",3599:"3cf04fd0",3620:"289ad75c",3643:"74198f90",3665:"fb1d42b5",3667:"48d84111",3668:"b34aa74c",3669:"1aa1629f",3757:"636d9b7e",3837:"7aa1b869",3842:"e6053c41",3933:"074bfdbb",3945:"2cb20b84",3978:"156c7716",4004:"03a19c6b",4097:"e39eee97",4105:"5e24a8e9",4126:"c0e27ab1",4143:"c3bc51cc",4174:"d074f050",4195:"e4766880",4325:"2eb61da6",4338:"92d49f53",4355:"5f97f4b9",4363:"3d90cfe3",4379:"2d13fe17",4428:"60163a9e",4445:"75e079a4",4476:"c64cea00",4507:"f1de04f5",4537:"b4b375dd",4541:"978ae83c",4566:"ab0d60ad",4620:"1fa1d4bf",4634:"19df48c8",4666:"abf3d2b4",4672:"1f4a5801",4674:"97d169c9",4825:"36571112",4885:"68afaf38",4909:"3ae4713d",4916:"4b3a7688",4972:"2c004fcc",5005:"20bc3398",5011:"98b0975e",5013:"00541302",5103:"3f268ad3",5157:"a57342ae",5281:"6761b31b",5422:"30e3a253",5483:"eedb7554",5492:"7b10a32b",5526:"ad82cb49",5548:"e68f018e",5651:"701df6e6",5704:"70bd0ba6",5752:"61c9b86d",5989:"0b1cb12b",6104:"3442ab79",6110:"0933da80",6140:"93e20266",6220:"8b344451",6253:"fe535738",6255:"8509f60e",6277:"0a2828ba",6286:"2d39bee6",6294:"b077023f",6312:"6138d82c",6316:"24db8bc9",6325:"9fcf1b01",6357:"de0a02d5",6373:"b8a24443",6482:"502a0b67",6495:"66df9496",6585:"eb7aa9cb",6598:"5f760aa9",6673:"4c461033",6687:"65686742",6689:"20204449",6730:"ec349f4d",6776:"0a7bd7c5",6779:"78c472da",6827:"9584a1c6",6862:"1ab7f2a1",6918:"61dac2e1",6920:"825f3ea8",6945:"96d36007",6946:"62348511",7022:"fea426f7",7061:"89e327b0",7202:"df3bbe8c",7211:"4266a392",7280:"47e41d56",7288:"995d5f1d",7313:"196896d2",7368:"809981c2",7388:"53d48c10",7466:"6c38d255",7485:"54197f47",7584:"351e4cd6",7633:"b6985db0",7654:"3c0e212d",7683:"d3462a4d",7714:"f83eb498",7724:"2906ce0b",7778:"8da5b4da",7799:"88bce1a8",7823:"6c8a30f2",7830:"a2703576",7837:"e772d597",7858:"f9862ed2",7908:"0da511b2",7918:"916bc4d8",7920:"16d7152d",7940:"f7aae43c",7961:"05b141e2",8034:"dca0d1af",8047:"ce7a90ea",8067:"af36ecc3",8115:"2ebb714e",8138:"408bfd7d",8139:"7ecd88ce",8178:"62f5ed0b",8191:"c60044c4",8215:"775d309b",8236:"63fecdb9",8270:"37d9cdce",8355:"c718131d",8361:"7e27723e",8444:"d1bb4e6e",8609:"e1aa35a1",8648:"fd581bf9",8702:"bd9f5fa0",8757:"4f1ee155",8791:"9640365f",8831:"ec7cac70",8855:"9d00af7a",8860:"48171767",8866:"4bdda915",8876:"a30609d2",8894:"ba661129",8901:"cc3ae736",9062:"b5c6d62c",9071:"c0edb4c9",9112:"38b794db",9126:"c1b79774",9217:"697f935c",9226:"4e30fa93",9247:"3b67c817",9276:"5fcd6da7",9315:"d5006aa3",9323:"1d8405cd",9447:"216e163d",9478:"44736e74",9487:"48bf43fe",9514:"693800c6",9548:"f095b5ce",9626:"b43c6d01",9764:"012ce7bf",9779:"4c7efdf9",9802:"11684b0f",9806:"c3977137",9817:"5ba13cdf",9905:"3e1ce1bd",9993:"6a9e0649"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),a={},r.l=(e,d,f,b)=>{if(a[e])a[e].push(d);else{var c,t;if(void 0!==f)for(var o=document.getElementsByTagName("script"),n=0;n{c.onerror=c.onload=null,clearTimeout(u);var b=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),b&&b.forEach((e=>e(f))),d)return d(f)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),t&&document.head.appendChild(c)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"7830",17896441:"7918",49816380:"6482",73617284:"6730",74985360:"43",f4fb6e9c:"1","408829bd":"6","1d6d4797":"12","935f2afb":"53","9f319605":"63","77c23c97":"150",f189ca9f:"192",c7a044bb:"217",f2717f8e:"250","9528ac88":"315","797239df":"356","2d429218":"502","3829cf1d":"537",f52abf29:"576","0c06bca3":"601",d569989b:"609","386bfe51":"657","145746f5":"691","23498fd5":"810",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","8dd7cee0":"1486",b21dd8a7:"1494",c977dfe8:"1506",ffe9c3c9:"1529","33b0bcab":"1585","7fbac68a":"1598",fa343ad1:"1678",f7191335:"1686",a5002e4a:"1703","0df78d26":"1723","987d08ef":"1748","9e6341e5":"1774",d9ef69a7:"1786","48074a08":"1825","78e1e977":"1872","1ed3671a":"1953",df154d69:"1957",f47489cd:"1966","0cb62240":"1979","4f031749":"2008",dd32e389:"2042","84f79495":"2078","21877fa5":"2117","6d5c9a28":"2119",ecb495b7:"2136","1646726c":"2169","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","493c7fdf":"2354","8d3a1bf8":"2399",d6d2b2d5:"2483","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",db0b42b0:"2609",e2e89062:"2633","0b632434":"2635",f4130007:"2665",ece9fdae:"2677",f3bde756:"2704",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758","7d54ab5a":"2791","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262",e31fc461:"3330","3497b7c6":"3332","32dac8d4":"3347","7ccc428f":"3348",f14351c1:"3356","3d1bf5db":"3452","5c90fc9b":"3484","41b7b3e8":"3513",d5909206:"3554","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",beb5436b:"3837",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",a7c27f4d:"4174",c4f5d8e4:"4195","84ede15a":"4338","19ed4d4c":"4355",f2c21b54:"4363",c662f00a:"4379","991ceaa9":"4428","4d9b9869":"4445",f4003c83:"4476",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","48d75399":"4620","54338ffb":"4634",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","06ea9e61":"4825","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","320c8a05":"5005","7e9389ad":"5011",c41801b5:"5013",db039c7f:"5103",d27ae88d:"5157","31bd35e0":"5281",b3719d54:"5422",f7acb151:"5483","1882e65d":"5492","0c68fb82":"5526",d6b0148d:"5548","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",fbf58567:"5989",c7c5ba1a:"6104",b9c2850c:"6110","32e8da05":"6140",d01f45b7:"6220",a29dc56e:"6253","452ad91d":"6255",a62d9768:"6277","059e0573":"6286",bbba852d:"6294",dbc4065c:"6312","3002ebf4":"6325","43cda9e8":"6357",ceaa29cb:"6373","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",bf789d83:"6687",f2521980:"6689","666ba125":"6776",c5d9e474:"6779","279fb1d6":"6827","60e73337":"6862","29a046f3":"6918",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211",fbea1897:"7280","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466",d3db551a:"7485","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","41871d53":"7778","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034","69b97ecd":"8067","8247eba8":"8115","694672cd":"8138","386099fc":"8139","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",c91a9c06:"8355","824749c6":"8361","28b84bbb":"8444",ed3409b3:"8609","71ed82b9":"8648",a74a59a0:"8702","83d4859f":"8757",ab138bf8:"8791","3bd77df4":"8831",d3a753cf:"8855","766a10e1":"8860","98a30fd8":"8866","31c99aa1":"8876",b48c599b:"8901",b38833d4:"9062","60738e36":"9071",a4b71220:"9112","924835c1":"9126","64c7e1cc":"9217","2f3b630e":"9226","8167490d":"9247",e344dd79:"9276","6d2ffbf3":"9315","131c7f55":"9323",c7a2145e:"9478","1be78505":"9514",f95cee6f:"9548","32c9742a":"9626",dc776cbc:"9764",cd144357:"9779","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817",b0cb055f:"9905","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(d,f)=>{var a=r.o(e,d)?e[d]:void 0;if(0!==a)if(a)f.push(a[2]);else if(/^(1303|532)$/.test(d))e[d]=0;else{var b=new Promise(((f,b)=>a=e[d]=[f,b]));f.push(a[2]=b);var c=r.p+r.u(d),t=new Error;r.l(c,(f=>{if(r.o(e,d)&&(0!==(a=e[d])&&(e[d]=void 0),a)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+d+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,a[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,f)=>{var a,b,[c,t,o]=f,n=0;if(c.some((d=>0!==e[d]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(d&&d(f);n{"use strict";var e,d,f,a,b={},c={};function r(e){var d=c[e];if(void 0!==d)return d.exports;var f=c[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,e=[],r.O=(d,f,a,b)=>{if(!f){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,a,b]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};d=d||[null,f({}),f([]),f(f)];for(var t=2&a&&e;"object"==typeof t&&!~d.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((d=>c[d]=()=>e[d]));return c.default=()=>e,r.d(b,c),b},r.d=(e,d)=>{for(var f in d)r.o(d,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:d[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,f)=>(r.f[f](e,d),d)),[])),r.u=e=>"assets/js/"+({1:"f4fb6e9c",6:"408829bd",12:"1d6d4797",43:"74985360",53:"935f2afb",63:"9f319605",150:"77c23c97",192:"f189ca9f",217:"c7a044bb",250:"f2717f8e",315:"9528ac88",356:"797239df",502:"2d429218",537:"3829cf1d",576:"f52abf29",601:"0c06bca3",609:"d569989b",657:"386bfe51",691:"145746f5",810:"23498fd5",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1486:"8dd7cee0",1494:"b21dd8a7",1506:"c977dfe8",1529:"ffe9c3c9",1585:"33b0bcab",1598:"7fbac68a",1678:"fa343ad1",1686:"f7191335",1703:"a5002e4a",1723:"0df78d26",1748:"987d08ef",1774:"9e6341e5",1786:"d9ef69a7",1825:"48074a08",1872:"78e1e977",1953:"1ed3671a",1957:"df154d69",1966:"f47489cd",1979:"0cb62240",2008:"4f031749",2042:"dd32e389",2078:"84f79495",2117:"21877fa5",2119:"6d5c9a28",2136:"ecb495b7",2169:"1646726c",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2354:"493c7fdf",2399:"8d3a1bf8",2483:"d6d2b2d5",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2609:"db0b42b0",2633:"e2e89062",2635:"0b632434",2665:"f4130007",2677:"ece9fdae",2704:"f3bde756",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2791:"7d54ab5a",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3330:"e31fc461",3332:"3497b7c6",3347:"32dac8d4",3348:"7ccc428f",3356:"f14351c1",3452:"3d1bf5db",3484:"5c90fc9b",3513:"41b7b3e8",3554:"d5909206",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3837:"beb5436b",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4174:"a7c27f4d",4195:"c4f5d8e4",4338:"84ede15a",4355:"19ed4d4c",4363:"f2c21b54",4379:"c662f00a",4428:"991ceaa9",4445:"4d9b9869",4476:"f4003c83",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4620:"48d75399",4634:"54338ffb",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4825:"06ea9e61",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",5005:"320c8a05",5011:"7e9389ad",5013:"c41801b5",5103:"db039c7f",5157:"d27ae88d",5281:"31bd35e0",5422:"b3719d54",5483:"f7acb151",5492:"1882e65d",5526:"0c68fb82",5548:"d6b0148d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5989:"fbf58567",6104:"c7c5ba1a",6110:"b9c2850c",6140:"32e8da05",6220:"d01f45b7",6253:"a29dc56e",6255:"452ad91d",6277:"a62d9768",6286:"059e0573",6294:"bbba852d",6312:"dbc4065c",6325:"3002ebf4",6357:"43cda9e8",6373:"ceaa29cb",6482:"49816380",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6687:"bf789d83",6689:"f2521980",6730:"73617284",6776:"666ba125",6779:"c5d9e474",6827:"279fb1d6",6862:"60e73337",6918:"29a046f3",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7280:"fbea1897",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7485:"d3db551a",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7778:"41871d53",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8067:"69b97ecd",8115:"8247eba8",8138:"694672cd",8139:"386099fc",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8355:"c91a9c06",8361:"824749c6",8444:"28b84bbb",8609:"ed3409b3",8648:"71ed82b9",8702:"a74a59a0",8757:"83d4859f",8791:"ab138bf8",8831:"3bd77df4",8855:"d3a753cf",8860:"766a10e1",8866:"98a30fd8",8876:"31c99aa1",8901:"b48c599b",9062:"b38833d4",9071:"60738e36",9112:"a4b71220",9126:"924835c1",9217:"64c7e1cc",9226:"2f3b630e",9247:"8167490d",9276:"e344dd79",9315:"6d2ffbf3",9323:"131c7f55",9478:"c7a2145e",9514:"1be78505",9548:"f95cee6f",9626:"32c9742a",9764:"dc776cbc",9779:"cd144357",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9905:"b0cb055f",9993:"482bfb5c"}[e]||e)+"."+{1:"5563b650",6:"54b24b97",12:"9f327517",43:"c0a56a28",53:"39cfab57",63:"4e5acc1b",150:"dcf5e34f",192:"2ac0e4f9",217:"0102c432",250:"11cfd82d",315:"1fbe91c6",356:"220d0258",502:"3789530f",537:"2aa85719",576:"6b344346",601:"6806af70",609:"7ea29085",657:"f5513d14",691:"74ddc873",810:"f27faee3",1062:"e04ac837",1083:"ac5baa92",1090:"26932415",1211:"84a813cb",1213:"fee6731f",1239:"5f1e8cea",1288:"3482a532",1299:"7dda7011",1372:"44b4d9b2",1415:"68f49da4",1419:"7ba32ca0",1426:"ad86846c",1446:"2265d608",1451:"168bea6c",1486:"88c52f6d",1494:"b887110e",1506:"c56070c7",1529:"72c67a2d",1585:"e1ec66d3",1598:"c2253902",1678:"b3589c09",1686:"ce7ae0b6",1703:"62855a55",1723:"86de2f74",1748:"61758801",1774:"1c405b46",1786:"6a2d15ec",1825:"c534a999",1872:"342366ba",1953:"e4392cf0",1957:"d99c9092",1966:"70e3ff3a",1979:"6d282955",2008:"32bb0efa",2042:"2483fb69",2078:"17164550",2117:"0678ac75",2119:"783b1699",2136:"dbf5ae7f",2169:"1a16bf38",2194:"8cc30adb",2242:"f254b300",2248:"51e116c1",2354:"25f75ea0",2399:"97692e37",2483:"47c545c2",2507:"1df35914",2508:"b4c49d3b",2552:"6484aed3",2581:"331a4147",2609:"53e26c77",2633:"52d5c353",2635:"830edb6d",2665:"c197c6c2",2677:"2e640844",2704:"c83746c5",2712:"d084caff",2749:"9a8b4034",2754:"82d7eade",2758:"7a12fb0f",2791:"19a933a8",2884:"3b223315",2909:"5449596f",2914:"ace15b40",2949:"7738f0eb",3066:"2d6ba895",3091:"49ed30e6",3132:"85a16703",3262:"9288e4b5",3330:"f8f9d28c",3332:"59059207",3347:"bc5aa7bf",3348:"32c50c47",3356:"6ee81354",3452:"3a04e762",3484:"e60b3258",3513:"ed690a14",3554:"6dc12371",3599:"3cf04fd0",3620:"289ad75c",3643:"74198f90",3665:"fb1d42b5",3667:"48d84111",3668:"b34aa74c",3669:"1aa1629f",3757:"636d9b7e",3837:"7aa1b869",3842:"e6053c41",3933:"074bfdbb",3945:"2cb20b84",3978:"156c7716",4004:"03a19c6b",4097:"e39eee97",4105:"5e24a8e9",4126:"c0e27ab1",4143:"c3bc51cc",4174:"d074f050",4195:"e4766880",4325:"2eb61da6",4338:"92d49f53",4355:"5f97f4b9",4363:"3d90cfe3",4379:"2d13fe17",4428:"60163a9e",4445:"75e079a4",4476:"c64cea00",4507:"f1de04f5",4537:"b4b375dd",4541:"978ae83c",4566:"ab0d60ad",4620:"1fa1d4bf",4634:"19df48c8",4666:"abf3d2b4",4672:"1f4a5801",4674:"97d169c9",4825:"36571112",4885:"68afaf38",4909:"3ae4713d",4916:"4b3a7688",4972:"2c004fcc",5005:"20bc3398",5011:"98b0975e",5013:"00541302",5103:"3f268ad3",5157:"a57342ae",5281:"6761b31b",5422:"30e3a253",5483:"eedb7554",5492:"7b10a32b",5526:"ad82cb49",5548:"e68f018e",5651:"701df6e6",5704:"70bd0ba6",5752:"0ac6e680",5989:"0b1cb12b",6104:"3442ab79",6110:"0933da80",6140:"93e20266",6220:"8b344451",6253:"fe535738",6255:"8509f60e",6277:"0a2828ba",6286:"2d39bee6",6294:"b077023f",6312:"6138d82c",6316:"24db8bc9",6325:"9fcf1b01",6357:"de0a02d5",6373:"b8a24443",6482:"502a0b67",6495:"66df9496",6585:"eb7aa9cb",6598:"5f760aa9",6673:"4c461033",6687:"65686742",6689:"20204449",6730:"ec349f4d",6776:"0a7bd7c5",6779:"78c472da",6827:"9584a1c6",6862:"1ab7f2a1",6918:"61dac2e1",6920:"825f3ea8",6945:"96d36007",6946:"62348511",7022:"fea426f7",7061:"89e327b0",7202:"df3bbe8c",7211:"4266a392",7280:"47e41d56",7288:"995d5f1d",7313:"196896d2",7368:"809981c2",7388:"53d48c10",7466:"6c38d255",7485:"54197f47",7584:"351e4cd6",7633:"b6985db0",7654:"3c0e212d",7683:"d3462a4d",7714:"f83eb498",7724:"2906ce0b",7778:"8da5b4da",7799:"88bce1a8",7823:"6c8a30f2",7830:"a2703576",7837:"e772d597",7858:"f9862ed2",7908:"0da511b2",7918:"916bc4d8",7920:"16d7152d",7940:"f7aae43c",7961:"05b141e2",8034:"dca0d1af",8047:"ce7a90ea",8067:"af36ecc3",8115:"2ebb714e",8138:"408bfd7d",8139:"7ecd88ce",8178:"62f5ed0b",8191:"c60044c4",8215:"775d309b",8236:"63fecdb9",8270:"37d9cdce",8355:"c718131d",8361:"7e27723e",8444:"d1bb4e6e",8609:"e1aa35a1",8648:"fd581bf9",8702:"bd9f5fa0",8757:"4f1ee155",8791:"9640365f",8831:"ec7cac70",8855:"9d00af7a",8860:"48171767",8866:"4bdda915",8876:"a30609d2",8894:"ba661129",8901:"cc3ae736",9062:"b5c6d62c",9071:"c0edb4c9",9112:"38b794db",9126:"c1b79774",9217:"697f935c",9226:"3b783533",9247:"3b67c817",9276:"5fcd6da7",9315:"d5006aa3",9323:"1d8405cd",9447:"216e163d",9478:"44736e74",9487:"48bf43fe",9514:"693800c6",9548:"f095b5ce",9626:"b43c6d01",9764:"012ce7bf",9779:"4c7efdf9",9802:"11684b0f",9806:"c3977137",9817:"5ba13cdf",9905:"3e1ce1bd",9993:"6a9e0649"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),a={},r.l=(e,d,f,b)=>{if(a[e])a[e].push(d);else{var c,t;if(void 0!==f)for(var o=document.getElementsByTagName("script"),n=0;n{c.onerror=c.onload=null,clearTimeout(u);var b=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),b&&b.forEach((e=>e(f))),d)return d(f)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),t&&document.head.appendChild(c)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"7830",17896441:"7918",49816380:"6482",73617284:"6730",74985360:"43",f4fb6e9c:"1","408829bd":"6","1d6d4797":"12","935f2afb":"53","9f319605":"63","77c23c97":"150",f189ca9f:"192",c7a044bb:"217",f2717f8e:"250","9528ac88":"315","797239df":"356","2d429218":"502","3829cf1d":"537",f52abf29:"576","0c06bca3":"601",d569989b:"609","386bfe51":"657","145746f5":"691","23498fd5":"810",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","8dd7cee0":"1486",b21dd8a7:"1494",c977dfe8:"1506",ffe9c3c9:"1529","33b0bcab":"1585","7fbac68a":"1598",fa343ad1:"1678",f7191335:"1686",a5002e4a:"1703","0df78d26":"1723","987d08ef":"1748","9e6341e5":"1774",d9ef69a7:"1786","48074a08":"1825","78e1e977":"1872","1ed3671a":"1953",df154d69:"1957",f47489cd:"1966","0cb62240":"1979","4f031749":"2008",dd32e389:"2042","84f79495":"2078","21877fa5":"2117","6d5c9a28":"2119",ecb495b7:"2136","1646726c":"2169","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","493c7fdf":"2354","8d3a1bf8":"2399",d6d2b2d5:"2483","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",db0b42b0:"2609",e2e89062:"2633","0b632434":"2635",f4130007:"2665",ece9fdae:"2677",f3bde756:"2704",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758","7d54ab5a":"2791","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262",e31fc461:"3330","3497b7c6":"3332","32dac8d4":"3347","7ccc428f":"3348",f14351c1:"3356","3d1bf5db":"3452","5c90fc9b":"3484","41b7b3e8":"3513",d5909206:"3554","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",beb5436b:"3837",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",a7c27f4d:"4174",c4f5d8e4:"4195","84ede15a":"4338","19ed4d4c":"4355",f2c21b54:"4363",c662f00a:"4379","991ceaa9":"4428","4d9b9869":"4445",f4003c83:"4476",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","48d75399":"4620","54338ffb":"4634",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","06ea9e61":"4825","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","320c8a05":"5005","7e9389ad":"5011",c41801b5:"5013",db039c7f:"5103",d27ae88d:"5157","31bd35e0":"5281",b3719d54:"5422",f7acb151:"5483","1882e65d":"5492","0c68fb82":"5526",d6b0148d:"5548","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",fbf58567:"5989",c7c5ba1a:"6104",b9c2850c:"6110","32e8da05":"6140",d01f45b7:"6220",a29dc56e:"6253","452ad91d":"6255",a62d9768:"6277","059e0573":"6286",bbba852d:"6294",dbc4065c:"6312","3002ebf4":"6325","43cda9e8":"6357",ceaa29cb:"6373","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",bf789d83:"6687",f2521980:"6689","666ba125":"6776",c5d9e474:"6779","279fb1d6":"6827","60e73337":"6862","29a046f3":"6918",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211",fbea1897:"7280","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466",d3db551a:"7485","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","41871d53":"7778","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034","69b97ecd":"8067","8247eba8":"8115","694672cd":"8138","386099fc":"8139","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",c91a9c06:"8355","824749c6":"8361","28b84bbb":"8444",ed3409b3:"8609","71ed82b9":"8648",a74a59a0:"8702","83d4859f":"8757",ab138bf8:"8791","3bd77df4":"8831",d3a753cf:"8855","766a10e1":"8860","98a30fd8":"8866","31c99aa1":"8876",b48c599b:"8901",b38833d4:"9062","60738e36":"9071",a4b71220:"9112","924835c1":"9126","64c7e1cc":"9217","2f3b630e":"9226","8167490d":"9247",e344dd79:"9276","6d2ffbf3":"9315","131c7f55":"9323",c7a2145e:"9478","1be78505":"9514",f95cee6f:"9548","32c9742a":"9626",dc776cbc:"9764",cd144357:"9779","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817",b0cb055f:"9905","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(d,f)=>{var a=r.o(e,d)?e[d]:void 0;if(0!==a)if(a)f.push(a[2]);else if(/^(1303|532)$/.test(d))e[d]=0;else{var b=new Promise(((f,b)=>a=e[d]=[f,b]));f.push(a[2]=b);var c=r.p+r.u(d),t=new Error;r.l(c,(f=>{if(r.o(e,d)&&(0!==(a=e[d])&&(e[d]=void 0),a)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+d+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,a[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,f)=>{var a,b,[c,t,o]=f,n=0;if(c.some((d=>0!==e[d]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(d&&d(f);n - + @@ -30,7 +30,7 @@ communication channels of core team members, and gain access to Polkadot events.

There are many ways you can get involved in expanding Polkadot’s ecosystem, such as:

  • Contributing code and documentation related to the ecosystem
  • Speaking about Polkadot at events, workshops, and meetups
  • Writing blog posts
  • Representing Polkadot in your region
  • Mentoring and onboarding newcomers
  • Identifying partnerships and opportunities for the Polkadot ecosystem
  • Participating in calls and tasks that help drive the ecosystem forward

How to apply:

To become a Polkadot Ambassador, please fill out your application here.

Find out more about the programme and how to join here.

- + \ No newline at end of file diff --git a/docs/apps-index.html b/docs/apps-index.html index 647959bb1529..0b4f8aca64be 100644 --- a/docs/apps-index.html +++ b/docs/apps-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/bug-bounty.html b/docs/bug-bounty.html index 96a2ba5bda5b..0dff43b9e499 100644 --- a/docs/bug-bounty.html +++ b/docs/bug-bounty.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

How to report a bug

Please follow the instructions at web3.foundation/security-report/.

- + \ No newline at end of file diff --git a/docs/build-client-index.html b/docs/build-client-index.html index 58dc0e17f494..54cda7f36e17 100644 --- a/docs/build-client-index.html +++ b/docs/build-client-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-dapp.html b/docs/build-dapp.html index e7dfd1069dc8..a0a8c45c1c5e 100644 --- a/docs/build-dapp.html +++ b/docs/build-dapp.html @@ -19,7 +19,7 @@ - + @@ -37,7 +37,7 @@ see the tooling page for a detailed overview of different SDKs and libraries that are available.

Frameworks & Toolkits

For front-end applications, several options exist for interfacing with Substrate-based chains (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node:

Promise and RxJS APIs around Polkadot and Substrate-based chains via RPC calls. It is dynamically generated based on what the Substrate runtime provides regarding metadata. Full documentation & examples available here.
- + \ No newline at end of file diff --git a/docs/build-data.html b/docs/build-data.html index bce69f2ce61d..df2890ce6620 100644 --- a/docs/build-data.html +++ b/docs/build-data.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,7 @@ for details on how to access the data.

Block Explorers

As you can imagine, blockchain explorers also offer data analytics through an interface where users can examine common data points.

Some block explorers in the Polkadot ecosystem are listed on the tools page.

- + \ No newline at end of file diff --git a/docs/build-guide.html b/docs/build-guide.html index 7c0f240e1b48..044f62cb1408 100644 --- a/docs/build-guide.html +++ b/docs/build-guide.html @@ -19,7 +19,7 @@ - + @@ -131,7 +131,7 @@ (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node.

Please visit the full documentation for developing dApps and other general client-side development resources.

For a complete list of tools, please take a look here: Tools, APIs, and Languages

- + \ No newline at end of file diff --git a/docs/build-hackathon.html b/docs/build-hackathon.html index 63ed01d7ec6f..10b097e38dae 100644 --- a/docs/build-hackathon.html +++ b/docs/build-hackathon.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ that can be a feature of you hackathon or suggested prerequisite for those joining to use.

Support / Contact

If you have any questions regarding organizing a hackathon, please free feel to contact us by email or ask us via Element chat.

- + \ No newline at end of file diff --git a/docs/build-hrmp-channels.html b/docs/build-hrmp-channels.html index 5f9a625f840c..674ded781ba8 100644 --- a/docs/build-hrmp-channels.html +++ b/docs/build-hrmp-channels.html @@ -19,7 +19,7 @@ - + @@ -62,7 +62,7 @@ forceOpenHrmpChannel calls.

Opening HRMP Channels Between Two System Parachains

As of Polkadot and Kusama runtimes 1,001,000, anyone can call an establishSystemChannel extrinsic with two system parachains as arguments in order to establish a channel from the given sender to receiver.

- + \ No newline at end of file diff --git a/docs/build-index.html b/docs/build-index.html index f6d7e73c6c64..68149d64885b 100644 --- a/docs/build-index.html +++ b/docs/build-index.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ are building.

Grants

  • Grants - Information regarding grants and funding sources available in the Polkadot ecosystem.

PCPs

Polkadot Contracts Proposals (PCPs) are standards for smart contracts in the Polkadot ecosystem.

Hackathon

- + \ No newline at end of file diff --git a/docs/build-integrate-assets.html b/docs/build-integrate-assets.html index 94226800cb28..52529146d1b5 100644 --- a/docs/build-integrate-assets.html +++ b/docs/build-integrate-assets.html @@ -19,7 +19,7 @@ - + @@ -127,7 +127,7 @@ can be claimed).

A great resource to learn more about Error Management in XCM is the Polkadot blog post from Gavin Wood, XCM Part III: Execution and Error Management.

- + \ No newline at end of file diff --git a/docs/build-integration.html b/docs/build-integration.html index 235d6ab22a18..8304e4969951 100644 --- a/docs/build-integration.html +++ b/docs/build-integration.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ transactions. Parity and Web3 Foundation will be able to provide the best support if you use these tools.

If your team would like support, join some of our community channels or contact support@polkadot.network.

- + \ No newline at end of file diff --git a/docs/build-light-clients.html b/docs/build-light-clients.html index baae5cbd74b6..aa70c346321c 100644 --- a/docs/build-light-clients.html +++ b/docs/build-light-clients.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,7 @@ end-users to interact with applications connected to multiple blockchains or connect their own blockchains to applications that support it.

note

Substrate Connect will auto-detect whether a user is using the extension. If not, the Wasm light client will be created in-page for them.

Resources

- + \ No newline at end of file diff --git a/docs/build-network-index.html b/docs/build-network-index.html index cc1b3be3847b..c66059839937 100644 --- a/docs/build-network-index.html +++ b/docs/build-network-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-network-overview.html b/docs/build-network-overview.html index 6c66a42b4f9d..ec3ec53b674a 100644 --- a/docs/build-network-overview.html +++ b/docs/build-network-overview.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ here.

For other programmatic ways of interacting with these networks (including PolkadotJS), please view the Node Interactions page.

Testnet Faucets

Almost all tesnets either have a web-based interface for getting test currency or a Matrix room which you can post !drip <ADDRESS>

See here for all available faucets and how to obtain testnet tokens.

- + \ No newline at end of file diff --git a/docs/build-node-interaction.html b/docs/build-node-interaction.html index 0a070cb7d542..e0d4b3f47357 100644 --- a/docs/build-node-interaction.html +++ b/docs/build-node-interaction.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,7 @@ block by the block author.

{
"number":"7409038",
"hash":"0x0e9610f3c89fac046ef83aa625ad414d5403031faa026b7ab2a918184e389968",
"parentHash":"0xba308541eb207bc639f36d392706309a031c21622f883fb07411060389c5ffdd",
"stateRoot":"0x4426383b64a944ad7222a4019aefd558c749da0c6920cfcdfd587741d54abbe2",
"extrinsicsRoot":"0x74749e5f5aeb610bc23fd6d8d79fd8bbf5e4b6053f70ba94ea6b3cc271df4b3a",
"authorId":"Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
"logs":[
{
"type":"PreRuntime",
"index":"6",
"value":[
"BABE",
"0x023a0200009c7d191000000000"
]
},
{
"type":"Seal",
"index":"5",
"value":[
"BABE",
"0x2296a50fa4fea3a46a95ad5b1f09de76d22c6ed3dc6755718c976e2d14c63e4dd3c6257813d9bdc03bb180b1e20393f1558ae1204982e5c7570df393e11f908b"
]
}
],
"onInitialize":{
"events":[

]
},
"extrinsics":[
{
"method":{
"pallet":"timestamp",
"method":"set"
},
"signature":null,
"nonce":null,
"args":{
"now":"1620636072000"
},
"tip":null,
"hash":"0x8b853f49b6543e4fcbc796ad3574ea5601d2869d80629e080e501da4cb7b74b4",
"info":{

},
"events":[
{
"method":{
"pallet":"system",
"method":"ExtrinsicSuccess"
},
"data":[
{
"weight":"185253000",
"class":"Mandatory",
"paysFee":"Yes"
}
]
}
],
"success":true,
"paysFee":false
},
{
"method":{
"pallet":"balances",
"method":"transfer"
},
"signature":{
"signature":"0x94b63112648e8e692f0076fa1ccab3a04510c269d1392c1df2560503865e144e3afd578f1e37e98063b64b98a77a89a9cdc8ade579dcac0984e78d90646a052001",
"signer":{
"id":"Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3"
}
},
"nonce":"12",
"args":{
"dest":{
"id":"J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE"
},
"value":"100000000"
},
"tip":"0",
"hash":"0xfbc5e5de75d64abe5aa3ee9272a3112b3ce53710664f6f2b9416b2ffda8799c2",
"info":{
"weight":"201217000",
"class":"Normal",
"partialFee":"2583332634"
},
"events":[
{
"method":{
"pallet":"balances",
"method":"Transfer"
},
"data":[
"Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3",
"J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE",
"100000000"
]
},
{
"method":{
"pallet":"balances",
"method":"Deposit"
},
"data":[
"Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
"2583332634"
]
},
{
"method":{
"pallet":"system",
"method":"ExtrinsicSuccess"
},
"data":[
{
"weight":"201217000",
"class":"Normal",
"paysFee":"Yes"
}
]
}
],
"success":true,
"paysFee":true
},
{
"method":{
"pallet":"utility",
"method":"batch"
},
"signature":{
"signature":"0x8aa2fc3f0cff52533745679523705720cff42d0e7258b9797feed193deb0ca73474726e148af0a0b096d44c07f20e5292819ec92279cffb2897e95cc337e638e",
"signer":{
"id":"F4gmSZGiM9pMYPsKW7xnGktDr4zRmN2jqy5Ze678y9YWR7F"
}
},
"nonce":"687",
"args":{
"calls":[
{
"method":{
"pallet":"staking",
"method":"payoutStakers"
},
"args":{
"validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
"era":"2229"
}
},
{
"method":{
"pallet":"staking",
"method":"payoutStakers"
},
"args":{
"validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
"era":"2230"
}
},
{
"method":{
"pallet":"staking",
"method":"payoutStakers"
},
"args":{
"validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
"era":"2231"
}
},
{
"method":{
"pallet":"staking",
"method":"payoutStakers"
},
"args":{
"validator_stash":"DifishR4auphofhzxsy2aupgYo4NaUECH7qgt71CgiB2o6P",
"era":"2231"
}
},
{
"method":{
"pallet":"staking",
"method":"payoutStakers"
},
"args":{
"validator_stash":"J1fishfH94nFZLNScHgC2HorWpFD2xdPxd96wtTCHLvKxfa",
"era":"2231"
}
}
]
},
"tip":"0",
"hash":"0x69171ec3f4e5e4dfd27f4d1c5b5dbc884932c5d9a078c84495bb7ab875c8785f",
"info":{
"weight":"629782467000",
"class":"Normal",
"partialFee":"5150837715"
},
"events":[
{
"method":{
"pallet":"staking",
"method":"Reward"
},
"data":[
"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
"40730624074"
]
},
{
"method":{
"pallet":"staking",
"method":"Reward"
},
"data":[
"FhLcXuFkTwyc3o9K82VBahpain1YHWyGeNMDTTyeDJKfm5b",
"4296071738"
]
},
{
"method":{
"pallet":"staking",
"method":"Reward"
},
"data":[
"F1NyXFUayqmVMdjNK45hcaTCE3JiqdU83sEGhQ3HQXn2Rpq",
"1770904403"
]
},

// ...

{
"method":{
"pallet":"utility",
"method":"BatchCompleted"
},
"data":[

]
},
{
"method":{
"pallet":"balances",
"method":"Deposit"
},
"data":[
"Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
"5150837715"
]
},
{
"method":{
"pallet":"system",
"method":"ExtrinsicSuccess"
},
"data":[
{
"weight":"629782467000",
"class":"Normal",
"paysFee":"Yes"
}
]
}
],
"success":true,
"paysFee":true
}
],
"onFinalize":{
"events":[

]
},
"finalized":true
}
The JS number type is a 53 bit precision float

There is no guarantee that the numerical values in the response will have a numerical type. Any numbers larger than 2**53-1 will have a string type.

Submitting a Transaction

Submit a serialized transaction using the transaction endpoint with an HTTP POST request.

import requests
import json

url = 'http://127.0.0.1:8080/transaction/'
tx_headers = {'Content-type' : 'application/json', 'Accept' : 'text/plain'}
response = requests.post(
url,
data='{"tx": "0xed0...000"}', # A serialized tx.
headers=tx_headers
)
tx_response = json.loads(response.text)

If successful, this endpoint returns a JSON with the transaction hash. In case of error, it will return an error report, e.g.:

{
"error": "Failed to parse a tx" | "Failed to submit a tx",
"cause": "Upstream error description"
}
- + \ No newline at end of file diff --git a/docs/build-node-management.html b/docs/build-node-management.html index 1292a7fbb4d6..c57e27982d7c 100644 --- a/docs/build-node-management.html +++ b/docs/build-node-management.html @@ -19,7 +19,7 @@ - + @@ -67,7 +67,7 @@ has a monitor node metrics tutorial which uses this endpoint.

- + \ No newline at end of file diff --git a/docs/build-open-source.html b/docs/build-open-source.html index 49a5635de22d..db2eefaa11f2 100644 --- a/docs/build-open-source.html +++ b/docs/build-open-source.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ the tech stack.

❗ All technologies listed above need to be open-source. Ideally, the links lead directly to the code.

Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you may sign up for free.

- + \ No newline at end of file diff --git a/docs/build-oracle.html b/docs/build-oracle.html index e9a5f9a8b604..622cbce53dc2 100644 --- a/docs/build-oracle.html +++ b/docs/build-oracle.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,7 @@ ecosystem develops and oracle parachains begin to appear, this article will be updated with a comparison of the different solutions and the benefits and drawbacks that each provide.

- + \ No newline at end of file diff --git a/docs/build-pdk.html b/docs/build-pdk.html index 763fad9932a8..76c7c932338a 100644 --- a/docs/build-pdk.html +++ b/docs/build-pdk.html @@ -19,7 +19,7 @@ - + @@ -191,7 +191,7 @@ transition into a Relay Chain.

For more information on how parathread per-block auctions work, see the more detailed parathread page.

Resources

- + \ No newline at end of file diff --git a/docs/build-protocol-index.html b/docs/build-protocol-index.html index 4121a99e0272..3d5deaca4167 100644 --- a/docs/build-protocol-index.html +++ b/docs/build-protocol-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-protocol-info.html b/docs/build-protocol-info.html index 8ab047a98c4a..c43948006886 100644 --- a/docs/build-protocol-info.html +++ b/docs/build-protocol-info.html @@ -19,7 +19,7 @@ - + @@ -160,7 +160,7 @@ to cancel a runtime upgrade. Using a finalized depth of ten blocks should be safe.

Note that block production and finality are isolated processes in Polkadot, and the chain can have a long unfinalized head.

Do users need to interact with any smart contracts?

No, users interact directly with the chain's logic.

Does Polkadot have state rent?

No, Polkadot uses the existential deposit to prevent dust accounts and other economic mechanisms like locking or reserving tokens for operations that utilize state.

What is an external source to see the current chain height?

- + \ No newline at end of file diff --git a/docs/build-smart-contracts.html b/docs/build-smart-contracts.html index 82a90a3a9d13..83b5a0b79e5b 100644 --- a/docs/build-smart-contracts.html +++ b/docs/build-smart-contracts.html @@ -19,7 +19,7 @@ - + @@ -146,7 +146,7 @@ Substrate and Polkadot StackExchange to ask their questions. As always, keep up to date with Polkadot and Kusama by following the social channels.

- + \ No newline at end of file diff --git a/docs/build-storage.html b/docs/build-storage.html index 6a3b3002ef9f..e9affa14c483 100644 --- a/docs/build-storage.html +++ b/docs/build-storage.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,7 @@ directory info will not be visible if you switch to a new browser or clear the browser cache. The storage module allows you to export file directory info from the current browser and import it to the new browser.

manage file dir

note

These above images are taken from this pull request

- + \ No newline at end of file diff --git a/docs/build-tools-index.html b/docs/build-tools-index.html index 7202120f9911..8d0c4e72479c 100644 --- a/docs/build-tools-index.html +++ b/docs/build-tools-index.html @@ -19,7 +19,7 @@ - + @@ -111,7 +111,7 @@ Squid Archive Registry
  • Polka-store - A tool which scans a Substrate chain and stores balance-relevant transactions in an SQLite database.
  • Substrate-graph - A compact indexer for Substrate based nodes providing a GraphQL interface.
  • - + \ No newline at end of file diff --git a/docs/build-transaction-construction.html b/docs/build-transaction-construction.html index c839627e13cc..fe2945766f84 100644 --- a/docs/build-transaction-construction.html +++ b/docs/build-transaction-construction.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,7 @@ author_submitAndWatchExtrinsic, the latter of which will subscribe you to events to be notified as a transaction gets validated and included in the chain.

    Notes

    Some addresses to use in the examples. See Subkey documentation.

    $ subkey --network polkadot generate
    Secret phrase `pulp gaze fuel ... mercy inherit equal` is account:
    Secret seed: 0x57450b3e09ba4598 ... ... ... ... ... ... ... .. 219756eeba80bb16
    Public key (hex): 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    Account ID: 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    SS58 Address: 121X5bEgTZcGQx5NZjwuTjqqKoiG8B2wEAvrUFjuw24ZGZf2

    $ subkey --network polkadot generate
    Secret phrase `exercise auction soft ... obey control easily` is account:
    Secret seed: 0x5f4bbb9fbb69261a ... ... ... ... ... ... ... .. 4691ed7d1130fbbd
    Public key (hex): 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    Account ID: 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    SS58 Address: 15vrtLsCQFG3qRYUcaEeeEih4JwepocNJHkpsrqojqnZPc2y
    - + \ No newline at end of file diff --git a/docs/builders-program.html b/docs/builders-program.html index 52d4001cffe1..7ec24a908b03 100644 --- a/docs/builders-program.html +++ b/docs/builders-program.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ form of tooling, UI, middleware, bridges, and more.

    Application track

    This track supports builders who are building on top of Substrate-based chains.

    Check out the official Substrate Builders Program site for more information and steps on how to apply.

    - + \ No newline at end of file diff --git a/docs/community-index.html b/docs/community-index.html index 34eb7384d8d8..b3bee7bf1f39 100644 --- a/docs/community-index.html +++ b/docs/community-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/community.html b/docs/community.html index 49612d51b1fa..80a637ced89d 100644 --- a/docs/community.html +++ b/docs/community.html @@ -19,7 +19,7 @@ - + @@ -63,7 +63,7 @@ classroom-based educational program covering the conceptual underpinnings and the hands-on application of blockchain technology, using Polkadot and Substrate as its foundations.
  • Polkadot Communities and Campaigns by AirLyft One - Discover thriving communities and participate in engaging campaigns.
  • - + \ No newline at end of file diff --git a/docs/contributing.html b/docs/contributing.html index 7c923f4aaa9c..d83e1e4c1b80 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -19,7 +19,7 @@ - + @@ -58,7 +58,7 @@ the official crowdin knowledge base as well.




    The following shows an example in Arabic. You can type in your desired translation for each section in the provided area, while using the suggestions generated by the crowdin built-in translator.


    Make sure to save your translation.

    - + \ No newline at end of file diff --git a/docs/contributors.html b/docs/contributors.html index a2754aa70c9b..44ffe0c71423 100644 --- a/docs/contributors.html +++ b/docs/contributors.html @@ -19,7 +19,7 @@ - + @@ -95,7 +95,7 @@ for the Polkadot protocol. He contributed in creating written content and example applications that demonstrate how to use these new technologies.

    You can now find Logan leading efforts to define the prediction market space at Zeitgeist.

    - + \ No newline at end of file diff --git a/docs/dashboards-index.html b/docs/dashboards-index.html index ded1f029fa35..2b4000ad10be 100644 --- a/docs/dashboards-index.html +++ b/docs/dashboards-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/decentralized-futures.html b/docs/decentralized-futures.html index 9c6c3779a019..2e08de8c59f5 100644 --- a/docs/decentralized-futures.html +++ b/docs/decentralized-futures.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,7 @@ utilized, with granularity increasing proportionally with the amount sought. This meticulous approach ensures transparency and accountability in the allocation of resources.
  • A demonstrated willingness to receive a more significant portion of the value in long-term DOT rather than immediate FIAT, aligning with the broader ecosystem's goals.
  • - + \ No newline at end of file diff --git a/docs/dev-heroes.html b/docs/dev-heroes.html index ca73bdf37849..b54e8861ebaf 100644 --- a/docs/dev-heroes.html +++ b/docs/dev-heroes.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,7 @@ open source technology stack list and contribute with a pull request, an issue, or find and fix bugs.

  • Create content: Write a blog post, record a video tutorial, and write a Twitter thread. Share about your latest coding success, something you learned and are excited about.

  • Speak at events: Do a workshop or talk at meetups and conferences.

  • - + \ No newline at end of file diff --git a/docs/explore-index.html b/docs/explore-index.html index 2c5294cde75f..7670f6a64587 100644 --- a/docs/explore-index.html +++ b/docs/explore-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/faq.html b/docs/faq.html index 4f6f1db2effd..1c62f7ef6185 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -19,7 +19,7 @@ - + @@ -189,7 +189,7 @@ fee calculation page in the Substrate documentation for more detailed information.

    Answered by Gav series

    The "Answered by Gav" series is a collection of posts uploaded to Reddit of questions that have been asked in the Polkadot Watercooler Riot channel and answered by Polkadot founder Gavin Wood.

    - + \ No newline at end of file diff --git a/docs/general-index.html b/docs/general-index.html index 776c948e90fa..2084223ecfb7 100644 --- a/docs/general-index.html +++ b/docs/general-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/getting-started.html b/docs/getting-started.html index 0429513a9ee7..d0058b0192d8 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -19,7 +19,7 @@ - + @@ -112,7 +112,7 @@ about Polkadot.
  • Sample Applications - Sample applications that are built on or currently being built for Polkadot.
  • Contributing Guide - Rules for contributing to the wiki.
  • Polkadot Knowledge Base - Troubleshooting resources for specific errors and problems.
  • - + \ No newline at end of file diff --git a/docs/glossary.html b/docs/glossary.html index 97c1a131259a..d9f2118a10cd 100644 --- a/docs/glossary.html +++ b/docs/glossary.html @@ -19,7 +19,7 @@ - + @@ -291,7 +291,7 @@ transaction weights and fees.

    Witness

    Cryptographic proof statements of data validity.

    Whitelist Pallet

    Allows one Origin to escalate the privilege level of another Origin for a certain operation. In terms of OpenGov, it allows the Fellowship to authorise a new origin (which we will call Whitelisted-Root) to be executed with Root-level privileges.

    - + \ No newline at end of file diff --git a/docs/governance-apps.html b/docs/governance-apps.html index dc10fa13198b..146eb2c17b5a 100644 --- a/docs/governance-apps.html +++ b/docs/governance-apps.html @@ -19,7 +19,7 @@ - + @@ -48,7 +48,7 @@ node, ensuring real-time accuracy.

    Dive into the world of Polkadot governance with Polkassembly and be an active part of the future! For deeper insights or specific tutorials, please refer to the official documentation at https://docs.polkassembly.io.

    - + \ No newline at end of file diff --git a/docs/grants.html b/docs/grants.html index 628e0344e809..5592763dd22f 100644 --- a/docs/grants.html +++ b/docs/grants.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ Foundation has considered new ways to distribute KSM for people who need KSM to build.

    If you are interested in obtaining KSM for building or research, you can apply through the Treasury or receive a tip for doing something cool in the community.

    Other Grant Programs

    Below is a list of other grant programs in the Polkadot/Substrate ecosystem.

    - + \ No newline at end of file diff --git a/docs/how-to-dyor.html b/docs/how-to-dyor.html index badcaf6cc963..78ec2a3a1fc7 100644 --- a/docs/how-to-dyor.html +++ b/docs/how-to-dyor.html @@ -19,7 +19,7 @@ - + @@ -219,7 +219,7 @@ aims to bring to the ecosystem.

    This does not fall under fact-checking and verifying claims, but it is important to mention: fully understanding what something does and its prospective impact is an integral part of making an informed decision, so do not overlook it.

    - + \ No newline at end of file diff --git a/docs/kusama-adversarial-cheatsheet.html b/docs/kusama-adversarial-cheatsheet.html index 1c94d2bfd27c..2ed3600227d5 100644 --- a/docs/kusama-adversarial-cheatsheet.html +++ b/docs/kusama-adversarial-cheatsheet.html @@ -19,14 +19,14 @@ - +

    Adversarial Cheatsheet

    Expect things to break on Kusama. To help you break some things, take a look at the following threat model.

    Hacker wants to …Security promise that should prevent the hackHacking IncentiveHacking DamageHacking value details
    Double spend tokens via getting the clients to accept a different chainIntegrity (System-wide)HighHighIf attackers are able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Cause system to mint tokens to his own accountIntegrity (System-wide) MediumLow - MediumIf an attacker is able to craft transactions that mint tokens to their account, then this provides a high monetary incentive to execute this attack.
    Validate malicious blocks to double spend tokensAvailability (System-wide) HighMediumIf an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Undermine consensus mechanism to split chainIntegrity (System-wide)HighHigh"If an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack. Betting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases.
    Tamper/manipulate blockchain history to invalidate transactions (e.g. a voting result)Integrity (System-wide)MediumMedium - HighAttacker can rollback undesired transactions by intentionally invalidating the block where transaction has happened. Attacker can force a governance decision (or even an on-chain update) that favors them.
    Undermine blockchain or consensus mechanism to damage the ecosystem's reputationAvailability (System-wide)HighHighBetting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases
    CensorshipAvailability (System-wide)MediumHighHackers are able to block undesirable types of transactions (e.g. industry competitor transactions or referendum votes). This could be achieved by colluding with other stakeholders or by otherwise obtaining more voting power.
    Deanonymize usersConfidentiality (Node)MediumMediumParties that want to de-anonymize users can use the information to oppress the opposition (e.g. political activists).
    Steal token from nodeIntegrity (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Steal token from node by leaking credentialsConfidentiality (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Prevent node from accessing the Polkadot networkAvailability (Node)LowLow - MediumRun a targeted denial-of-service attack out of revenge, monetary interests (in case of a competing coin exchange, etc.).
    Defraud other participantsIntegrity (Node)MediumLow - MediumAttacker can abuse other participants’ misunderstanding of Polkadot's security guarantees to defraud them. Also, if the reward for calling out bad behavior can be set up so that it is higher than the according punishment, a set of self-handled nodes can be set up to generate a source cycle. Other participants are not needed for this attack.
    Defraud other participantsIntegrity (System-wide)HighHighAn attacker could abuse bugs in Polkadot's economic system to defraud other participants. For example, an attacker could exploit a logic bug to not pay transaction fees.
    - + \ No newline at end of file diff --git a/docs/kusama-bug-bounty.html b/docs/kusama-bug-bounty.html index d8aad65745e8..a116318ddaff 100644 --- a/docs/kusama-bug-bounty.html +++ b/docs/kusama-bug-bounty.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

    How to report a bug

    Please follow the instructions at web3.foundation/security-report/.

    - + \ No newline at end of file diff --git a/docs/kusama-claims.html b/docs/kusama-claims.html index 71b1d1980a01..d5c853baf601 100644 --- a/docs/kusama-claims.html +++ b/docs/kusama-claims.html @@ -19,7 +19,7 @@ - + @@ -98,7 +98,7 @@ Polkadot Support page.

    Third Party Claims Processes

    We do not recommend using a third-party app or process to perform your claim or acquire KSM.

    Claiming using a third-party process can lead to the loss of your allocation; therefore, we cannot recommend using any third-party apps to do so. Manually specifying your transaction data, as specified in our claims process, is the only way to be certain you will receive your allocation.

    - + \ No newline at end of file diff --git a/docs/kusama-coc.html b/docs/kusama-coc.html index 2428ceec864b..615ded522a11 100644 --- a/docs/kusama-coc.html +++ b/docs/kusama-coc.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ on feedback from the Kusama participants and/or the Polkadot community.

    Bugs

    Please understand that this network is, despite its success, an experiment with potential flaws, so it’s appreciated that community members help report any sort of exploits directly to the team before sharing publicly. Please see the bug bounty program.

    - + \ No newline at end of file diff --git a/docs/kusama-community.html b/docs/kusama-community.html index 465a5f8347d8..fa4e03e43bce 100644 --- a/docs/kusama-community.html +++ b/docs/kusama-community.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ for technical questions on building with Substrate.
  • Smart Contracts & Parity Ink! - A room to discuss developing Substrate smart contracts using Parity Ink!
  • Social

    Blogs and tutorials

    Newsletters

    - + \ No newline at end of file diff --git a/docs/kusama-getting-started.html b/docs/kusama-getting-started.html index 19f8f071a935..8eea70785476 100644 --- a/docs/kusama-getting-started.html +++ b/docs/kusama-getting-started.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,7 @@ here.

    While Kusama does not support smart contracts natively, building apps on it is still possible (e.g. RMRK.app). If you're interested in diving deeper into proper development, however, check out the builders guide.

    Additional Resources:

    - + \ No newline at end of file diff --git a/docs/kusama-index.html b/docs/kusama-index.html index b84a40034402..58899f5c4b6d 100644 --- a/docs/kusama-index.html +++ b/docs/kusama-index.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@

    Kusama

    Polkadot's Canary Network

    Kusama is a canary network for Polkadot; an earlier release of the code that is available first and holds real economic value. For developers, Kusama is a proving ground for runtime upgrades, on-chain governance, and parachains.

    No Promises.

    Kusama has a dedicated Wiki guide. Click on the image below to access it.

    guide
    Kusama Guide
    - + \ No newline at end of file diff --git a/docs/kusama-parameters.html b/docs/kusama-parameters.html index f5d0bb795496..b7df32681892 100644 --- a/docs/kusama-parameters.html +++ b/docs/kusama-parameters.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,7 @@ redirected into the Society's treasury to fund growth.

    Precision

    KSM have 12 decimals of precision. In other words, 1e12 (1_000_000_000_000, or one trillion) Plancks make up a single KSM.

    - + \ No newline at end of file diff --git a/docs/kusama-social-recovery.html b/docs/kusama-social-recovery.html index 962743f4de5c..0d21b9094ecf 100644 --- a/docs/kusama-social-recovery.html +++ b/docs/kusama-social-recovery.html @@ -19,7 +19,7 @@ - + @@ -66,7 +66,7 @@ either go through the council or submit a public proposal. To learn more about governance, see here.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/kusama-timeline.html b/docs/kusama-timeline.html index 9e769a8ffca2..3da5154fe14c 100644 --- a/docs/kusama-timeline.html +++ b/docs/kusama-timeline.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,7 @@ forkless upgradability provided by Substrate, chaos continues, and in the spirit of chaos, more teams are eager to deploy on Kusama. The path of Kusama deployment has paved the way to Polkadot's parachains as the technology became proven.

    - + \ No newline at end of file diff --git a/docs/learn-DOT.html b/docs/learn-DOT.html index ab883f15a81b..808c48936d8c 100644 --- a/docs/learn-DOT.html +++ b/docs/learn-DOT.html @@ -19,7 +19,7 @@ - + @@ -81,7 +81,7 @@ through the Treasury. Alternatively, they can be obtained on the open market.

    Polkadot Mainnet DOT

    Polkadot Mainnet DOT are not freely given away. If you purchased DOT in the original 2017 offering, you may claim them via the Polkadot claims process. Alternatively, they are available on the open market.

    - + \ No newline at end of file diff --git a/docs/learn-account-abstraction.html b/docs/learn-account-abstraction.html index 180c1f2cc96c..f287b0d7e789 100644 --- a/docs/learn-account-abstraction.html +++ b/docs/learn-account-abstraction.html @@ -19,7 +19,7 @@ - + @@ -89,7 +89,7 @@ Bader Youssef - "Abstracting Away Account Abstraction on Polkadot"
  • Parity Blog Post by Joe Petrowski - "Building a Hot Wallet with Substrate Primitives"
  • - + \ No newline at end of file diff --git a/docs/learn-account-advanced.html b/docs/learn-account-advanced.html index 39accced9bc7..35d0d209b03f 100644 --- a/docs/learn-account-advanced.html +++ b/docs/learn-account-advanced.html @@ -19,7 +19,7 @@ - + @@ -204,7 +204,7 @@ directly in the browser on the new one.

    This has been tested on Brave and Chrome, but not other browsers.

    1. Go to Polkadot-JS Apps
    2. Go to JavaScript console on the browser (Available in Developer Tools)
    3. Type in the command:
    JSON.stringify(localStorage)
    1. Copy and paste the returned string to a text editor and save the file.
    2. Check that the string you pasted begins and ends with a tick mark ('). If not, add one to the beginning and end.
    3. Save and send that file with the copied string to the new computer.
    4. On the new computer, go to Polkadot-JS Apps
    5. Open the Javascript console on the browser (Available in Developer Tools)
    6. Set a variable raw equal to the string from the text file
    raw = ... copy-pasted json from original computer ...
    1. Run the following code on the console:
    accounts = JSON.parse(raw);
    for (var key in accounts) {
    if (accounts.hasOwnProperty(key)) {
    val = JSON.stringify(accounts[key]).replace(/\\/g,'').slice(1,-1);
    console.log(key + " -> " + val);
    localStorage.setItem(key, val);
    }
    }
    1. Refresh Polkadot-JS App browser and check the Accounts and Addresses pages. All of your accounts and addresses should now be available.
    - + \ No newline at end of file diff --git a/docs/learn-account-multisig.html b/docs/learn-account-multisig.html index bbed2fe3bbfb..06a5df77decb 100644 --- a/docs/learn-account-multisig.html +++ b/docs/learn-account-multisig.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ the entities designated as the recipients come together in a new multisig under a matching threshold, they will immediately have access to these tokens.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about multi-signature accounts.

    - + \ No newline at end of file diff --git a/docs/learn-accounts.html b/docs/learn-accounts.html index ad246189e18a..378b1eab4d5e 100644 --- a/docs/learn-accounts.html +++ b/docs/learn-accounts.html @@ -19,7 +19,7 @@ - + @@ -118,7 +118,7 @@ The same applies to proxies. The idea is that those actions require some network memory usage that is not given for free. In the example, we created a governance proxy, and the reserved funds for this are 0.0668 KSM.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about accounts.

    - + \ No newline at end of file diff --git a/docs/learn-advanced-index.html b/docs/learn-advanced-index.html index 86813075e794..dda09031b510 100644 --- a/docs/learn-advanced-index.html +++ b/docs/learn-advanced-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-architecture-index.html b/docs/learn-architecture-index.html index 2a0a4fc28782..d9ec7b5e5975 100644 --- a/docs/learn-architecture-index.html +++ b/docs/learn-architecture-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-architecture.html b/docs/learn-architecture.html index d9f57157d164..470fe453146e 100644 --- a/docs/learn-architecture.html +++ b/docs/learn-architecture.html @@ -19,7 +19,7 @@ - + @@ -86,7 +86,7 @@ verify their validity (and later, their availability).


    Whiteboard Series

    For a video overview of the architecture of Polkadot watch the video below for the whiteboard interview with W3F researcher Alistair Stewart:

    - + \ No newline at end of file diff --git a/docs/learn-archive-index.html b/docs/learn-archive-index.html index dedd89f9d905..99288952887e 100644 --- a/docs/learn-archive-index.html +++ b/docs/learn-archive-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-assets-index.html b/docs/learn-assets-index.html index ba60a5e6ef89..e3d210bc56f6 100644 --- a/docs/learn-assets-index.html +++ b/docs/learn-assets-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-assets.html b/docs/learn-assets.html index e142b629613a..90606086794d 100644 --- a/docs/learn-assets.html +++ b/docs/learn-assets.html @@ -19,7 +19,7 @@ - + @@ -126,7 +126,7 @@ create a 2-of-2 multisig from two pure proxies, and then set members from each group as proxies to those two accounts.

    - + \ No newline at end of file diff --git a/docs/learn-async-backing.html b/docs/learn-async-backing.html index fae726f6261a..68481dc97321 100644 --- a/docs/learn-async-backing.html +++ b/docs/learn-async-backing.html @@ -19,7 +19,7 @@ - + @@ -152,7 +152,7 @@ Asynchronous Backing (Shallow)
  • Chapter 6.15. from PBA lecture material: Asynchronous Backing (Deep)
  • Polkadot Blog Post - Asynchronous Backing: Elevating Polkadot's Performance and Scale
  • - + \ No newline at end of file diff --git a/docs/learn-auction.html b/docs/learn-auction.html index 82d76fb8d8bf..08e9c7161802 100644 --- a/docs/learn-auction.html +++ b/docs/learn-auction.html @@ -19,7 +19,7 @@ - + @@ -142,7 +142,7 @@ W3F research page on parachain allocation that goes more in depth to the mechanism
  • Research Update: The Case for Candle Auctions - W3F breakdown and research update about candle auctions
  • Front-Running, Smart Contracts, and Candle Auctions W3F Research team discusses how to remedy current blockchain auction setbacks with candle auctions
  • - + \ No newline at end of file diff --git a/docs/learn-basics-index.html b/docs/learn-basics-index.html index ba087ac37228..acf0537f065d 100644 --- a/docs/learn-basics-index.html +++ b/docs/learn-basics-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-bridges.html b/docs/learn-bridges.html index 82b59b7dff15..e625219c87d2 100644 --- a/docs/learn-bridges.html +++ b/docs/learn-bridges.html @@ -19,7 +19,7 @@ - + @@ -88,7 +88,7 @@ Edgeware chain (a Substrate-based chain) - now defunct and not maintained, but a good example.
  • XCLAIM - XCLAIM is a framework for achieving trustless and efficient cross-chain exchanges using cryptocurrency-backed assets.
  • Celer cBridge - a bridge to transfer assets from Ethereum & Binance Smart Chain to the Astar Polkadot EVM.
  • - + \ No newline at end of file diff --git a/docs/learn-collator.html b/docs/learn-collator.html index 083ec477875f..dabe4b5e42a4 100644 --- a/docs/learn-collator.html +++ b/docs/learn-collator.html @@ -19,7 +19,7 @@ - + @@ -65,7 +65,7 @@ Cumulus repository. More information can be found under the Cumulus section on the build parachain page.

    Guides and Tools

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-avalanche.html b/docs/learn-comparisons-avalanche.html index 98e9bee31345..429e7f21fb4f 100644 --- a/docs/learn-comparisons-avalanche.html +++ b/docs/learn-comparisons-avalanche.html @@ -19,7 +19,7 @@ - + @@ -113,7 +113,7 @@ need a recommended minimum of 5 validators, which make the costs of launch predictable. Avalanche has plans to implement shared security, interoperability, composability and on-chain governance features which are already offered by Polkadot.

    References

    1. The Avalanche Platform Whitepaper
    2. The Avalanche Consensus Whitepaper
    3. The AVAX Token Dynamics Paper
    4. Nakomoto vs Snow consensus
    - + \ No newline at end of file diff --git a/docs/learn-comparisons-cosmos.html b/docs/learn-comparisons-cosmos.html index e5a69c17dad3..ab2973ed6b8c 100644 --- a/docs/learn-comparisons-cosmos.html +++ b/docs/learn-comparisons-cosmos.html @@ -19,7 +19,7 @@ - + @@ -135,7 +135,7 @@ receiving chain must trust the sending chain. Thus, each blockchain in the Cosmos network has its independent security mechanisms. Chains also have the option to share security with the Cosmos Hub and thereby leverage its economic security.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-ethereum-2.html b/docs/learn-comparisons-ethereum-2.html index 49690399fc99..ca257d881fc5 100644 --- a/docs/learn-comparisons-ethereum-2.html +++ b/docs/learn-comparisons-ethereum-2.html @@ -19,7 +19,7 @@ - + @@ -157,7 +157,7 @@ enacted autonomously via forkless upgrades.
  • Validator selection mechanisms differ as Polkadot can provide strong availability and validity guarantees with fewer validators per shard.
  • - + \ No newline at end of file diff --git a/docs/learn-comparisons-index.html b/docs/learn-comparisons-index.html index bcb5ee88caa5..9add1440cd05 100644 --- a/docs/learn-comparisons-index.html +++ b/docs/learn-comparisons-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-comparisons-kusama.html b/docs/learn-comparisons-kusama.html index 096604410842..9cde5c9a6a55 100644 --- a/docs/learn-comparisons-kusama.html +++ b/docs/learn-comparisons-kusama.html @@ -19,7 +19,7 @@ - + @@ -76,7 +76,7 @@ the future, we’re also likely to see Kusama bridged to Polkadot for cross-network interoperability. Web3 Foundation remains committed to both networks going forward, providing crucial support and guidance to teams building for the ecosystem.

    Explore more

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-rollups.html b/docs/learn-comparisons-rollups.html index 214520b8209e..eedf9e82cd43 100644 --- a/docs/learn-comparisons-rollups.html +++ b/docs/learn-comparisons-rollups.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@ transition data.

    Despite these drawbacks, Polkadot remains upgradable through forkless upgrades, which allows the protocol to be easily upgradable to stay in line with future technological advances.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons.html b/docs/learn-comparisons.html index b881657fc3a2..8bcb019c1603 100644 --- a/docs/learn-comparisons.html +++ b/docs/learn-comparisons.html @@ -19,7 +19,7 @@ - + @@ -61,7 +61,7 @@ Chain, and as the number of validators in the active set on Polkadot are increased, more parachains can be supported.

    - + \ No newline at end of file diff --git a/docs/learn-components-index.html b/docs/learn-components-index.html index b67ca34a3411..eed6ee100957 100644 --- a/docs/learn-components-index.html +++ b/docs/learn-components-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-consensus.html b/docs/learn-consensus.html index 28d154efe5f3..50108aec63c8 100644 --- a/docs/learn-consensus.html +++ b/docs/learn-consensus.html @@ -19,7 +19,7 @@ - + @@ -154,7 +154,7 @@ with Bill Laboon.
  • Block Production and Finalization in Polkadot: Understanding the BABE and GRANDPA Protocols - An academic talk by Bill Laboon, given at MIT Cryptoeconomic Systems 2020, describing Polkadot's hybrid consensus model in-depth.
  • - + \ No newline at end of file diff --git a/docs/learn-controller.html b/docs/learn-controller.html index ee2c841d2b39..66cecc2f1608 100644 --- a/docs/learn-controller.html +++ b/docs/learn-controller.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ used less often and usually signed by the stash.

    stash-not-as-controller

    From a practical perspective, there were two accounts, and we needed to remember two passwords. From a security perspective, the party who wanted to control our staking actions was required to control two accounts.

    - + \ No newline at end of file diff --git a/docs/learn-crowdloans.html b/docs/learn-crowdloans.html index 1c7b8d620796..c6dad2be29a9 100644 --- a/docs/learn-crowdloans.html +++ b/docs/learn-crowdloans.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@ Apps page.

    Here is an example of the crowdloans in play during the very first Kusama auction.

    crowdloan dashboard

    Furthermore, check out this video on How to Participate in Crowdloans for steps on how to access available crowdloans on PolkadotJS apps.

    - + \ No newline at end of file diff --git a/docs/learn-cryptography.html b/docs/learn-cryptography.html index 6afb541fc21f..97dbddea7c59 100644 --- a/docs/learn-cryptography.html +++ b/docs/learn-cryptography.html @@ -19,7 +19,7 @@ - + @@ -175,7 +175,7 @@ make passive attacks much harder if such a backdoor exists.

    However an alternative exists in the form of Curve25519. This algorithm has been proposed in 2006 by DJB [Curve25519]. Its main strengths are its speed, its constant-time run time (and resistance against side-channel attacks), and its lack of nebulous hard-coded constants.

    - + \ No newline at end of file diff --git a/docs/learn-future-implementations-index.html b/docs/learn-future-implementations-index.html index 7c75c072f4e3..6f64177de6ae 100644 --- a/docs/learn-future-implementations-index.html +++ b/docs/learn-future-implementations-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-governance.html b/docs/learn-governance.html index 0e7c11481704..9d68bd27f349 100644 --- a/docs/learn-governance.html +++ b/docs/learn-governance.html @@ -19,7 +19,7 @@ - + @@ -234,7 +234,7 @@ case for why the change should be made.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-multisig.html b/docs/learn-guides-accounts-multisig.html index 6baf40c5a8c3..c9bd45e5cf03 100644 --- a/docs/learn-guides-accounts-multisig.html +++ b/docs/learn-guides-accounts-multisig.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,7 @@ Check the "How to use a multisig account" in the support docs on how to decode the multisig call data.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy-pure.html b/docs/learn-guides-accounts-proxy-pure.html index da8e05172bd2..c90dc376832a 100644 --- a/docs/learn-guides-accounts-proxy-pure.html +++ b/docs/learn-guides-accounts-proxy-pure.html @@ -19,7 +19,7 @@ - + @@ -81,7 +81,7 @@ address but does not impact the pure proxy address. In Scenario Two, if signatories behind the pure proxies change, the address of the multisig stays the same. However, changing the number of signatories and threshold would not be possible.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy.html b/docs/learn-guides-accounts-proxy.html index cf9c22531fe8..0288249390a5 100644 --- a/docs/learn-guides-accounts-proxy.html +++ b/docs/learn-guides-accounts-proxy.html @@ -19,7 +19,7 @@ - + @@ -76,7 +76,7 @@ automatically ask for Charly's signature. Thus one proxy call will trigger the second one because Charly's is the only any proxy of P-C, and P-C cannot sign anything. While if we want to use Bob's account we will need to submit all three proxy calls.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts.html b/docs/learn-guides-accounts.html index f92fdedd7277..af4555da9d60 100644 --- a/docs/learn-guides-accounts.html +++ b/docs/learn-guides-accounts.html @@ -19,7 +19,7 @@ - + @@ -121,7 +121,7 @@ encrypting/decrypting your wallet. If you cannot load a JSON file, please use the latest version of the wallet software. If you cannot load it, ensure that the wallet software uses the newest version of the Polkadot API.

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets-create.html b/docs/learn-guides-assets-create.html index 647ca8771db8..4cac907f7405 100644 --- a/docs/learn-guides-assets-create.html +++ b/docs/learn-guides-assets-create.html @@ -19,7 +19,7 @@ - + @@ -61,7 +61,7 @@ an ID that has already been taken. After all the details are entered, click on the next button.

    Add Asset Metadata

    • Choose the admin, issuer and the freezer accounts for your asset and click on the create button.

    Asset managing accounts

    • Sign and submit the transaction (If you like to verify the transaction details before signing, you can click on the dropdown button pointed by the arrow in the snapshot below).

    Sign asset creating transaction

    If the transaction is successful, you should see the asset and its details displayed in the Network > Assets page on the Asset Hub.

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets-index.html b/docs/learn-guides-assets-index.html index a43b34a80867..ec1d59ba1571 100644 --- a/docs/learn-guides-assets-index.html +++ b/docs/learn-guides-assets-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-guides-assets-ledger.html b/docs/learn-guides-assets-ledger.html index 6fb2df04a60a..fbd7f4b4acac 100644 --- a/docs/learn-guides-assets-ledger.html +++ b/docs/learn-guides-assets-ledger.html @@ -19,7 +19,7 @@ - + @@ -95,7 +95,7 @@ here.
  • Transfer the desired amount as described above. If you want to send exactly the amount you want to teleport, don't forget take into account the fees for teleporting that will be deducted in the next step.
  • Teleport your tokens following the instructions you will find here.
  • Teleporting to a Ledger account from a non-Ledger account doesn't require these extra steps.

    Support

    If you need support, please visit the Polkadot Support page.

    - + \ No newline at end of file diff --git a/docs/learn-guides-bounties.html b/docs/learn-guides-bounties.html index c80cb1510b1b..72e1a0a89ce0 100644 --- a/docs/learn-guides-bounties.html +++ b/docs/learn-guides-bounties.html @@ -19,7 +19,7 @@ - + @@ -63,7 +63,7 @@ delay elapsed, follow the guidelines in the video tutorial below to learn how to claim a child bounty reward. Note that the extrinsic to claim the child bounty reward is permissionless, and anyone can initiate the claim on behalf of the beneficiary.

    - + \ No newline at end of file diff --git a/docs/learn-guides-identity.html b/docs/learn-guides-identity.html index caeaad31a1de..94a7a7d27230 100644 --- a/docs/learn-guides-identity.html +++ b/docs/learn-guides-identity.html @@ -19,7 +19,7 @@ - + @@ -92,7 +92,7 @@ minimumDeposit.

    Submitting a proposal

    At this point, DOT holders can endorse the motion. With enough endorsements, the motion will become a referendum, which is then voted on. If it passes, users will be able to request judgement from this registrar.

    - + \ No newline at end of file diff --git a/docs/learn-guides-ledger.html b/docs/learn-guides-ledger.html index 663f0447c9ba..0fdb03aadaa2 100644 --- a/docs/learn-guides-ledger.html +++ b/docs/learn-guides-ledger.html @@ -19,7 +19,7 @@ - + @@ -80,7 +80,7 @@ extrinsics are available in the light version. The following repository by Zondax lists the currently supported Democracy extrinsics on the full ledger.

    - + \ No newline at end of file diff --git a/docs/learn-guides-polkadot-opengov.html b/docs/learn-guides-polkadot-opengov.html index 0c10c56813b5..268314a6b86c 100644 --- a/docs/learn-guides-polkadot-opengov.html +++ b/docs/learn-guides-polkadot-opengov.html @@ -19,7 +19,7 @@ - + @@ -141,7 +141,7 @@ have been met. Failing to submit the decision deposit within a -day period will lead to a referendum timeout.

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking-index.html b/docs/learn-guides-staking-index.html index f77c870812c8..3ce9ab1f9f14 100644 --- a/docs/learn-guides-staking-index.html +++ b/docs/learn-guides-staking-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-guides-staking-pools.html b/docs/learn-guides-staking-pools.html index 2c55917ffe26..af11984060df 100644 --- a/docs/learn-guides-staking-pools.html +++ b/docs/learn-guides-staking-pools.html @@ -19,7 +19,7 @@ - + @@ -63,7 +63,7 @@ Polkadot-JS UI Extrinsic Tab and issue the following extrisics:

    • nominationPools.claimPayoutOthers extrinsic specifying ALICE's account. This will claim the rewards as a free balance on ALICE's account.

    pools-payoutOthers

    • nominationPools.bondExtraOthers extrinsic specifying ALICE's account and the option to bond:
      • the free balance currently available in ALICE's account (FreeBalance) or
      • the pool rewards (Rewards) unclaimed by ALICE.

    pools-bondExtraOthers

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking.html b/docs/learn-guides-staking.html index 127bf6af8ce9..88ffbde808c3 100644 --- a/docs/learn-guides-staking.html +++ b/docs/learn-guides-staking.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ which will list all the pending payouts for your stashes.

    pending-payouts

    To then claim your reward, select the "Payout all" button. This will prompt you to select your stash accounts for payout.

    select-payouts

    Once you are done with payout, another screen will appear asking for you to sign and submit the transaction.

    transaction-payouts

    - + \ No newline at end of file diff --git a/docs/learn-guides-transfers.html b/docs/learn-guides-transfers.html index 569a16ff4124..443acbd2ba50 100644 --- a/docs/learn-guides-transfers.html +++ b/docs/learn-guides-transfers.html @@ -19,7 +19,7 @@ - + @@ -123,7 +123,7 @@ probably not the reason for your tokens having existing references.

    Existing Non-Native Assets

    Currently, Polkadot does not use the Assets Pallet, so this is probably not the reason for your tokens having existing references.

    - + \ No newline at end of file diff --git a/docs/learn-guides-treasury.html b/docs/learn-guides-treasury.html index b8e2e788d5f2..7cb3fab709ab 100644 --- a/docs/learn-guides-treasury.html +++ b/docs/learn-guides-treasury.html @@ -19,7 +19,7 @@ - + @@ -72,7 +72,7 @@ -day timeout
  • Once the referendum ends you can claim the preimage and decision deposits back
  • - + \ No newline at end of file diff --git a/docs/learn-guides-vault.html b/docs/learn-guides-vault.html index 5cdf47ed1fb6..9004aef6f658 100644 --- a/docs/learn-guides-vault.html +++ b/docs/learn-guides-vault.html @@ -19,7 +19,7 @@ - + @@ -83,7 +83,7 @@ chain and version is the version of the metadata.

    Add the renamed files to the /public/qr folder within the Metadata Portal repository.

    Run Portal

    Open the terminal within the Metadata Portal repository and run make updater. Then run make collector; this will create the _latest.apng files for each of the chains (removed by the command make cleaner). Finally, run yarn start to load the metadata portal on your localhost.

    - + \ No newline at end of file diff --git a/docs/learn-hyperbridge.html b/docs/learn-hyperbridge.html index 9f56743d439e..381de0f7a612 100644 --- a/docs/learn-hyperbridge.html +++ b/docs/learn-hyperbridge.html @@ -19,7 +19,7 @@ - + @@ -89,7 +89,7 @@ repository of hyperbridge.
  • Interoperable State Machine Protocol (ISMP) Book - Guidebook of the ISMP
  • The Puzzle of Blockchain Interoperability
  • RFC-1: Agile Coretime - Agile periodic-sale-based model for assigning Coretime on the Polkadot Ubiquitous Computer.
  • ISMP, The Endgame for Parachain Interoperability | Sub0 2023
  • Research Summary: PlonK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge
  • - + \ No newline at end of file diff --git a/docs/learn-identity.html b/docs/learn-identity.html index ce164c714333..3fe2f5894e1f 100644 --- a/docs/learn-identity.html +++ b/docs/learn-identity.html @@ -19,7 +19,7 @@ - + @@ -70,7 +70,7 @@ is required for every sub-account.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about account identity.

    - + \ No newline at end of file diff --git a/docs/learn-implementations.html b/docs/learn-implementations.html index 41f57a162b03..767a27740ccc 100644 --- a/docs/learn-implementations.html +++ b/docs/learn-implementations.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,7 @@ collection of tools, interfaces, and libraries for Polkadot and Substrate.

    Other implementations that have received grants

    While the ecosystem continues to grow rapidly, the continued development of alternative implementations will only make Polkadot stronger. Consider becoming a contributor to the ecosystem, and learn about the how you can receieve a grant for your development.

    - + \ No newline at end of file diff --git a/docs/learn-index.html b/docs/learn-index.html index beff638687f4..ff33b3b337b3 100644 --- a/docs/learn-index.html +++ b/docs/learn-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-inflation.html b/docs/learn-inflation.html index 99068c561295..a00a159f0a17 100644 --- a/docs/learn-inflation.html +++ b/docs/learn-inflation.html @@ -19,7 +19,7 @@ - + @@ -77,7 +77,7 @@ incentivizing them to stake more tokens on the network. On the contrary, staking rewards drop if staked tokens exceed the ideal staking rate. This results from the change in the percentage of staking rewards that go to the Treasury.

    - + \ No newline at end of file diff --git a/docs/learn-launch.html b/docs/learn-launch.html index bafe958ac7b2..4aad96006767 100644 --- a/docs/learn-launch.html +++ b/docs/learn-launch.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,7 @@ block number 1_205_128 on August 18, 2020, at 16:39 UTC.

    Core Functionality

    After five years of research and development and a multi-stage launch that began in May 2020, Polkadot launch was completed on December 18, 2021, with all auction-winning parachains producing blocks on the network.

    Check out these resources for further information:

    - + \ No newline at end of file diff --git a/docs/learn-nft-pallets.html b/docs/learn-nft-pallets.html index 74027371d046..ad5341108e38 100644 --- a/docs/learn-nft-pallets.html +++ b/docs/learn-nft-pallets.html @@ -19,7 +19,7 @@ - + @@ -112,7 +112,7 @@ balance-keeping chain for both fungible and non-fungibles.

    These NFTs can be viewed and interacted with on RMRK's Singular platform, by switching the top right menu from Kusama to the Asset Hub.

    nft-hub

    They can also be interacted with directly through the extrinsics tab of the Asset Hub:

    uniques.png

    - + \ No newline at end of file diff --git a/docs/learn-nft-projects.html b/docs/learn-nft-projects.html index cb9e774b6c37..bb9115eb5756 100644 --- a/docs/learn-nft-projects.html +++ b/docs/learn-nft-projects.html @@ -19,7 +19,7 @@ - + @@ -101,7 +101,7 @@ on, rather than entering the NFT space themselves as an end-product.

    Unique Network aims to make their marketplace technology open-source and whitelabel-friendly. In theory, it should be trivial to set up a new marketplace for your project using Unique's technology. Unique network aims to be a parachain on Polkadot, and Quartz is their Kusama counterpart.

    - + \ No newline at end of file diff --git a/docs/learn-nft.html b/docs/learn-nft.html index 90836ead0766..2da0bd2ee6d3 100644 --- a/docs/learn-nft.html +++ b/docs/learn-nft.html @@ -19,7 +19,7 @@ - + @@ -64,7 +64,7 @@ RMRK hackathon for porting RMRK NFTs into simplified IOUs on EVM chains

    References

    - + \ No newline at end of file diff --git a/docs/learn-nomination-pools.html b/docs/learn-nomination-pools.html index 32f38c101e9f..100827be8539 100644 --- a/docs/learn-nomination-pools.html +++ b/docs/learn-nomination-pools.html @@ -19,7 +19,7 @@ - + @@ -201,7 +201,7 @@ in the nomination pools and earn staking rewards. For additional information, see this blog post. Check the wiki doc on nomination pools for more information.

    NominatingJoining a Pool
    Minimum 250 DOT to nominate.Minimum 1 DOT to be a member.
    Rewards can be compounded automatically or sent to any account.Rewards can be manually claimed to the pool member's account and be bonded in the pool again to compound them.
    If the active validator gets slashed, all active nominators are subjected to slashing, also those that do not receive rewards due to the oversubscription issue.If the active validator gets slashed, all pool members are subjected to slashing.
    Can bond and stake DOT indefinitely.Can bond and stake DOT until the pool exists.
    Unbonding period of 28 days. Can switch validators without unbonding.Unbonding period of 28 days. Need to unbond before switching to a different pool.
    Maximum uncapped.Maximum uncapped.
    Should bond more than the minimum active nomination in an era to be eligible to earn staking rewards, although it can depend on multiple other factors outlined in the linked document.A nomination pool earns rewards in an era if it satisfies all the conditions mentioned for the nominator (as the nomination pool is just a nominator from the NPoS system perspective).
    Staked tokens can be used for participation in Governance.Staked tokens cannot be used for participation in Governance.
    Rewards payout can be triggered permissionlessly by anyone (typically done by the validator).A pool member can self claim the rewards or can grant permission to any other account to claim and compound rewards on your behalf. See Claim Permissions.
    Bonded funds remain in your account.Bonded funds are transferred to a pool account which is administered by the network protocol and is not accessible to anyone else. See System Accounts for more information.
    Nominator manages the list of staked validators (up to 16).Nominations managed by the pool operator.
    - + \ No newline at end of file diff --git a/docs/learn-nominator.html b/docs/learn-nominator.html index 8116fffc2b32..75aacebb9ee7 100644 --- a/docs/learn-nominator.html +++ b/docs/learn-nominator.html @@ -19,7 +19,7 @@ - + @@ -266,7 +266,7 @@ Polkadot JS Apps > Network > Staking > Targets page.

    Minimum Active Nomination

    Guides

    - + \ No newline at end of file diff --git a/docs/learn-parachains-faq.html b/docs/learn-parachains-faq.html index e40275af66e3..595d459f3c2c 100644 --- a/docs/learn-parachains-faq.html +++ b/docs/learn-parachains-faq.html @@ -19,7 +19,7 @@ - + @@ -111,7 +111,7 @@ initiate an auction, however, Root origin (via referendum) is needed to cancel an auction. Here is a proposal that gives a glimpse of what goes into planning auctions schedule - Proposed Polkadot Auction Schedule 2022.

    - + \ No newline at end of file diff --git a/docs/learn-parachains-index.html b/docs/learn-parachains-index.html index bfb948317dce..f92a51ee68b3 100644 --- a/docs/learn-parachains-index.html +++ b/docs/learn-parachains-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-parachains-protocol.html b/docs/learn-parachains-protocol.html index a62953654dfa..cc72c4e8d6f8 100644 --- a/docs/learn-parachains-protocol.html +++ b/docs/learn-parachains-protocol.html @@ -19,7 +19,7 @@ - + @@ -272,7 +272,7 @@ Parity analyst Joe Petrowski expounds on the validity checks that a parachain block must pass in order to progress the parachain.
  • Availability and Validity - Paper by the W3F Research Team that specifies the availability and validity protocol in detail.
  • - + \ No newline at end of file diff --git a/docs/learn-parachains.html b/docs/learn-parachains.html index da963074be44..f11f9a99f2dd 100644 --- a/docs/learn-parachains.html +++ b/docs/learn-parachains.html @@ -19,7 +19,7 @@ - + @@ -189,7 +189,7 @@ its own. The Relay Chain provides security to attached parachains, but also provides a guarantee of secure message-passing between them."
  • The Path of a Parachain Block - A technical walk-through of how parachains interact with the Relay Chain.
  • - + \ No newline at end of file diff --git a/docs/learn-parathreads.html b/docs/learn-parathreads.html index 46a4e15e8015..62610cafad85 100644 --- a/docs/learn-parathreads.html +++ b/docs/learn-parathreads.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,7 @@ produce new blocks when they need to.

    Parathreads help ease the sharp stop of the parachain slot term by allowing parachains that are still doing something useful to produce blocks, even if it is no longer economically viable to rent a parachain slot.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-participants-index.html b/docs/learn-participants-index.html index f7829935bafa..99a248576b7a 100644 --- a/docs/learn-participants-index.html +++ b/docs/learn-participants-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-phragmen.html b/docs/learn-phragmen.html index e86d482a3f45..80e98ec6d241 100644 --- a/docs/learn-phragmen.html +++ b/docs/learn-phragmen.html @@ -19,7 +19,7 @@ - + @@ -270,7 +270,7 @@ This paper by Brill et al. is the source for the simple Phragmén method, along with proofs about its properties.
  • Offline Phragmén - Script to generate the Phragmén validator election outcome before the start of an era.
  • - + \ No newline at end of file diff --git a/docs/learn-polkadot-host.html b/docs/learn-polkadot-host.html index a6f2a189c316..47a5ca1a6b9f 100644 --- a/docs/learn-polkadot-host.html +++ b/docs/learn-polkadot-host.html @@ -19,7 +19,7 @@ - + @@ -45,7 +45,7 @@ Host is referred to as the Executor. For additional technical implementation details, check out this section of the Polkadot Spec.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-js-guides.html b/docs/learn-polkadot-js-guides.html index 2158fbb9534a..ca80c95ec822 100644 --- a/docs/learn-polkadot-js-guides.html +++ b/docs/learn-polkadot-js-guides.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,7 @@ Ledger and Polkadot Vault for signing transactions. We do not provide support for third party applications.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-index.html b/docs/learn-polkadot-opengov-index.html index 24c9f446aa71..7277218a6a46 100644 --- a/docs/learn-polkadot-opengov-index.html +++ b/docs/learn-polkadot-opengov-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-origins.html b/docs/learn-polkadot-opengov-origins.html index b389f9d57e8f..7ad4e709b793 100644 --- a/docs/learn-polkadot-opengov-origins.html +++ b/docs/learn-polkadot-opengov-origins.html @@ -19,7 +19,7 @@ - + @@ -85,7 +85,7 @@

    Big Spender

    Origin able to spend up to 1000000 DOT from the treasury at once.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-treasury.html b/docs/learn-polkadot-opengov-treasury.html index 059f21616266..c90efdf757d1 100644 --- a/docs/learn-polkadot-opengov-treasury.html +++ b/docs/learn-polkadot-opengov-treasury.html @@ -19,7 +19,7 @@ - + @@ -86,7 +86,7 @@ allocation of funds and as part of a nested iteration of the bounty mechanism.

    Child Bounties

    Child bounties are spawned from parent bounties. Child bounties are used to access funds directly from the parent bounty without going through an OpenGov referendum.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about bounties and treasury.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov.html b/docs/learn-polkadot-opengov.html index 5ec5e407f26a..e4d7b0a21ee0 100644 --- a/docs/learn-polkadot-opengov.html +++ b/docs/learn-polkadot-opengov.html @@ -19,7 +19,7 @@ - + @@ -237,7 +237,21 @@ DOT, not 10 DOT.

    Note that to successfully cast votes you need to have the existential deposit and some additional funds -to pay for transaction fees.

    Multirole Delegation

    Polkadot OpenGov builds on the +to pay for transaction fees.

    Voting Locks

    Voting Without Conviction

    A lock is placed on the DOT when you vote on an +Ongoing referendum. If you choose to remove your vote when the referendum is still in the decision period, +your voting lock is removed. Once the referendum is decided (accepted or rejected), your DOT +will be available for unlocking if you voted with zero conviction. The governance app or interface you +used for participating in Polkadot OpenGov should show an option to unlock your DOT. +Here are the instructions to +do it on the Polkadot-JS UI.

    Voting with Conviction

    If you voted with conviction, the corresponding locks start at the end of the Referendum and not at the moment you voted. +For instance, let's say you voted AYE with 6X conviction on a referendum, and it got accepted; the +DOT you voted with is locked for 32 weeks from that moment. +If you voted NAY with 6X conviction on a referendum and it got accepted, then your DOT +would be ready to be unlocked immediately. Polkadot OpenGov is designed to ensure that only the winning side +is mandated to lock their DOT and the losing side can claim +DOT and have it added to the transferable balance on their account.

    For unlocking generic account locks, navigate to this section. When you +delegate your votes, the locking mechanism differs slightly. Please check the next section on Multirole Delegation for +more information.

    Multirole Delegation

    Polkadot OpenGov builds on the vote delegation feature from Governance v1 where a voter can delegate their voting power to another voter. It does so by introducing a feature known as multirole delegation, where voters can specify a different delegate for every class of @@ -266,8 +280,8 @@ entities.

    For a step-by-step outline of how to delegate voting power in Polkadot OpenGov, check out the Delegating Voting Power section on the Polkadot OpenGov Guides.

    Resources


    Polkadot-JS Guides

    If you are an advanced user, see the -Polkadot-JS guides about OpenGov.

    - +Polkadot-JS guides about OpenGov.

    + \ No newline at end of file diff --git a/docs/learn-polkadot-technical-fellowship.html b/docs/learn-polkadot-technical-fellowship.html index e492c5242f9b..db11f46a98ff 100644 --- a/docs/learn-polkadot-technical-fellowship.html +++ b/docs/learn-polkadot-technical-fellowship.html @@ -19,7 +19,7 @@ - + @@ -70,11 +70,12 @@ apply for the Polkadot Technical Fellowship. This initiative is funded by Polkadot treasury through OpenGov referendum 373

    info

    The fellowship manifesto states that any account may register to become a candidate for a basic -deposit, but that feature has not been added to the collectives runtime yet.

    To be added as a candidate of the Polkadot Technical Fellowship, a pre-existing member with rank -greater than or equal to 1 can initiate the process. The fellowship membership management is -administered through the +deposit, but that feature has not been added to the collectives runtime yet. To be added as a +candidate of the Polkadot Technical Fellowship, a pre-existing member with rank greater than or +equal to 1 can initiate the process. The fellowship membership management is administered through +the core fellowship -pallet.

    Before starting the candidate induction process, please ensure the candidate account is active and +pallet.

    Before starting the candidate induction process, please ensure the candidate account is active and has a balance greater than the existential deposit of the collectives system chain (0.1 DOT). It is recommended that the candidate account also has a verified identity.

    The first step is to add a preimage on the collectives system chain. This preimage should include the call to induct a candidate account, as shown below. The preimage can be added by any account @@ -87,19 +88,23 @@ candidate with rank 0. After copying the preimage hash in the designated field, the preimage length will automatically be populated.

    candidate-induct-proposal

    After submitting the proposal, the voting can commence. A decision deposit needs to be placed for this fellowship referendum to be decided. After the fellowship referenda successfully passes, the -candidate is successfully inducted into the Polkadot Fellowship with rank 0.

    Promotion and Demotion

    Any fellowship member upto rank 4 can be promoted to the next rank through a fellowship referenda -that can be voted by the members who are 2 ranks higher. For instance, the fellowship +candidate is successfully inducted into the Polkadot Fellowship with rank 0.

    Rank Updates

    The Polkadot Technical Fellowship members are expected to provide a periodic evidence to request for +retaining their rank or to get promoted to a higher rank. Any fellowship member upto rank 4 can be +promoted to the next rank through a fellowship referenda that can be voted by the members who are 2 +ranks higher. For instance, the fellowship referenda 64 which promotes a member from rank 1 to rank 2 can only be voted by members whose ranks are greater than or equal to 3. Promotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov referendum.

    This preimage example should include the call to promote an account to a specific rank, as shown -below. This preimage can be added by any account on the collectives system chain.

    candidate-promote

    In the snapshot below, the submission track is chosen as 21/Promote to 1 Dan, origin as +below. This preimage can be added by any account on the collectives system chain.

    candidate-promote

    In the snapshot below, the submission track is chosen as 21/Promote to I Dan, origin as FellowshipOrigins and fellowship origins as PromoteTo1Dan. This selection should work for -promoting a candidate with rank 0 to a member with rank 1.

    candidate-promote-proposal

    To retain a rank, the Polkadot Fellowship members are expected to submit evidence of work in an -on-going basis.

    Demotion occurs automatically after a given period has elapsed, and the member is unable to +promoting a candidate with rank 0 to a member with rank 1.

    candidate-promote-proposal

    For promoting a member from Rank 1 to Rank 2, the submission track can be chosen as +22/Promote to II Dan, origin as FellowshipOrigins and fellowship origins as PromoteTo2Dan. +Only the members with Rank >= 3 can vote on this proposal.

    Retain Rank

    To retain a rank, the Polkadot Fellowship members are expected to submit evidence of work in an +on-going basis.

    Demotion and Suspension

    Demotion occurs automatically after a given period has elapsed, and the member is unable to defend their position to their peers.

    Suspension can happen only through a Polkadot OpenGov referendum, which ensures that the -Fellowship's bias alone does not necessarily result in expulsion.

    - +Fellowship's bias alone does not necessarily result in expulsion.

    + \ No newline at end of file diff --git a/docs/learn-polkadotjs-index.html b/docs/learn-polkadotjs-index.html index 984d1964ee3e..5a33c0b2f9e6 100644 --- a/docs/learn-polkadotjs-index.html +++ b/docs/learn-polkadotjs-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-proxies-pure.html b/docs/learn-proxies-pure.html index 893b16db137f..8b6472175e20 100644 --- a/docs/learn-proxies-pure.html +++ b/docs/learn-proxies-pure.html @@ -19,7 +19,7 @@ - + @@ -65,7 +65,7 @@ corporate-level management where the chance of replacing someone within a multisig can be high. Pure proxies allow keeping the same multisig when the signatories change.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about pure proxy accounts.

    - + \ No newline at end of file diff --git a/docs/learn-proxies.html b/docs/learn-proxies.html index 71ec48e0cbcd..8c0642da3d5b 100644 --- a/docs/learn-proxies.html +++ b/docs/learn-proxies.html @@ -19,7 +19,7 @@ - + @@ -100,7 +100,7 @@


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about proxy accounts. You can find information about creating and removing proxies, and more.

    - + \ No newline at end of file diff --git a/docs/learn-redenomination.html b/docs/learn-redenomination.html index 923f8085c1c7..163b540b136c 100644 --- a/docs/learn-redenomination.html +++ b/docs/learn-redenomination.html @@ -19,7 +19,7 @@ - + @@ -84,7 +84,7 @@ Ecosystem Redenomination Guide for recommendations.

    Please reach out to support@polkadot.network if you need any assistance in making sure your software is compatible with the redenomination.

    - + \ No newline at end of file diff --git a/docs/learn-runtime-upgrades.html b/docs/learn-runtime-upgrades.html index 054e9188c58b..1bd1c27cc7a7 100644 --- a/docs/learn-runtime-upgrades.html +++ b/docs/learn-runtime-upgrades.html @@ -19,7 +19,7 @@ - + @@ -84,7 +84,7 @@ may be up to the last block before execution, but it will not work if this is missing.
  • democracy(Executed) events for actual execution. In the case of a runtime upgrade, there will also be a system(CodeUpdated) event.
  • You can also monitor Polkassembly for discussions on on-chain proposals and referenda.

    * E.g. via pallets/democracy/storage/ReferendumInfoOf?key1=index&at=blockNumber on Sidecar.

    - + \ No newline at end of file diff --git a/docs/learn-sassafras.html b/docs/learn-sassafras.html index 8cd65be0d78b..33abfefd6c1b 100644 --- a/docs/learn-sassafras.html +++ b/docs/learn-sassafras.html @@ -19,7 +19,7 @@ - + @@ -31,7 +31,7 @@ with time-constant intervals. The protocol utilizes zk-SNARKs to construct a ring-VRF and is a work in progress.

    This page will be updated as progress ensues.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-scams.html b/docs/learn-scams.html index d1d8c5c3fa91..ce765963031f 100644 --- a/docs/learn-scams.html +++ b/docs/learn-scams.html @@ -19,7 +19,7 @@ - + @@ -88,7 +88,7 @@ for steps you should take to prevent further loss and contact Polkadot Support from the same page. Finally, make sure to read the present article carefully to learn how to avoid falling victim in the future.

    - + \ No newline at end of file diff --git a/docs/learn-spree.html b/docs/learn-spree.html index 7d1aaea9b092..a89b2c6c0c8a 100644 --- a/docs/learn-spree.html +++ b/docs/learn-spree.html @@ -19,7 +19,7 @@ - + @@ -78,7 +78,7 @@ instances, and the next state root of the instance. They do this validation by checking it against the validate function as provided by the SPREE module API. Collators are expected to be able to provide this information to progress their parachains.

    - + \ No newline at end of file diff --git a/docs/learn-staking-advanced.html b/docs/learn-staking-advanced.html index 08708e548310..8ea09de7c650 100644 --- a/docs/learn-staking-advanced.html +++ b/docs/learn-staking-advanced.html @@ -19,7 +19,7 @@ - + @@ -313,7 +313,7 @@ which is a fixed amount.

    Further Resources

    If you want to run a staking miner on your validator, refer to the repository provided in the resources section below.

    - + \ No newline at end of file diff --git a/docs/learn-staking-index.html b/docs/learn-staking-index.html index 97a5ed8a1a38..481e68d42989 100644 --- a/docs/learn-staking-index.html +++ b/docs/learn-staking-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-staking.html b/docs/learn-staking.html index b4a12efd4ecf..f2e11cffe16a 100644 --- a/docs/learn-staking.html +++ b/docs/learn-staking.html @@ -19,7 +19,7 @@ - + @@ -370,7 +370,7 @@ for the FAQs about staking.

    Resources


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about staking.

    - + \ No newline at end of file diff --git a/docs/learn-system-chains.html b/docs/learn-system-chains.html index 955039905a06..502df588f261 100644 --- a/docs/learn-system-chains.html +++ b/docs/learn-system-chains.html @@ -19,7 +19,7 @@ - + @@ -87,7 +87,7 @@ isolation provided by parachains.

    See the Bridges page for information on the latest bridge projects. Currently, a Bridge Hub parachain is in development that will be a portal for trust-minimized bridges to other networks.

    - + \ No newline at end of file diff --git a/docs/learn-teleport.html b/docs/learn-teleport.html index eca59ed5a166..c1d588043f66 100644 --- a/docs/learn-teleport.html +++ b/docs/learn-teleport.html @@ -19,7 +19,7 @@ - + @@ -48,7 +48,7 @@ teleportation should result in the same circulating supply of the asset, and failing to uphold this condition will result in a change in the asset's total issuance (in the case of fungible tokens) or a complete loss/duplication of an NFT.

    - + \ No newline at end of file diff --git a/docs/learn-transaction-fees.html b/docs/learn-transaction-fees.html index 892a8cbcd5b1..9a47b8b27e54 100644 --- a/docs/learn-transaction-fees.html +++ b/docs/learn-transaction-fees.html @@ -19,7 +19,7 @@ - + @@ -99,7 +99,7 @@ to free storage (e.g. clear their IDE).
  • Burns: A transaction may burn funds internally based on its logic. For example, a transaction may burn funds from the sender if it creates new storage entries, thus increasing the state size.
  • Limits: Some limits are part of the protocol. For example, nominators can only nominate 16 validators. This limits the complexity of Phragmén.
  • Learn More

    - + \ No newline at end of file diff --git a/docs/learn-transactions.html b/docs/learn-transactions.html index 996149d572f4..508884317ebd 100644 --- a/docs/learn-transactions.html +++ b/docs/learn-transactions.html @@ -19,7 +19,7 @@ - + @@ -99,7 +99,7 @@ the fee will go to the block producer, producers will include the transactions with the highest fees to maximize their reward.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about transfers.

    - + \ No newline at end of file diff --git a/docs/learn-treasury.html b/docs/learn-treasury.html index 33fa3079d3ba..5e09e07ceed7 100644 --- a/docs/learn-treasury.html +++ b/docs/learn-treasury.html @@ -19,7 +19,7 @@ - + @@ -164,7 +164,7 @@ taking place. The time delay then allows chain participants time to respond. The response may take the form of governance measures or - in the most extreme cases a liquidation of their holdings and a migration to a minority fork. However, the possibility of this scenario is quite low.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/learn-validator.html b/docs/learn-validator.html index d0274aabdba7..2fbc7969949b 100644 --- a/docs/learn-validator.html +++ b/docs/learn-validator.html @@ -19,7 +19,7 @@ - + @@ -95,7 +95,7 @@ statistics.
  • YieldScan - Staking yield maximization platform, designed to minimize effort.
  • Subscan Validators Page - Displays information on the current validators - not as tailored for validators as the other sites.
  • - + \ No newline at end of file diff --git a/docs/learn-video-tutorials.html b/docs/learn-video-tutorials.html index 1b8c26289071..5e440287de0f 100644 --- a/docs/learn-video-tutorials.html +++ b/docs/learn-video-tutorials.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + \ No newline at end of file diff --git a/docs/learn-wasm.html b/docs/learn-wasm.html index 99abd162abb9..cd095547125c 100644 --- a/docs/learn-wasm.html +++ b/docs/learn-wasm.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ spec.
  • Wasmi - WebAssembly interpreter written in Rust.
  • Parity Wasm - WebAssembly serialization/deserialization in Rust.
  • Wasm utils - Collection of Wasm utilities used in Parity and Wasm contract development.
  • - + \ No newline at end of file diff --git a/docs/learn-xcm-index.html b/docs/learn-xcm-index.html index 7d562b23854c..b0ad3865399c 100644 --- a/docs/learn-xcm-index.html +++ b/docs/learn-xcm-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-xcm-instructions.html b/docs/learn-xcm-instructions.html index 17e9286fa9d2..b6ce02f1096f 100644 --- a/docs/learn-xcm-instructions.html +++ b/docs/learn-xcm-instructions.html @@ -19,7 +19,7 @@ - + @@ -37,7 +37,7 @@ system and may not be transferred. It may only be unlocked with the receipt of the UnlockAsset instruction from this chain.

  • RequestUnlock(MultiAsset, MultiLocation) - Send an UnlockAsset instruction to the locker for the given asset.

  • - + \ No newline at end of file diff --git a/docs/learn-xcm-pallet.html b/docs/learn-xcm-pallet.html index 66d994bfe938..c803f1716e07 100644 --- a/docs/learn-xcm-pallet.html +++ b/docs/learn-xcm-pallet.html @@ -19,7 +19,7 @@ - + @@ -87,7 +87,7 @@ calculates the total fee based on the number of instructions.

    The Trader used to calculate the weight (time for computation in consensus) to include in the message. Fee calculation in XCM is highly configurable and, for this reason, subjective to whichever configuration is in place.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-transport.html b/docs/learn-xcm-transport.html index 5d8f0af0b12f..827809ba4500 100644 --- a/docs/learn-xcm-transport.html +++ b/docs/learn-xcm-transport.html @@ -19,7 +19,7 @@ - + @@ -69,7 +69,7 @@ asset transfer as intended.

    The collator now hands this block to the validator, which itself will verify that this message was processed. If the message was processed and all other aspects of the block are valid, the validator will include this block for parachain B into the Relay Chain.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-usecases.html b/docs/learn-xcm-usecases.html index 0f7d2ff77d69..8f3bbec2dc19 100644 --- a/docs/learn-xcm-usecases.html +++ b/docs/learn-xcm-usecases.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ destination's sovereign account, and sends this instruction onwards to the destination. The destination receives the instruction and processes it, minting the derivative assets as a result of the process.

    1. DepositAsset

    The destination deposits the derivative assets minted to the receiving account.

    - + \ No newline at end of file diff --git a/docs/learn-xcm.html b/docs/learn-xcm.html index 5b6fa233f289..87379414f9a7 100644 --- a/docs/learn-xcm.html +++ b/docs/learn-xcm.html @@ -19,7 +19,7 @@ - + @@ -92,7 +92,7 @@ Technical audit report by Quarkslab prepared for Parity.

  • XCM pallet code - The pallet that contains XCM logic from the Polkadot code repository

  • XCM Config & Pallet-XCM | Polkadot Deep Dives - A technical deep dive into pallet-xcm and the XCM configuration.

  • - + \ No newline at end of file diff --git a/docs/learn-xcvm.html b/docs/learn-xcvm.html index 16f507a2abd8..ec5074d459e3 100644 --- a/docs/learn-xcvm.html +++ b/docs/learn-xcvm.html @@ -19,7 +19,7 @@ - + @@ -110,7 +110,7 @@ a MultiLocation.

    Simulating XCVM using the xcm-simulator

    Within the Polkadot repository exists the xcm-simulator, which allows developers to experiment with building, executing, and simulating various XCM use scenarios.

    - + \ No newline at end of file diff --git a/docs/learn/xcm.html b/docs/learn/xcm.html index 069b2d3d4934..01776b1de5c6 100644 --- a/docs/learn/xcm.html +++ b/docs/learn/xcm.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/config-deep-dive.html b/docs/learn/xcm/config-deep-dive.html index 6b1ff1c3a355..aa22c44e511c 100644 --- a/docs/learn/xcm/config-deep-dive.html +++ b/docs/learn/xcm/config-deep-dive.html @@ -19,7 +19,7 @@ - + @@ -132,7 +132,7 @@ Statemine, or Trappist for examples of how to implement the xcm-executor config.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-fees.html b/docs/learn/xcm/fundamentals-fees.html index b9b35436a50d..4425fd70dc4e 100644 --- a/docs/learn/xcm/fundamentals-fees.html +++ b/docs/learn/xcm/fundamentals-fees.html @@ -19,7 +19,7 @@ - + @@ -56,7 +56,7 @@ and charging execution fees.

    XCM pallet

    FRAME pallets, like the XCM pallet, specify weights for each extrinsic they expose. That means that when interacting with pallets that deal with XCM, there will be an additional fee at the beginning for calling the extrinsic locally.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-multiasset.html b/docs/learn/xcm/fundamentals-multiasset.html index 5a03626e9be0..d49917a2d628 100644 --- a/docs/learn/xcm/fundamentals-multiasset.html +++ b/docs/learn/xcm/fundamentals-multiasset.html @@ -19,7 +19,7 @@ - + @@ -56,7 +56,7 @@ MultiAssets and WildMultiAsset allowing either a wildcard or a list of definite (i.e. not wildcard) assets to be specified.

    pub enum MultiAssetFilter {
    /// Specify the filter as being everything contained by the given `MultiAssets` inner.
    Definite(MultiAssets),
    /// Specify the filter as the given `WildMultiAsset` wildcard.
    Wild(WildMultiAsset),
    }

    Examples

    MultiAsset

    For more information about the MultiLocations used to define concrete assets, see MultiLocation and Junction.

    // Location Relay Chain
    // 100 Native Asset (three ways)
    MultiAsset {id: Concrete(MultiLocation {parents: 0, interior: Here}), fun: Fungible(100u128)};
    MultiAsset {id: Here.into(), fun: 100.into()};
    let _: MultiAsset = (Here, 100u128).into();

    // 100 Parachain's Native Asset
    let _: MultiAsset = (X1(Parachain(1000)), 100u128).into();
    // 100 Fungible assets in Parachain 1000 with id 1234
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), 100u128).into();
    // Non Fungible asset with asset class 1234 containing only one nft instance in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Undefined).into();
    // Non Fungible asset with asset class 1234 and AssetInstance 1 in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Index(1)).into();

    MultiAssetFilter

    let a1: MultiAssets = MultiAssets::from(vec![MultiAsset {id: Here.into(), fun: 100u128.into()}]);
    let b1: MultiAssets = (Here, 100u128).into();
    assert_eq!(a1, b1);

    let a2: MultiAssetFilter = a1.into();
    let b2 = MultiAssetFilter::Definite((Here, 100u128).into());
    assert_eq!(a2, b2);

    let a3 = MultiAssetFilter::Wild(WildMultiAsset::All);
    let b3: MultiAssetFilter = All.into();
    assert_eq!(a3, b3);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-summary.html b/docs/learn/xcm/fundamentals-summary.html index e6bd1eb30364..73d0faa1f3a2 100644 --- a/docs/learn/xcm/fundamentals-summary.html +++ b/docs/learn/xcm/fundamentals-summary.html @@ -19,14 +19,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-xcvm.html b/docs/learn/xcm/fundamentals-xcvm.html index 65ca421944db..eb413ced371c 100644 --- a/docs/learn/xcm/fundamentals-xcvm.html +++ b/docs/learn/xcm/fundamentals-xcvm.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals.html b/docs/learn/xcm/fundamentals.html index fe8adee25d71..9a5bd9c58030 100644 --- a/docs/learn/xcm/fundamentals.html +++ b/docs/learn/xcm/fundamentals.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-example.html b/docs/learn/xcm/fundamentals/multilocation-example.html index 28ddb9b1ebc0..c66c3817525b 100644 --- a/docs/learn/xcm/fundamentals/multilocation-example.html +++ b/docs/learn/xcm/fundamentals/multilocation-example.html @@ -19,14 +19,14 @@ - +

    Example

    In this example we show different MultiLocations for the system hierarchy in the image below. Example

    From the perspective of RelayA

    // ParaA
    let _: MultiLocation = Parachain(1000).into();
    // AccountId32 in Parachain A
    let _: MultiLocation = (Parachain(1000), AccountId32 { network: RELAY_A_NETWORK, id: [0u8; 32]}).into();
    // Asset in Parachain A
    let _: MultiLocation = (Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();
    // Ethereum based account on Parachain B
    let _: MultiLocation = (Parachain(2000), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // Smart Contract
    let _: MultiLocation = (Parachain(2000), PalletInstance(1), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // RelayB
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK)).into();
    // NFT on Parachain C
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK), Parachain(1000), GeneralIndex(1)).into();

    From the perspective of Parachain C

    // Relay A
    let _: MultiLocation = Parent.into();
    // Plurality Example. Many more BodyId/BodyPart combos imaginable
    let _: MultiLocation = (Parent, Plurality { id: BodyId::Index(0), part: BodyPart::Members { count: 10 } }).into();
    // Account in Relay
    let _: MultiLocation = (Parent, AccountId32 { network: None, id: [0u8; 32] }).into();

    From the perspective of the Smart Contract

    // Asset in Parachain A
    let _: MultiLocation = (Parent, Parent, Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-junctions.html b/docs/learn/xcm/fundamentals/multilocation-junctions.html index f49158b50679..e0bdba334856 100644 --- a/docs/learn/xcm/fundamentals/multilocation-junctions.html +++ b/docs/learn/xcm/fundamentals/multilocation-junctions.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,7 @@ relay chain from the perspective of the Polkadot relay chain as {parents: 1, interior: GlobalConsensus(Kusama)}. An example use case could be routing XCMs between global consensus networks using bridges.

    Multiple ways to create a MultiLocation

    // Current Location
    MultiLocation {parents: 0, interior: Here};
    MultiLocation::new(0, Here);
    MultiLocation::here();
    MultiLocation::default();
    let _: MultiLocation = Here.into();

    // Parent Location
    MultiLocation {parents: 1, interior: Here};
    MultiLocation::parent();
    let _: MultiLocation = Parent.into();

    // Conversion
    MultiLocation { parents: 2, interior: X2(Parachain(1), GeneralIndex(1))};
    let _: MultiLocation = (Parent, Parent, Parachain(1), GeneralIndex(1)).into();
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-summary.html b/docs/learn/xcm/fundamentals/multilocation-summary.html index 082e251697df..6b52c1e29d9b 100644 --- a/docs/learn/xcm/fundamentals/multilocation-summary.html +++ b/docs/learn/xcm/fundamentals/multilocation-summary.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,7 @@ .. are followed by some number of Junctions, all separated by /. The X1 and X2 variants are expressing the number of Junctions that we step down in the hierarchical structure (see Junctions for an explanation).

    // From: RelayA
    // To: ParaB
    // Location: Parachain(2000)
    MultiLocation {parents: 0, interior: X1(Parachain(2000))};
    // To: Account in ParaA
    // Location: Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 0,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    // From: ParaB
    // To: RelayA
    // Location: ../Here
    MultiLocation {parents: 1, interior: Here};
    // To: Account in ParaA
    // Location: ../Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 1,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    What's next:

    • More information about junctions
    • More MultiLocation examples
    • Expressing assets using Multilocations: [MultiAsset][../multiasset.md]
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation.html b/docs/learn/xcm/fundamentals/multilocation.html index 8333ce136cf5..e3c215cc4314 100644 --- a/docs/learn/xcm/fundamentals/multilocation.html +++ b/docs/learn/xcm/fundamentals/multilocation.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/introduction.html b/docs/learn/xcm/introduction.html index 21911789cfa8..a1183ed2e0fa 100644 --- a/docs/learn/xcm/introduction.html +++ b/docs/learn/xcm/introduction.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ open an issue. If you want to contribute to the format, check out the RFC process.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-assets.html b/docs/learn/xcm/journey-assets.html index cc804a47270b..f8264deb3fd3 100644 --- a/docs/learn/xcm/journey-assets.html +++ b/docs/learn/xcm/journey-assets.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ relay chain. The assets are trapped because an error is thrown and the execution is halted. Parachain A claims the trapped assets and receives a report of the holding register.

    Parachain A sends the following message to the relay chain. The message errors because of the Trap instruction, so all assets in the Holding Register are trapped.

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    Trap(0), // <-- Errors
    DepositAsset { // <-- Not executed because of error.
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    }
    ]);

    Parachain A claims the assets, reports them to itself and deposits them in the Account of Alice.

    let claim_message = Xcm(vec![
    ClaimAsset { assets: (Here, 10 * CENTS).into(), ticket: Here.into() },
    ReportHolding {
    response_info: QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_parts(1_000_000_000, 64*64) },
    assets: All.into()
    },
    DepositAsset {
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    },
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-channels.html b/docs/learn/xcm/journey-channels.html index d92c129eaf99..a21fdb7e9d47 100644 --- a/docs/learn/xcm/journey-channels.html +++ b/docs/learn/xcm/journey-channels.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,7 @@ network), you would call with network: NetworkId::Kusama and destination: X1(Parachain(1000)). Alternatively, to export a message for execution on Polkadot, you would call with network: NetworkId:: Polkadot and destination: Here.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-expectations.html b/docs/learn/xcm/journey-expectations.html index 515a99053293..eb104e4c379e 100644 --- a/docs/learn/xcm/journey-expectations.html +++ b/docs/learn/xcm/journey-expectations.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ the error handler, when a specific error is thrown.

        ExpectError(Option<(u32, Error)>)

    Example

    For the full example, check here.

    SetErrorHandler(Xcm(vec![
    ExpectError(Some((1, XcmError::VersionIncompatible))),
    ReportError(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ])),
    // Pallet index is wrong, so throws `PalletNotFound` error.
    ExpectPallet {
    index: 100,
    name: "Balances".into(),
    module_name: "pallet_balances".into(),
    crate_major: 4,
    min_crate_minor: 0,
    },

    ExpectTransactStatus

    The ExpectTransactStatus instruction throws an ExpectationFalse error if the transact status register does not equal the expected transact status.

    Example

    For the full example, check here. The transact status is reported to Parachain(1) if the call in the Transact errors.

    SetErrorHandler(Xcm(vec![ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    })])),
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ExpectTransactStatus(MaybeErrorCode::Success),
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-fees.html b/docs/learn/xcm/journey-fees.html index dd0c7335b00e..05d41d4c8a5a 100644 --- a/docs/learn/xcm/journey-fees.html +++ b/docs/learn/xcm/journey-fees.html @@ -19,7 +19,7 @@ - + @@ -62,7 +62,7 @@ throws an error, the error handler will be called and the weight for all the instructions that weren't executed is refunded. For the full example, check our repo.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-holding.html b/docs/learn/xcm/journey-holding.html index de2cca4ac0ce..5fc7aefd155b 100644 --- a/docs/learn/xcm/journey-holding.html +++ b/docs/learn/xcm/journey-holding.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,7 @@ results could differ.

    The Assets in the exchange in Parachain(1). This is a custom exchange implementation just for testing purposes.

    let assets_in_exchange = vec![(Parent, 10 * CENTS).into()];
    parachain::set_exchange_assets(assets_in_exchange);

    The message that is send:

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    // Maximal field set to true.
    ExchangeAsset {
    give: Definite((Here, 5 * CENTS).into()),
    want: (Parent, 5 * CENTS).into(),
    maximal: true,
    },
    DepositAsset {
    assets: AllCounted(2).into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into(),
    }
    .into(),
    },
    ]);

    Alice receives 5 CENTS worth of native assets (Here) and 5 CENTS worth of relay chain derivative assets (Parent).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-locks.html b/docs/learn/xcm/journey-locks.html index 49da46fd307b..ab5ed42addad 100644 --- a/docs/learn/xcm/journey-locks.html +++ b/docs/learn/xcm/journey-locks.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,7 @@ pallet-balances: 10.
    ParaA::execute_with(|| {
    let message = Xcm(vec![
    LockAsset { asset: (Here, 10 * CENTS).into(), unlocker: (Parachain(2)).into() },
    LockAsset { asset: (Here, 5 * CENTS).into(), unlocker: (Parachain(3)).into() },
    ]);
    assert_ok!(ParachainPalletXcm::send_xcm(Here, Parent, message.clone()));
    });

    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 10 * CENTS, reasons: Reasons::All }]
    );
    });
    1. Parachain B and C receive the NoteUnlockable instruction.
    ParaB::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 10 * CENTS).into()
    }])]
    );
    });

    ParaC::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 5 * CENTS).into()
    }])]
    );
    });
    1. Parachain A sends a RequestUnlock instruction to Parachain B for 8 CENTS.
    ParaA::execute_with(|| {
    let message = Xcm(vec![RequestUnlock {
    asset: (Parent, 8 * CENTS).into(),
    locker: Parent.into(),
    }]);

    assert_ok!(ParachainPalletXcm::send_xcm(Here, (Parent, Parachain(2)), message.clone()));
    });
    1. Parachain B Unlocks a part of the funds by sending an UnlockAsset to the relay chain. we check the lock in the balances-pallet. Unlockers: B, C; Funds registered in pallet-xcm: 2, 5. Lock set in pallet-balances: 5.
    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 5 * CENTS, reasons: Reasons::All }]
    );
    });
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-origin.html b/docs/learn/xcm/journey-origin.html index 29c3d8955eb4..e6df28678159 100644 --- a/docs/learn/xcm/journey-origin.html +++ b/docs/learn/xcm/journey-origin.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,7 @@ for certain values of X (thereby allowing sibling chains to use the same account IDs) or Parachain(X)/ (allowing a Relay-chain to use the account IDs native to its child parachains) or just Parent/ (allowing parachains to use AccountIds of the Relay-chain).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-queries.html b/docs/learn/xcm/journey-queries.html index 756352609d54..cc8cb78603c8 100644 --- a/docs/learn/xcm/journey-queries.html +++ b/docs/learn/xcm/journey-queries.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,7 @@ specified destination.

    ReportTransactStatus(QueryResponseInfo)

    Example

    For the full example, check here. Dispatches a call on the consensus system receiving this Xcm and reports back the status of the Transact Status Register.

    Xcm(vec![
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: remark.encode().into(),
    },
    ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-register.html b/docs/learn/xcm/journey-register.html index c88b8da5f1dd..81897aa30f42 100644 --- a/docs/learn/xcm/journey-register.html +++ b/docs/learn/xcm/journey-register.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ and error handler instruction are executed. These instructions are executed regardless of whether an error occurred.

    ClearError

    ClearError

    The ClearError instruction clears the Error Register by setting it to None.

    ClearTransactStatus

    ClearTransactStatus

    The ClearTransactStatus instruction sets the Transact Status Register to its default, cleared, value.

    SetTopic

    SetTopic([u8; 32])

    The SetTopic instruction sets the Topic Register.

    ClearTopic

    ClearTopic

    The ClearTopic instruction clears the Topic Register.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-summary.html b/docs/learn/xcm/journey-summary.html index 261187988905..4b7275978ab7 100644 --- a/docs/learn/xcm/journey-summary.html +++ b/docs/learn/xcm/journey-summary.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-transact.html b/docs/learn/xcm/journey-transact.html index 59d3ae48d56b..5da79881e087 100644 --- a/docs/learn/xcm/journey-transact.html +++ b/docs/learn/xcm/journey-transact.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,7 @@ Parachain(1). This function requires the origin to be root. We enable the root origin for the relay chain by setting ParentAsSuperuser for the OriginConverter config type.

    let call = parachain::RuntimeCall::Balances(
    pallet_balances::Call::<parachain::Runtime>::set_balance {
    who: ALICE,
    new_free: 5 * AMOUNT,
    new_reserved: 0,
    },
    );

    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::Superuser,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ]);

    Example 2

    For the full example, check the repo.

    In this example, as Parachain(1), we create an NFT collection on the relay chain and we then mint an NFT with ID 1. The admin for the nft collection is parachain(1). The call looks as follows:

    let create_collection = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::create {
    collection: 1u32,
    admin: parachain_sovereign_account_id(1),
    }
    );

    The owner of the NFT is Alice. The nft mint call looks as follows:

    let mint = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::mint {
    collection: 1u32,
    item: 1u32,
    owner: ALICE,
    }
    );

    The xcm message contains the following instructions:

    1. Withdraw native assets from the Parachain(1)'s sovereign account.
    2. Buy weight with these assets.
    3. Create a collection with as admin and owner the sovereign account of Parachain(1).
    4. Mints an NFT in the collection with item ID 1 and as owner Alice.
    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: create_collection.encode().into(),
    },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: mint.encode().into(),
    },
    ]);

    Next:

    Check out the following instructions that interact with the Transact Status Register:

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-version.html b/docs/learn/xcm/journey-version.html index 176add0149cc..ac864d33decc 100644 --- a/docs/learn/xcm/journey-version.html +++ b/docs/learn/xcm/journey-version.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ send back its currently AdvertisedVersion and will keep the subscribed location up to date when the version changes. The subscribed location can unsubscribe to version changes by sending the UnsubscribeVersion instruction.

    SubscribeVersion {
    #[codec(compact)]
    query_id: QueryId,
    max_response_weight: Weight,
    }

    UnsubscribeVersion

    Check out the example.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey.html b/docs/learn/xcm/journey.html index 7959cce87222..ce07c70f2b2a 100644 --- a/docs/learn/xcm/journey.html +++ b/docs/learn/xcm/journey.html @@ -19,13 +19,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-reserve.html b/docs/learn/xcm/journey/transfers-reserve.html index 07ae5921f0de..d7c89cbc4d9c 100644 --- a/docs/learn/xcm/journey/transfers-reserve.html +++ b/docs/learn/xcm/journey/transfers-reserve.html @@ -19,7 +19,7 @@ - + @@ -73,7 +73,7 @@ It's the sender the one who doesn't need to trust the destination, since it'll ever only be minting derivatives anyway, the sender/reserve controls the real assets and issuance.

    Next steps

    Next, we'll talk about a very important topic we mentioned before but skipped in this chapter, paying fees for the effects our XCMs have.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-summary.html b/docs/learn/xcm/journey/transfers-summary.html index d7e527b335f5..f27cd16aa039 100644 --- a/docs/learn/xcm/journey/transfers-summary.html +++ b/docs/learn/xcm/journey/transfers-summary.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,7 @@ paying for execution and depositing the rest to another account on the same system. The full example can be seen in the repo.

    Transferring between systems

    But what if you want to make a transfer from one system to another? There are two ways of doing this:

    • Asset teleportation
    • Reserve-backed transfers

    We'll be discussing both in the following chapters.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-teleport.html b/docs/learn/xcm/journey/transfers-teleport.html index f36bf4ac1b9d..abb4d0ce2b9f 100644 --- a/docs/learn/xcm/journey/transfers-teleport.html +++ b/docs/learn/xcm/journey/transfers-teleport.html @@ -19,7 +19,7 @@ - + @@ -61,7 +61,7 @@ another system. We could do so with the following program:

    let message = Xcm(vec![
    WithdrawAsset((GeneralIndex(1), 42u32).into()),
    InitiateTeleport {
    assets: All.into(),
    dest: Parachain(1).into(),
    xcm: Xcm(vec![DepositAsset {
    assets: All.into(),
    beneficiary: Junction::AccountId32 {
    id: ALICE.into(),
    network: None,
    }.into()
    }]),
    },
    ]);

    Very little changes, in fact, only the MultiAsset we're referencing changes, like we would expect. All the teleportation logic stays the same. The example assumes an NFT with index 42 inside a collection with index 1.

    Next steps

    We'll look at reserve-backed transfers next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers.html b/docs/learn/xcm/journey/transfers.html index 425d61261120..48e5e1f74989 100644 --- a/docs/learn/xcm/journey/transfers.html +++ b/docs/learn/xcm/journey/transfers.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-architecture.html b/docs/learn/xcm/overview-architecture.html index d07456de0d58..79e174077476 100644 --- a/docs/learn/xcm/overview-architecture.html +++ b/docs/learn/xcm/overview-architecture.html @@ -19,7 +19,7 @@ - + @@ -48,7 +48,7 @@ about later. It's the glue between XCM and FRAME, which is highly used in the Polkadot ecosystem.

    Simulator

    The simulator allows for testing XCMs fast, without needing to boot up several different nodes in a network, or test in production. It's a very useful tool which we'll use throughout this document to build and test different XCMs.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-format.html b/docs/learn/xcm/overview-format.html index 1be2f31707b9..6840ec9f84a0 100644 --- a/docs/learn/xcm/overview-format.html +++ b/docs/learn/xcm/overview-format.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,7 @@ changes. XCM communicates intentions; the actual interpretation and behaviour of each instruction in an XCM is defined by target's XCVM implementation.

    Both simple and more complex scenarios can be expressed, and developers are encouraged to design and implement diverse cross-consensus communication solutions.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-intro.html b/docs/learn/xcm/overview-intro.html index 7d872cc1fd13..e960fcfd0e81 100644 --- a/docs/learn/xcm/overview-intro.html +++ b/docs/learn/xcm/overview-intro.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ propose changes, which end up in newer versions, the current one being v3. To keep up with the development of the format, or to propose changes, go to the XCM format repository.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-summary.html b/docs/learn/xcm/overview-summary.html index 61f8b18b7f00..15d150670204 100644 --- a/docs/learn/xcm/overview-summary.html +++ b/docs/learn/xcm/overview-summary.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ interactions between them. XCM is meant to be used by developers to package these interactions into their runtime logic before exposing that functionality to end users.

    This chapter will cover what XCM is, what it isn't, and why it matters before exploring the different components that make up the XCM ecosystem.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-xcvm.html b/docs/learn/xcm/overview-xcvm.html index 4d6f5036828e..709a9488ecb6 100644 --- a/docs/learn/xcm/overview-xcvm.html +++ b/docs/learn/xcm/overview-xcvm.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ putting them in and taking them from this register. This register is used by several of the instructions we will look at later, including DepositAsset and WithdrawAsset.

    For more information on other registers, see the All XCVM Registers section.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview.html b/docs/learn/xcm/overview.html index 556db1f8d409..03f10a4bbbe9 100644 --- a/docs/learn/xcm/overview.html +++ b/docs/learn/xcm/overview.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-first-look.html b/docs/learn/xcm/quickstart-first-look.html index e26892456cf7..d0390aa662d2 100644 --- a/docs/learn/xcm/quickstart-first-look.html +++ b/docs/learn/xcm/quickstart-first-look.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,7 @@ examples for every instruction in the journey through XCM chapter. First, it's important to learn the fundamentals, MultiLocation, MultiAsset, and other concepts in XCM. We'll talk about those next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-simulator.html b/docs/learn/xcm/quickstart-simulator.html index ece3448488aa..0019825c1e5b 100644 --- a/docs/learn/xcm/quickstart-simulator.html +++ b/docs/learn/xcm/quickstart-simulator.html @@ -19,7 +19,7 @@ - + @@ -31,7 +31,7 @@ actually test your XCM-powered solution. We'll get into tools and best practices for testing in the testing chapter.

    We'll use the simulator throughout the documentation to show different XCMs in action. In the next section we will take a first look at an XCM.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-summary.html b/docs/learn/xcm/quickstart-summary.html index aa304b19ddce..ec21899a8284 100644 --- a/docs/learn/xcm/quickstart-summary.html +++ b/docs/learn/xcm/quickstart-summary.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,7 @@ installation guide.

    Running the Examples

    All examples in the documentation are located in the repository. Follow these steps to run the first-look example. First clone the repository:

    git clone git@github.com:paritytech/xcm-docs.git
    cd xcm-docs/examples

    To run the first-look example, run the following line:

    cargo test -p xcm-examples para_a_simple_transfer -- --nocapture

    It should show you the following output:

    running 1 test
    test first_look::tests::para_a_simple_transfer ... ok

    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.01s
    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart.html b/docs/learn/xcm/quickstart.html index 7fe3ed87beec..e8a281067cd2 100644 --- a/docs/learn/xcm/quickstart.html +++ b/docs/learn/xcm/quickstart.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-glossary.html b/docs/learn/xcm/reference-glossary.html index 4e75a80cfe5a..d72e4e13a6a1 100644 --- a/docs/learn/xcm/reference-glossary.html +++ b/docs/learn/xcm/reference-glossary.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ through the relay chain.

    HRMP (Horizontal Message Passing)

    Transport-layer protocol that allows a parachain to send messages to a sibling parachain going through the relay chain. It's a precursor to XCMP, also known as XCMP-lite. It uses a mixture of UMP and VMP.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-xcvm-registers.html b/docs/learn/xcm/reference-xcvm-registers.html index 3be87971cb6b..bfd87dd0ec8c 100644 --- a/docs/learn/xcm/reference-xcvm-registers.html +++ b/docs/learn/xcm/reference-xcvm-registers.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@
    - + \ No newline at end of file diff --git a/docs/learn/xcm/references.html b/docs/learn/xcm/references.html index be0143aaf273..0da0170d0b15 100644 --- a/docs/learn/xcm/references.html +++ b/docs/learn/xcm/references.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/testing.html b/docs/learn/xcm/testing.html index c013c2cd92d4..dc4ebe40574b 100644 --- a/docs/learn/xcm/testing.html +++ b/docs/learn/xcm/testing.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ messaging infrastructure as live networks, as the transport mechanism is being mocked out. Also, consensus related events are not tested, like disputes, staking and iamonline events. To test for these events, parachains can use E2E tests.

    End-to-End testing

    There are two frameworks being used in the ecosystem to do e2e testing:

    - + \ No newline at end of file diff --git a/docs/ledger.html b/docs/ledger.html index 75ca4f871310..6a45346506de 100644 --- a/docs/ledger.html +++ b/docs/ledger.html @@ -19,7 +19,7 @@ - + @@ -81,7 +81,7 @@ automatically detect the developer release and give the option to install the previous stable release.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Ledger.

    - + \ No newline at end of file diff --git a/docs/maintain-bootnode.html b/docs/maintain-bootnode.html index 8e8e5fe99621..c8185a0c4272 100644 --- a/docs/maintain-bootnode.html +++ b/docs/maintain-bootnode.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ port 30311:

    /etc/nginx/sites-enabled/dot-bootnode

    server {
    listen 30312 ssl http2 default_server;
    server_name dot-bootnode.stakeworld.io;
    root /var/www/html;

    ssl_certificate "<your_cert";
    ssl_certificate_key "<your_key>";

    location / {
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;
    proxy_pass http://localhost:30311;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    }

    }

    Testing Bootnode Connection

    If we have the above node running with DNS name dot-bootnode.stakeworld.io, proxied with a valid certificate and node-id 12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg then the following commands should give you a: "syncing 1 peers".

    tip

    You can add -lsub-libp2p=trace on the end to get libp2p trace logging for debugging purposes.

    p2p:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30310/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/ws:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/wss:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks
    - + \ No newline at end of file diff --git a/docs/maintain-endpoints.html b/docs/maintain-endpoints.html index d8ce4960d25d..695f3126a534 100644 --- a/docs/maintain-endpoints.html +++ b/docs/maintain-endpoints.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,7 @@ provide additional services such as higher rate limits, potentially more reliable and scalable service, and additional metrics.

    note

    The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from Polkdot-JS UI

    - + \ No newline at end of file diff --git a/docs/maintain-errors.html b/docs/maintain-errors.html index 1331ff901a8d..c54b338d75c3 100644 --- a/docs/maintain-errors.html +++ b/docs/maintain-errors.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,7 @@ will wait to be executed at the correct place in the nonce sequence OR it will get discarded due to some other error (ex. the validity period expires).*

    Error Table

    The below table is a reference to the errors that exists in Polkadot. It is generated from the runtime's metadata.

    PalletErrorDocumentation
    System (0)
    InvalidSpecName (0)The name of specification does not match between the current runtime and the new runtime.
    SpecVersionNeedsToIncrease (1)The specification version is not allowed to decrease between the current runtime and the new runtime.
    FailedToExtractRuntimeVersion (2)Failed to extract the runtime version from the new runtime. Either calling Core_version or decoding RuntimeVersion failed.
    NonDefaultComposite (3)Suicide called when the account has non-default composite data.
    NonZeroRefCount (4)There is a non-zero reference count preventing the account from being purged.
    Scheduler (1)
    FailedToSchedule (0)Failed to schedule a call
    NotFound (1)Cannot find the scheduled call.
    TargetBlockNumberInPast (2)Given target block number is in the past.
    RescheduleNoChange (3)Reschedule failed because it does not change scheduled time.
    Balances (5)
    VestingBalance (0)Vesting balance too high to send value
    LiquidityRestrictions (1)Account liquidity restrictions prevent withdrawal
    Overflow (2)Got an overflow after adding
    InsufficientBalance (3)Balance too low to send value
    ExistentialDeposit (4)Value too low to create account due to existential deposit
    KeepAlive (5)Transfer/payment would kill account
    ExistingVestingSchedule (6)A vesting schedule already exists for this account
    DeadAccount (7)Beneficiary account must pre-exist
    Authorship (6)
    InvalidUncleParent (0)The uncle parent not in the chain.
    UnclesAlreadySet (1)Uncles already set in the block.
    TooManyUncles (2)Too many uncles.
    GenesisUncle (3)The uncle is genesis.
    TooHighUncle (4)The uncle is too high in chain.
    UncleAlreadyIncluded (5)The uncle is already included.
    OldUncle (6)The uncle isn't recent enough to be included.
    Staking (7)
    NotController (0)Not a controller account.
    NotStash (1)Not a stash account.
    AlreadyBonded (2)Stash is already bonded.
    AlreadyPaired (3)Controller is already paired.
    EmptyTargets (4)Targets cannot be empty.
    DuplicateIndex (5)Duplicate index.
    InvalidSlashIndex (6)Slash record index out of bounds.
    InsufficientValue (7)Can not bond with value less than minimum balance.
    NoMoreChunks (8)Can not schedule more unlock chunks.
    NoUnlockChunk (9)Can not rebond without unlocking chunks.
    FundedTarget (10)Attempting to target a stash that still has funds.
    InvalidEraToReward (11)Invalid era to reward.
    InvalidNumberOfNominations (12)Invalid number of nominations.
    NotSortedAndUnique (13)Items are not sorted and unique.
    AlreadyClaimed (14)Rewards for this era have already been claimed for this validator.
    OffchainElectionEarlySubmission (15)The submitted result is received out of the open window.
    OffchainElectionWeakSubmission (16)The submitted result is not as good as the one stored on chain.
    SnapshotUnavailable (17)The snapshot data of the current window is missing.
    OffchainElectionBogusWinnerCount (18)Incorrect number of winners were presented.
    OffchainElectionBogusWinner (19)One of the submitted winners is not an active candidate on chain (index is out of range in snapshot).
    OffchainElectionBogusCompact (20)Error while building the assignment type from the compact. This can happen if an index is invalid, or if the weights overflow.
    OffchainElectionBogusNominator (21)One of the submitted nominators is not an active nominator on chain.
    OffchainElectionBogusNomination (22)One of the submitted nominators has an edge to which they have not voted on chain.
    OffchainElectionSlashedNomination (23)One of the submitted nominators has an edge which is submitted before the last non-zero slash of the target.
    OffchainElectionBogusSelfVote (24)A self vote must only be originated from a validator to ONLY themselves.
    OffchainElectionBogusEdge (25)The submitted result has unknown edges that are not among the presented winners.
    OffchainElectionBogusScore (26)The claimed score does not match with the one computed from the data.
    OffchainElectionBogusElectionSize (27)The election size is invalid.
    CallNotAllowed (28)The call is not allowed at the given time due to restrictions of election period.
    IncorrectHistoryDepth (29)Incorrect previous history depth input provided.
    IncorrectSlashingSpans (30)Incorrect number of slashing spans provided.
    Session (9)
    InvalidProof (0)Invalid ownership proof.
    NoAssociatedValidatorId (1)No associated validator ID for account.
    DuplicatedKey (2)Registered duplicate key.
    NoKeys (3)No keys are associated with this account.
    Grandpa (11)
    PauseFailed (0)Attempt to signal GRANDPA pause when the authority set isn't live (either paused or already pending pause).
    ResumeFailed (1)Attempt to signal GRANDPA resume when the authority set isn't paused (either live or already pending resume).
    ChangePending (2)Attempt to signal GRANDPA change with one already pending.
    TooSoon (3)Cannot signal forced change so soon after last.
    InvalidKeyOwnershipProof (4)A key ownership proof provided as part of an equivocation report is invalid.
    InvalidEquivocationProof (5)An equivocation proof provided as part of an equivocation report is invalid.
    DuplicateOffenceReport (6)A given equivocation report is valid but already previously reported.
    ImOnline (12)
    InvalidKey (0)Non existent public key.
    DuplicatedHeartbeat (1)Duplicated heartbeat.
    Democracy (14)
    ValueLow (0)Value too low
    ProposalMissing (1)Proposal does not exist
    BadIndex (2)Unknown index
    AlreadyCanceled (3)Cannot cancel the same proposal twice
    DuplicateProposal (4)Proposal already made
    ProposalBlacklisted (5)Proposal still blacklisted
    NotSimpleMajority (6)Next external proposal not simple majority
    InvalidHash (7)Invalid hash
    NoProposal (8)No external proposal
    AlreadyVetoed (9)Identity may not veto a proposal twice
    NotDelegated (10)Not delegated
    DuplicatePreimage (11)Preimage already noted
    NotImminent (12)Not imminent
    TooEarly (13)Too early
    Imminent (14)Imminent
    PreimageMissing (15)Preimage not found
    ReferendumInvalid (16)Vote given for invalid referendum
    PreimageInvalid (17)Invalid preimage
    NoneWaiting (18)No proposals waiting
    NotLocked (19)The target account does not have a lock.
    NotExpired (20)The lock on the account to be unlocked has not yet expired.
    NotVoter (21)The given account did not vote on the referendum.
    NoPermission (22)The actor has no permission to conduct the action.
    AlreadyDelegating (23)The account is already delegating.
    Overflow (24)An unexpected integer overflow occurred.
    Underflow (25)An unexpected integer underflow occurred.
    InsufficientFunds (26)Too high a balance was provided that the account cannot afford.
    NotDelegating (27)The account is not currently delegating.
    VotesExist (28)The account currently has votes attached to it and the operation cannot succeed until these are removed, either through unvote or reap_vote.
    InstantNotAllowed (29)The instant referendum origin is currently disallowed.
    Nonsense (30)Delegation to oneself makes no sense.
    WrongUpperBound (31)Invalid upper bound.
    MaxVotesReached (32)Maximum number of votes reached.
    InvalidWitness (33)The provided witness data is wrong.
    TooManyProposals (34)Maximum number of proposals reached.
    Council (15)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    TechnicalCommittee (16)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    ElectionsPhragmen (17)
    UnableToVote (0)Cannot vote when no candidates or members exist.
    NoVotes (1)Must vote for at least one candidate.
    TooManyVotes (2)Cannot vote more than candidates.
    MaximumVotesExceeded (3)Cannot vote more than maximum allowed.
    LowBalance (4)Cannot vote with stake less than minimum balance.
    UnableToPayBond (5)Voter can not pay voting bond.
    MustBeVoter (6)Must be a voter.
    ReportSelf (7)Cannot report self.
    DuplicatedCandidate (8)Duplicated candidate submission.
    MemberSubmit (9)Member cannot re-submit candidacy.
    RunnerSubmit (10)Runner cannot re-submit candidacy.
    InsufficientCandidateFunds (11)Candidate does not have enough funds.
    NotMember (12)Not a member.
    InvalidCandidateCount (13)The provided count of number of candidates is incorrect.
    InvalidVoteCount (14)The provided count of number of votes is incorrect.
    InvalidRenouncing (15)The renouncing origin presented a wrong Renouncing parameter.
    InvalidReplacement (16)Prediction regarding replacement after member removal is wrong.
    Treasury (19)
    InsufficientProposersBalance (0)Proposer's balance is too low.
    InvalidIndex (1)No proposal or bounty at that index.
    ReasonTooBig (2)The reason given is just too big.
    AlreadyKnown (3)The tip was already found/started.
    UnknownTip (4)The tip hash is unknown.
    NotFinder (5)The account attempting to retract the tip is not the finder of the tip.
    StillOpen (6)The tip cannot be claimed/closed because there are not enough tippers yet.
    Premature (7)The tip cannot be claimed/closed because it's still in the countdown period.
    UnexpectedStatus (8)The bounty status is unexpected.
    RequireCurator (9)Require bounty curator.
    InvalidValue (10)Invalid bounty value.
    InvalidFee (11)Invalid bounty fee.
    PendingPayout (12)A bounty payout is pending. To cancel the bounty, you must unassign and slash the curator.
    Claims (24)
    InvalidEthereumSignature (0)Invalid Ethereum signature.
    SignerHasNoClaim (1)Ethereum address has no claim.
    SenderHasNoClaim (2)Account ID sending tx has no claim.
    PotUnderflow (3)There's not enough in the pot to pay out some unvested amount. Generally implies a logic error.
    InvalidStatement (4)A needed statement was not included.
    VestedBalanceExists (5)The account already has a vested balance.
    Vesting (25)
    NotVesting (0)The account given is not vesting.
    ExistingVestingSchedule (1)An existing vesting schedule already exists for this account that cannot be clobbered.
    AmountLow (2)Amount being transferred is too low to create a vesting schedule.
    Identity (28)
    TooManySubAccounts (0)Too many subs-accounts.
    NotFound (1)Account isn't found.
    NotNamed (2)Account isn't named.
    EmptyIndex (3)Empty index.
    FeeChanged (4)Fee is changed.
    NoIdentity (5)No identity found.
    StickyJudgement (6)Sticky judgement.
    JudgementGiven (7)Judgement given.
    InvalidJudgement (8)Invalid judgement.
    InvalidIndex (9)The index is invalid.
    InvalidTarget (10)The target is invalid.
    TooManyFields (11)Too many additional fields.
    TooManyRegistrars (12)Maximum amount of registrars reached. Cannot add any more.
    AlreadyClaimed (13)Account ID is already named.
    NotSub (14)Sender is not a sub-account.
    NotOwned (15)Sub-account isn't owned by sender.
    Proxy (29)
    TooMany (0)There are too many proxies registered or too many announcements pending.
    NotFound (1)Proxy registration not found.
    NotProxy (2)Sender is not a proxy of the account to be proxied.
    Unproxyable (3)A call which is incompatible with the proxy type's filter was attempted.
    Duplicate (4)Account is already a proxy.
    NoPermission (5)Call may not be made by proxy because it may escalate its privileges.
    Unannounced (6)Announcement, if made at all, was made too recently.
    Multisig (30)
    MinimumThreshold (0)Threshold must be 2 or greater.
    AlreadyApproved (1)Call is already approved by this signatory.
    NoApprovalsNeeded (2)Call doesn't need any (more) approvals.
    TooFewSignatories (3)There are too few signatories in the list.
    TooManySignatories (4)There are too many signatories in the list.
    SignatoriesOutOfOrder (5)The signatories were provided out of order; they should be ordered.
    SenderInSignatories (6)The sender was contained in the other signatories; it shouldn't be.
    NotFound (7)Multisig operation not found when attempting to cancel.
    NotOwner (8)Only the account that originally created the multisig is able to cancel it.
    NoTimepoint (9)No timepoint was given, yet the multisig operation is already underway.
    WrongTimepoint (10)A different timepoint was given to the multisig operation that is underway.
    UnexpectedTimepoint (11)A timepoint was given, yet no multisig operation is underway.
    WeightTooLow (12)The maximum weight information provided was too low.
    AlreadyStored (13)The data to be stored is already stored.
    - + \ No newline at end of file diff --git a/docs/maintain-guides-async-backing.html b/docs/maintain-guides-async-backing.html index d796dfcc4628..a463067237f0 100644 --- a/docs/maintain-guides-async-backing.html +++ b/docs/maintain-guides-async-backing.html @@ -19,7 +19,7 @@ - + @@ -92,7 +92,7 @@ Relay block number is kept track of by each parachain in pallet-parachain-system with the storage value LastRelayChainBlockNumber. This value can be obtained and used wherever timing based on block number is needed.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-avoid-slashing.html b/docs/maintain-guides-avoid-slashing.html index ce5bf7e86a64..bca8e99d9302 100644 --- a/docs/maintain-guides-avoid-slashing.html +++ b/docs/maintain-guides-avoid-slashing.html @@ -19,7 +19,7 @@ - + @@ -68,7 +68,7 @@ obtain pristine binaries or source code and to ensure the security of their node:

    1. Always download either source files or binaries from the official Parity repository
    2. Verify the hash of downloaded files.
    3. Use the W3F secure validator setup or adhere to its principles
    4. Ensure essential security items are checked, use a firewall, manage user access, use SSH certificates
    5. Avoid using your server as a general-purpose system. Hosting a validator on your workstation or one that hosts other services increases the risk of maleficence.

    Examples

    NetworkEraEvent TypeDetailsAction Taken
    Polkadot774Small EquivocationThe validator migrated servers and cloned the keystore folder. The on-chain event can be viewed here.The validator did not submit a request for the slash to be canceled.
    Kusama3329Small EquivocationThe validator operated a test machine with cloned keys; the test machine was online at the same time as the primary, which resulted in a slash. Details can be found here.The validator requested a cancellation of the slash, but the council declined.
    Kusama3995Small EquivocationThe validator noticed several errors, after which the client crashed, and a slash was applied. The validator recorded all events and opened GitHub issues to allow for technical opinions to be shared. Details can be found here.The validator requested to cancel the slash. The council approved the request as they believed the error was not operator related.
    Kusama4543Medium UnresponsivenessA large amount of disputes flooded the network resulting in an application fault. The fault caused the client software to hang and as a result ~197 unique validators become unresponsive. Further details can be found here.The pending slash was cancelled and with runtime 9350 all lost nominations were restored. The application bug was addressed with client version 0.9.36
    - + \ No newline at end of file diff --git a/docs/maintain-guides-democracy.html b/docs/maintain-guides-democracy.html index 5511e11e9898..71b5334315de 100644 --- a/docs/maintain-guides-democracy.html +++ b/docs/maintain-guides-democracy.html @@ -19,7 +19,7 @@ - + @@ -162,7 +162,7 @@ a decimal integer. The bitfield stores both the conviction and aye/nay boolean, where the boolean is represented using the MSB of the byte. This would mean that the grouping of the 7 remaining bits is used to store the conviction.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-chill.html b/docs/maintain-guides-how-to-chill.html index a24b92d0fbda..c188d3cbac8a 100644 --- a/docs/maintain-guides-how-to-chill.html +++ b/docs/maintain-guides-how-to-chill.html @@ -19,7 +19,7 @@ - + @@ -79,7 +79,7 @@ Polkadot is set to None eliminating the upper bound on the number of nominators on the network. Due to this, the chillOther extrinsic on Polkadot network has no effect as the chill threshold will never be met.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-join-council.html b/docs/maintain-guides-how-to-join-council.html index 00ed6cd86a83..30a9d06f2740 100644 --- a/docs/maintain-guides-how-to-join-council.html +++ b/docs/maintain-guides-how-to-join-council.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,7 @@ the row "Members".

    council members list

    Now you are able to participate on the council by making motions or voting proposals. To join in on the active discussions, join the Polkadot Direction channel.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-monitor-your-node.html b/docs/maintain-guides-how-to-monitor-your-node.html index b52be6726087..120a8f9706c1 100644 --- a/docs/maintain-guides-how-to-monitor-your-node.html +++ b/docs/maintain-guides-how-to-monitor-your-node.html @@ -19,7 +19,7 @@ - + @@ -83,7 +83,7 @@ here. There are other interesting alerts you may find useful here.

    groups:
    - name: alert_rules
    rules:
    - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
    severity: critical
    annotations:
    summary: "Instance [{{ $labels.instance }}] down"
    description: "[{{ $labels.instance }}] of job [{{ $labels.job }}] has been down for more than 1 minute."

    Change the ownership of this file to prometheus instead of root by running:

    sudo chown prometheus:prometheus rules.yml

    To check the rules defined in the "rules.yml" is syntactically correct, run the following command:

    sudo -u prometheus promtool check rules rules.yml

    Finally, restart everything by running:

    sudo systemctl restart prometheus && sudo systemctl restart alertmanager

    Now if one of your target instances down, you will receive an alert on the AlertManager and Gmail like below.

    grafana-am-6

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-nominate-kusama.html b/docs/maintain-guides-how-to-nominate-kusama.html index e530217b6aeb..3c4a44f5066a 100644 --- a/docs/maintain-guides-how-to-nominate-kusama.html +++ b/docs/maintain-guides-how-to-nominate-kusama.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@ Polkascan. Also, you can verify the bonding state under the Staking page on the Polkadot-JS Apps Dashboard.

    Step 3. Nominate a validator

    To nominate a validator, you can execute the following command:

    polkadot-js-api --seed "MNEMONIC_PHRASE" tx.staking.nominate '["VALIDATOR_ADDRESS"]' --ws WS_ENDPOINT
    polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" tx.staking.nominate '["CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8","E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb"]' --ws wss://kusama-rpc.polkadot.io/

    After a few seconds, you should see the hash of the transaction and if you would like to verify the nomination status, you can check that on the Polkadot-JS UI as well.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-nominate-polkadot.html b/docs/maintain-guides-how-to-nominate-polkadot.html index d5ebb4264acb..aed34a7c16bb 100644 --- a/docs/maintain-guides-how-to-nominate-polkadot.html +++ b/docs/maintain-guides-how-to-nominate-polkadot.html @@ -19,7 +19,7 @@ - + @@ -67,7 +67,7 @@ Polkascan. Also, you can verify the bonding state under the Staking page on the Polkadot-JS Apps Dashboard.

    Step 3. Nominate a validator

    To nominate a validator, you can execute the following command:

    polkadot-js-api --seed "MNEMONIC_PHRASE" tx.staking.nominate '["VALIDATOR_ADDRESS"]' --ws WS_ENDPOINT
    polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" tx.staking.nominate '["CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8","E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb"]' --ws wss://rpc.polkadot.io

    After a few seconds, you should see the hash of the transaction, and if you would like to verify the nomination status, you can check that on the Polkadot-JS UI as well.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-stop-validating.html b/docs/maintain-guides-how-to-stop-validating.html index e250f737bf8a..c6e7a9fb4f13 100644 --- a/docs/maintain-guides-how-to-stop-validating.html +++ b/docs/maintain-guides-how-to-stop-validating.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,7 @@ transfer your tokens.

    See Unbonding and Rebonding for more details.

    Unbond your tokens

    Unbonding your tokens can be done through the Network > Staking > Account actions page in PolkadotJS Apps by clicking the corresponding stash account dropdown and selecting "Unbond funds". This can also be done through the staking.unbond() extrinsic with the staking proxy account.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-systemd.html b/docs/maintain-guides-how-to-systemd.html index d7646bb74d77..6365ef2d34a0 100644 --- a/docs/maintain-guides-how-to-systemd.html +++ b/docs/maintain-guides-how-to-systemd.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ not recognize votes that didn't make it to disk, and will then cast conflicting votes. Delaying the restart will allow the network to progress past potentially conflicting votes, at which point other nodes will not accept them.

    To enable this to autostart on bootup run:

    systemctl enable polkadot-validator.service

    Start it manually with:

    systemctl start polkadot-validator.service

    You can check that it's working with:

    systemctl status polkadot-validator.service

    You can tail the logs with journalctl like so:

    journalctl -f -u polkadot-validator
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-upgrade.html b/docs/maintain-guides-how-to-upgrade.html index 7eb974c4cba5..9fb75ef45b9e 100644 --- a/docs/maintain-guides-how-to-upgrade.html +++ b/docs/maintain-guides-how-to-upgrade.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,7 @@ Validator A.
  • Take note of the Session that this extrinsic was executed in.
  • Again, it is imperative that Validator B is kept running until the current session finishes and two further full sessions have elapsed.

    Once this time has elapsed, Validator A will take over. You can safely stop Validator B.

    NOTE: To verify that the Session has changed, make sure that a block in the new Session is finalized. You should see log messages like the ones below to confirm the change:

    2019-10-28 21:44:13 Applying authority set change scheduled at block #450092
    2019-10-28 21:44:13 Applying GRANDPA set change to new set with 20 authorities
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-kusama.html b/docs/maintain-guides-how-to-validate-kusama.html index 36954fbac693..ddeeea158237 100644 --- a/docs/maintain-guides-how-to-validate-kusama.html +++ b/docs/maintain-guides-how-to-validate-kusama.html @@ -19,7 +19,7 @@ - + @@ -68,7 +68,7 @@ validator payout document.

    Run a Kusama Validator

    Running a validator on the Kusama network is identical to running a Polkadot validator. Check out the Polkadot guide on how to setup a validator.

    Make sure to adjust the Polkadot guide to run a Kusama network validator (the instructions will also be available in the Polkadot Validator guide):

    • When starting the node pass --chain=kusama CLI flag
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-polkadot.html b/docs/maintain-guides-how-to-validate-polkadot.html index bdd6c02ad828..2ace3abe6818 100644 --- a/docs/maintain-guides-how-to-validate-polkadot.html +++ b/docs/maintain-guides-how-to-validate-polkadot.html @@ -19,7 +19,7 @@ - + @@ -270,7 +270,7 @@ instance, Digital Ocean lists "Mining of Cryptocurrencies" under the Network Abuse section of their Acceptable Use Policy and requires explicit permission to do so. This may extend to other cryptocurrency activity.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-vote-councillor.html b/docs/maintain-guides-how-to-vote-councillor.html index a9fe73217a90..45ba2158d321 100644 --- a/docs/maintain-guides-how-to-vote-councillor.html +++ b/docs/maintain-guides-how-to-vote-councillor.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,7 @@ Polkadot-JS Apps Dashboard.

    Under the "Council overview" tab, click on "Vote".

    polkadotjs_removeVoter

    Issue the "Unvote all" option.

    When the transaction is included in a block you should have your reserved tokens made liquid again and your vote will no longer be counting for any councillors in the elections starting in the next term.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-secure-validator.html b/docs/maintain-guides-secure-validator.html index dedec18f1189..97391c4933fa 100644 --- a/docs/maintain-guides-secure-validator.html +++ b/docs/maintain-guides-secure-validator.html @@ -19,7 +19,7 @@ - + @@ -69,7 +69,7 @@ hardware. The provisioning of the validator machine should be automated and defined in code. This code should be kept in private version control, reviewed, audited, and tested.

  • Session keys should be generated and provided in a secure way.

  • Polkadot should be started at boot and restarted if stopped for any reason (supervisor process).

  • Polkadot should run as a non-root user.

  • Monitoring

    • There should be an on-call rotation for managing the alerts.

    • There should be a clear protocol with actions to perform for each level of each alert and an escalation policy.

    Resources

    - + \ No newline at end of file diff --git a/docs/maintain-guides-society-kusama.html b/docs/maintain-guides-society-kusama.html index 64859d484427..3abb58b98a07 100644 --- a/docs/maintain-guides-society-kusama.html +++ b/docs/maintain-guides-society-kusama.html @@ -19,7 +19,7 @@ - + @@ -93,7 +93,7 @@ extrinsic's parameters go to Element 1 ("proposal") -> "value" -> "params" -> Element 2 ("rules") and copy the value corresponding to the key "value". You can use a hex-to-UTF8 converter to then display the text. Note that the text is formatted with Markdown.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-community.html b/docs/maintain-guides-validator-community.html index 7d0f7febb016..e27eafa9ac36 100644 --- a/docs/maintain-guides-validator-community.html +++ b/docs/maintain-guides-validator-community.html @@ -19,7 +19,7 @@ - + @@ -163,7 +163,7 @@ monitoring, observability services, staking dashboards, wallets, command-line utilities, or porting implementations to other languages. Additionally, this may also be eligible to be funded via a Web3 Foundation Grant.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-payout.html b/docs/maintain-guides-validator-payout.html index 0405d69f27a1..6a7d2899f2e1 100644 --- a/docs/maintain-guides-validator-payout.html +++ b/docs/maintain-guides-validator-payout.html @@ -19,7 +19,7 @@ - + @@ -109,7 +109,7 @@ brackets ([]) next to each validator. Note that since the validator payment is public knowledge, having a low or non-existent validator payment may attract more stake from nominators, since they know they will receive a larger reward.

    Validator Set Size (v): 4
    Validator 1 Stake (v1) [20% commission]: 18 DOT (9 validator, 9 nominator)
    Validator 2 Stake (v2) [40% commission]: 9 DOT (3 validator, 6 nominator)
    Validator 3 Stake (v3) [10% commission]: 8 DOT (4 validator, 4 nominator)
    Validator 4 Stake (v4) [ 0% commission]: 6 DOT (1 validator, 5 nominator)
    Payout (p): 8 DOT

    Payout for each validator (v1 - v4):
    p / v = 8 / 4 = 2 DOT

    v1:
    (0.2 * 2) = 0.4 DOT -> validator payment
    (2 - 0.4) = 1.6 -> shared between all stake
    (9 / 18) * 1.6 = 0.8 -> validator stake share
    (9 / 18) * 1.6 = 0.8 -> nominator stake share
    v1 validator total reward: 0.4 + 0.8 = 1.2 DOT
    v1 nominator reward: 0.8 DOT

    v2:
    (0.4 * 2) = 0.8 DOT -> validator payment
    (2 - 0.8) = 1.2 -> shared between all stake
    (3 / 9) * 1.2 = 0.4 -> validator stake share
    (6 / 9) * 1.2 = 0.8 -> nominator stake share
    v2 validator total reward: 0.8 + 0.4 = 1.2 DOT
    v2 nominator reward: 0.8 DOT

    v3:
    (0.1 * 2) = 0.2 DOT -> validator payment
    (2 - 0.2) = 1.8 -> shared between all stake
    (4 / 8) * 1.8 = 0.9 -> validator stake share
    (4 / 8) * 1.8 = 0.9 -> nominator stake share
    v3 validator total reward: 0.2 + 0.9 DOT = 1.1 DOT
    v3 nominator reward: 0.9 DOT

    v4:
    (0 * 2) = 0 DOT -> validator payment
    (2 - 0) = 2.0 -> shared between all stake
    (1 / 6) * 2 = 0.33 -> validator stake share
    (5 / 6) * 2 = 1.67 -> nominator stake share
    v4 validator total reward: 0 + 0.33 DOT = 0.33 DOT
    v4 nominator reward: 1.67 DOT
    - + \ No newline at end of file diff --git a/docs/maintain-index.html b/docs/maintain-index.html index 6eba20331c0c..aa4f8b137241 100644 --- a/docs/maintain-index.html +++ b/docs/maintain-index.html @@ -19,7 +19,7 @@ - + @@ -45,7 +45,7 @@ participate in governance.
  • How to join the Council - Step by step guide for running for the Council.
  • How to vote for a Councillor - Step by step guide for voting for your favorite councillors.
  • - + \ No newline at end of file diff --git a/docs/maintain-networks.html b/docs/maintain-networks.html index 9bae5515f4ad..4d0f960f59b4 100644 --- a/docs/maintain-networks.html +++ b/docs/maintain-networks.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,7 @@ the public Telemetry service.

    You can verify that your node is connected by navigating to the correct network on the dashboard and finding the name of your node.

    There is a built-in search function on the nodes page. Simply start typing keystrokes in the main window to make it available.

    - + \ No newline at end of file diff --git a/docs/maintain-polkadot-parameters.html b/docs/maintain-polkadot-parameters.html index 7fda14c32bd2..76d17c227400 100644 --- a/docs/maintain-polkadot-parameters.html +++ b/docs/maintain-polkadot-parameters.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,7 @@ 16.

    PolkadotTimeSlotsDescription
    Term duration1 Day14_400The time for which a validator is in the set after being elected. Note, this duration can be shortened in the case that a validator misbehaves.
    Nomination period1 Day14_400How often a new validator set is elected according to Phragmén's method.
    Bonding duration28 days403_200How long until your funds will be transferrable after unbonding. Note that the bonding duration is defined in eras, not directly by slots.
    Slash defer duration28 days403_200Prevents overslashing and validators "escaping" and getting their nominators slashed with no repercussions to themselves. Note that the bonding duration is defined in eras, not directly by slots.

    Parachains

    Crowdloans and AuctionsTimeSlotsDescription
    Auction duration7 days100_800The total duration of the slot auction, subject to the candle auction mechanism.
    Opening period2 days28_800The opening period of the slot auction.
    Ending period5 days72_000The ending period of the slot auction.
    Parachain SlotTimeSlotsDescription
    Lease period12 weeks1_209_600The length of one lease period in a parachain slot.
    Total slot duration2 years10_512_000The maximum duration a parachain can lease by winning a slot auction (8 lease periods).

    Treasury

    TreasuryTimeSlotsDescription
    Periods between spends24 days345_600When the treasury can spend again after spending previously.

    Burn percentage is currently 1.00%.

    Precision

    DOT have 10 decimals of precision. In other words, 10 ** 10 (10_000_000_000 or ten billion) Plancks make up a DOT.

    The denomination of DOT was changed from 12 decimals of precision at block #1,248,328 in an event known as Denomination Day. See Redenomination for details.

    - + \ No newline at end of file diff --git a/docs/maintain-rpc.html b/docs/maintain-rpc.html index 95ae5fa150b7..c2e23f3b674c 100644 --- a/docs/maintain-rpc.html +++ b/docs/maintain-rpc.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss://, and if you're using the 443 port, append :443 like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/maintain-sync.html b/docs/maintain-sync.html index 66f5df3fb0e0..bf9567637ed2 100644 --- a/docs/maintain-sync.html +++ b/docs/maintain-sync.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,7 @@ on localhost by default. If you would like to connect to your node's services (rpc, and prometheus) you need to ensure that you run you node with the --rpc-external, and --prometheus-external commands.

    docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external
    - + \ No newline at end of file diff --git a/docs/maintain-wss.html b/docs/maintain-wss.html index 4ab71af59131..640fa200a87f 100644 --- a/docs/maintain-wss.html +++ b/docs/maintain-wss.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss:// and if you're using the 443 port, append :443, like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/metadata.html b/docs/metadata.html index f7a2ac8a57d7..e6296acf1af9 100644 --- a/docs/metadata.html +++ b/docs/metadata.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,7 @@ The dropdown below allows you to update the chain selection to visualize. You can search all sub-categories using the provided search field. The information is categorized by the chains Pallets, RPC and Runtime information.

    - + \ No newline at end of file diff --git a/docs/multisig-apps.html b/docs/multisig-apps.html index 64c4c3d2502c..9da11ae7d079 100644 --- a/docs/multisig-apps.html +++ b/docs/multisig-apps.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,7 @@ adding and removing signatories or adjusting the threshold is now possible without creating new multisigs and Multix provides an intuitive interface to work with pure proxies.

    The pure proxy setup used by MultiX can be seen on the pure proxy page.

    - + \ No newline at end of file diff --git a/docs/parachains-apps.html b/docs/parachains-apps.html index 355d9c31470b..a57119ab293c 100644 --- a/docs/parachains-apps.html +++ b/docs/parachains-apps.html @@ -19,7 +19,7 @@ - + @@ -98,7 +98,7 @@ tokens (LST) “vTokens”, as well as remote exchange, and swapping of vTokens from any chain. The DApp aims to simplify the cross-chain experience by providing a seamless interface for users to interact with vTokens across different chains natively.

    - + \ No newline at end of file diff --git a/docs/polkadot-direction.html b/docs/polkadot-direction.html index bea870afe9af..c038523809cd 100644 --- a/docs/polkadot-direction.html +++ b/docs/polkadot-direction.html @@ -19,7 +19,7 @@ - + @@ -140,7 +140,7 @@ decentralizing the network is ensuring experts on which the maintenance of the system relies upon are incentivized and recruited over time by the Polkadot network and not by organizations within the Polkadot ecosystem. - + \ No newline at end of file diff --git a/docs/polkadot-v1.html b/docs/polkadot-v1.html index e2390ca78455..a4d214421922 100644 --- a/docs/polkadot-v1.html +++ b/docs/polkadot-v1.html @@ -19,7 +19,7 @@ - + @@ -109,7 +109,7 @@ could become.

    Polkadot is perfecting its implementation through RFCs to continue being a decentralized, secure, ubiquitous computing engine to power the next generation of Web3 applications.

    - + \ No newline at end of file diff --git a/docs/polkadot-vault.html b/docs/polkadot-vault.html index 2a8c578e399b..e3232de30bd4 100644 --- a/docs/polkadot-vault.html +++ b/docs/polkadot-vault.html @@ -19,7 +19,7 @@ - + @@ -85,7 +85,7 @@ this article for detailed instructions. If you choose this approach, you should trust the provider you choose.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Polkadot Vault.

    - + \ No newline at end of file diff --git a/docs/polkadot-vision-index.html b/docs/polkadot-vision-index.html index e77199dfc627..e0d0ccee3ce3 100644 --- a/docs/polkadot-vision-index.html +++ b/docs/polkadot-vision-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/polkadotjs-ui.html b/docs/polkadotjs-ui.html index 975f13e34a49..d932118917fd 100644 --- a/docs/polkadotjs-ui.html +++ b/docs/polkadotjs-ui.html @@ -19,7 +19,7 @@ - + @@ -73,7 +73,7 @@ nomination pool settings (nomination and roles) and use non-transfer proxies, destroy assets, and much more.

    Beginner's Guide to Polkadot-JS

    - + \ No newline at end of file diff --git a/docs/polkadotjs.html b/docs/polkadotjs.html index 903982351b62..1a418919f059 100644 --- a/docs/polkadotjs.html +++ b/docs/polkadotjs.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@ of spam prevention, whereas signed transactions are issued by the originator account of a transaction which contains a signature of that account, which will be subject to a fee to include it on the chain.

    - + \ No newline at end of file diff --git a/docs/programmes-index.html b/docs/programmes-index.html index 50842b7706fc..a99276a105ce 100644 --- a/docs/programmes-index.html +++ b/docs/programmes-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/research.html b/docs/research.html index b8210a784b99..136515af2aef 100644 --- a/docs/research.html +++ b/docs/research.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,7 @@ – Gives an outline of Nominated Proof of Stake in Polkadot. Author: Alfonzo Cevallos
  • Messaging Protocol Workshop Outcomes – An initiative to design and implement a privacy-preserving communication system for decentralized applications.
  • - + \ No newline at end of file diff --git a/docs/staking-apps.html b/docs/staking-apps.html index bdde4b36537d..de4bad013f14 100644 --- a/docs/staking-apps.html +++ b/docs/staking-apps.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,7 @@ and stake on multiple networks in the Polkadot, Kusama and Polkadot SDK (Substrate) ecosystems.

    The Web Dashboard features an Earning tab which allows users to stake DOT easily via native nomination pools, as well as in liquid staking and lending protocols, without having to manage multiple applications with different interfaces and experiences.

    - + \ No newline at end of file diff --git a/docs/staking-dashboard.html b/docs/staking-dashboard.html index 3994ce9e4b79..743f5292d106 100644 --- a/docs/staking-dashboard.html +++ b/docs/staking-dashboard.html @@ -19,7 +19,7 @@ - + @@ -156,7 +156,7 @@ feature request. We take your feedback seriously, do not hesitate to contact us.

    Network

    Under Network, you can connect to either Polkadot, Kusama, or Westend through public RPC nodes or light clients for a true Web3 experience. For more information about light clients, see this page.

    - + \ No newline at end of file diff --git a/docs/start-building.html b/docs/start-building.html index 198e37886d40..cebecfa1d11c 100644 --- a/docs/start-building.html +++ b/docs/start-building.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ and the original Polkadot Forum post.

    Polkadot SDK

    info

    For more information about building on Polkadot, see the Builder's Guide.

    The Polkadot Software Development Kit (SDK) includes all the tools needed to build on the Polkadot ecosystem. The main repositories include:

    The programming language used for development is Rust.

    - + \ No newline at end of file diff --git a/docs/stay-safe-index.html b/docs/stay-safe-index.html index 3394280c8565..7d422cbcf3dd 100644 --- a/docs/stay-safe-index.html +++ b/docs/stay-safe-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/thousand-contributors.html b/docs/thousand-contributors.html index 3b3cc47de77c..c4648eae9c33 100644 --- a/docs/thousand-contributors.html +++ b/docs/thousand-contributors.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ the account shared with us.

    Submission reviews

    The review process follows the present pipeline in the 1KC public GitHub project.

    Learn more about the program and its components on the official 1KC repository

    - + \ No newline at end of file diff --git a/docs/thousand-validators.html b/docs/thousand-validators.html index c66350054316..d941b581f3ce 100644 --- a/docs/thousand-validators.html +++ b/docs/thousand-validators.html @@ -19,7 +19,7 @@ - + @@ -92,7 +92,7 @@ things time to resolve; if they don't, leave a message in the dedicated matrix room or open an issue on GitHub.
  • The 1000 validators website is not up to date? See these resources for more up-to-date information.
  • Resources

    To extract and display the 1KV Program scores there are various tools listed below.

    ResourceGithub sourceInfo
    Main 1KV sitegithubMain site and 1KV backend.
    SubVT telegram bot for polkadot and kusamagithubTelegram bot with overviews and alerts for various polkadot and kusama related events, including 1KV events.
    SubVT ios and android appgithubSubVT app version for mobile phones.
    Validator earnings overviewgithubOverview of validators' earnings.
    Math Crypto's Insightsgithub1KV-oriented scoring overview of Kusama and Polkadot.
    One-T for polkadot and kusamagithubA performance report bot for the Polkadot and Kusama network with special focus on the 1KV programme.
    One-T parachains overviewgithubOne-T's parachain overview.
    Metaspan's 1KV overviewgithubOverview of 1KV programme, including the newly introduced endpoints, see here for available endpoints.
    Decentradot's 1KV overviewgithubOverview of the 1KV programme, including the newly introduced endpoints.
    Hirish 1KV overviewgithub?Overview of the 1KV Programme.
    - + \ No newline at end of file diff --git a/docs/transaction-attacks.html b/docs/transaction-attacks.html index bb3261efa105..2d761f460245 100644 --- a/docs/transaction-attacks.html +++ b/docs/transaction-attacks.html @@ -19,7 +19,7 @@ - + @@ -66,7 +66,7 @@ transfer will fail).

    Defense against Attacks

    danger

    If you can't verify the transaction or you suspect you are signing something different than what you intended, don't sign it!

    To avoid being victim of an attack:

    • Use only trusted extensions, sites and software in general.
    • Use cold storage options (Ledger, Signer) and verify on them. Trust what these devices tell you over what is shown in the app or the browser extension.
    • Update Signer metadata only from trusted sources (or do it yourself).
    • Accept metadata updates for the extension only from trusted apps.
    - + \ No newline at end of file diff --git a/docs/wallets-and-extensions.html b/docs/wallets-and-extensions.html index 33677b0874eb..995337f9fa1d 100644 --- a/docs/wallets-and-extensions.html +++ b/docs/wallets-and-extensions.html @@ -19,7 +19,7 @@ - + @@ -93,7 +93,7 @@ your accounts on over 150+ Substrate and EVM networks. NFT Management, ledger Support, fiat On-ramp, portfolio tracking. Talisman received funding from Polkadot Treasury [1].

    - + \ No newline at end of file diff --git a/docs/wallets-index.html b/docs/wallets-index.html index 82bd99e0a58c..c5d43f48f800 100644 --- a/docs/wallets-index.html +++ b/docs/wallets-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/web3-and-polkadot.html b/docs/web3-and-polkadot.html index 31dafc84091d..263d1bbf9772 100644 --- a/docs/web3-and-polkadot.html +++ b/docs/web3-and-polkadot.html @@ -19,7 +19,7 @@ - + @@ -153,7 +153,7 @@ all blockchains attached to it. For more information, see the Polkadot 1.0 page and the section about XCM and Accords in Polkadot Direction page.

    - + \ No newline at end of file diff --git a/index.html b/index.html index ce6989b578a1..ed83eaddc1cb 100644 --- a/index.html +++ b/index.html @@ -19,13 +19,13 @@ - +

    Learn about Polkadot’s canary network Kusama

    Kusama is Polkadot’s “canary network”, a scalable, multi-chain network for radical innovation and early stage Polkadot deployments. For developers, Kusama is a proving ground for all things Polkadot I.e runtime upgrades, on-chain governance, parachains, parathreads, etc.

    language

    Help improve this wiki

    This wiki was started by and is maintained by Web3 Foundation. It is an open-source-ish project and aims to be the most extensive resource of knowledge on Polkadot and the Polkadot ecosystem.

    - + \ No newline at end of file diff --git a/search.html b/search.html index 792a95aa86a7..4c2a5c9287f2 100644 --- a/search.html +++ b/search.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file