From 820022d6217fec9dad462dfd73981a841413ff5d Mon Sep 17 00:00:00 2001 From: Polkadot Wiki CI Date: Tue, 17 Dec 2024 00:17:44 +0000 Subject: [PATCH] Deploy website - based on 9b2838b3367f7f7cae2560d2a8b6828e252950c9 --- 404.html | 4 ++-- assets/js/0eeb7a68.1fb15be1.js | 1 + assets/js/0eeb7a68.638e1dbe.js | 1 - assets/js/3bd77df4.009a7aab.js | 1 + assets/js/3bd77df4.ca3db21e.js | 1 - assets/js/ccc1222e.0bb09ea0.js | 1 + assets/js/ccc1222e.dbe83f51.js | 1 - .../js/{main.ef943a05.js => main.1cbb1a84.js} | 4 ++-- ...CENSE.txt => main.1cbb1a84.js.LICENSE.txt} | 0 ...n.9f6a19bf.js => runtime~main.3a01401a.js} | 2 +- docs/alpha-program.html | 4 ++-- docs/ambassadors.html | 4 ++-- docs/apps-index.html | 4 ++-- docs/bug-bounty.html | 4 ++-- docs/build-archive-index.html | 4 ++-- docs/build-client-index.html | 4 ++-- docs/build-client-side.html | 4 ++-- docs/build-dapp.html | 4 ++-- docs/build-data.html | 4 ++-- docs/build-guide.html | 4 ++-- docs/build-guides-coretime-start.html | 4 ++-- docs/build-guides-coretime-troubleshoot.html | 4 ++-- docs/build-guides-install-deps.html | 4 ++-- docs/build-guides-template-basic.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-overview.html | 4 ++-- docs/build-node-interaction.html | 4 ++-- docs/build-node-management.html | 4 ++-- docs/build-open-source.html | 20 +++++++++---------- 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/chain-state-values.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/decentralized-voices.html | 4 ++-- docs/dev-heroes.html | 4 ++-- docs/ecosystem-funds.html | 4 ++-- docs/explore-index.html | 4 ++-- docs/faq.html | 4 ++-- docs/funding.html | 4 ++-- docs/general-index.html | 4 ++-- docs/general/dune-analytics.html | 4 ++-- .../dune-analytics/acala-dashboards.html | 4 ++-- .../dune-analytics/assethub-dashboards.html | 4 ++-- .../dune-analytics/astar-dashboards.html | 4 ++-- .../dune-analytics/bifrost-dashboards.html | 4 ++-- .../dune-analytics/bridgehub-dashboards.html | 4 ++-- .../dune-analytics/centrifuge-dashboards.html | 4 ++-- .../collectives-dashboards.html | 4 ++-- .../dune-analytics/coretime-dashboards.html | 4 ++-- .../dune-analytics/energywebx-dashboards.html | 4 ++-- .../dune-analytics/frequency-dashboards.html | 4 ++-- .../dune-analytics/hydration-dashboards.html | 4 ++-- .../dune-analytics/interlay-dashboards.html | 4 ++-- .../dune-analytics/invarch-dashboards.html | 4 ++-- .../dune-analytics/litentry-dashboards.html | 4 ++-- .../dune-analytics/manta-dashboards.html | 4 ++-- .../dune-analytics/moonbeam-dashboards.html | 4 ++-- .../dune-analytics/neuroweb-dashboards.html | 4 ++-- .../dune-analytics/nodle-dashboards.html | 4 ++-- .../dune-analytics/parachain-dashboards.html | 4 ++-- .../dune-analytics/pendulum-dashboards.html | 4 ++-- .../dune-analytics/people-dashboards.html | 4 ++-- .../dune-analytics/phala-dashboards.html | 4 ++-- .../dune-analytics/polimec-dashboards.html | 4 ++-- .../dune-analytics/polkadex-dashboards.html | 4 ++-- .../polkadot-dashboards-governance.html | 4 ++-- .../polkadot-dashboards-network.html | 4 ++-- .../polkadot-dashboards-overview.html | 4 ++-- .../polkadot-dashboards-staking.html | 4 ++-- .../dune-analytics/polkadot-dashboards.html | 4 ++-- .../polkadot-dot-ordinals.html | 4 ++-- .../polkadot-governance-dashboard.html | 4 ++-- .../polkadot-opengov-referenda-home.html | 4 ++-- ...ot-opengov-referendum-voting-analysis.html | 4 ++-- ...dot-staking-dashboard-nomination-pool.html | 4 ++-- ...polkadot-staking-dashboard-nominators.html | 4 ++-- ...olkadot-staking-dashboard-pool-member.html | 4 ++-- ...polkadot-staking-dashboard-validators.html | 4 ++-- .../polkadot-staking-dashboard.html | 4 ++-- .../dune-analytics/snowbridge-dashboards.html | 4 ++-- .../dune-analytics/stellaswap-dashboards.html | 4 ++-- .../dune-analytics/unique-dashboards.html | 4 ++-- docs/general/dunesql-cheatsheet.html | 4 ++-- .../onboarding-status-and-key-dashboards.html | 4 ++-- docs/general/polkadot-ecosystem-overview.html | 4 ++-- docs/general/project-dashboards.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-coc.html | 4 ++-- docs/kusama-getting-started.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-balances.html | 4 ++-- docs/learn-account-multisig.html | 4 ++-- docs/learn-accounts.html | 4 ++-- docs/learn-advanced-index.html | 4 ++-- docs/learn-agile-coretime.html | 4 ++-- docs/learn-architecture.html | 4 ++-- docs/learn-archive.html | 4 ++-- docs/learn-asset-conversion-assethub.html | 4 ++-- docs/learn-assets-index.html | 4 ++-- docs/learn-assets.html | 4 ++-- docs/learn-async-backing.html | 4 ++-- docs/learn-basics-index.html | 4 ++-- docs/learn-bridges.html | 6 +++--- 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-cryptography.html | 4 ++-- docs/learn-dot-ksm-bridge.html | 4 ++-- docs/learn-elastic-scaling.html | 4 ++-- docs/learn-future-implementations-index.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-asset-conversion.html | 4 ++-- docs/learn-guides-assets-create.html | 4 ++-- docs/learn-guides-assets.html | 4 ++-- docs/learn-guides-bounties.html | 4 ++-- docs/learn-guides-bridges.html | 4 ++-- docs/learn-guides-claims.html | 4 ++-- docs/learn-guides-coretime-marketplaces.html | 4 ++-- docs/learn-guides-coretime-parachains.html | 4 ++-- docs/learn-guides-coretime-swap.html | 4 ++-- docs/learn-guides-dot-ksm-bridge.html | 14 ++++++------- docs/learn-guides-identity.html | 4 ++-- docs/learn-guides-ledger.html | 4 ++-- docs/learn-guides-nominator.html | 4 ++-- docs/learn-guides-polkadot-opengov.html | 4 ++-- docs/learn-guides-staking-pools.html | 4 ++-- docs/learn-guides-staking.html | 4 ++-- docs/learn-guides-test-opengov-proposals.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-jam-chain.html | 4 ++-- docs/learn-jam-faq.html | 4 ++-- docs/learn-jam.html | 4 ++-- docs/learn-kusama-inflation.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-offenses.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-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 | 4 ++-- docs/learn-polkadot-technical-fellowship.html | 4 ++-- docs/learn-polkadotjs.html | 4 ++-- docs/learn-proxies-pure.html | 4 ++-- docs/learn-proxies.html | 4 ++-- docs/learn-runtime-upgrades.html | 4 ++-- docs/learn-safrole.html | 4 ++-- docs/learn-scams.html | 4 ++-- docs/learn-snowbridge.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-transactions.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/learn-auction.html | 4 ++-- docs/learn/learn-controller.html | 4 ++-- docs/learn/learn-crowdloans.html | 4 ++-- docs/learn/learn-governance.html | 4 ++-- docs/learn/learn-launch.html | 4 ++-- docs/learn/learn-redenomination.html | 4 ++-- docs/learn/learn-treasury.html | 4 ++-- docs/learn/thousand-validators.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-archive.html | 4 ++-- docs/maintain-bootnode.html | 4 ++-- docs/maintain-collator-index.html | 4 ++-- docs/maintain-endpoints.html | 4 ++-- docs/maintain-errors.html | 4 ++-- docs/maintain-guides-async-backing.html | 4 ++-- docs/maintain-guides-how-to-chill.html | 4 ++-- ...ntain-guides-how-to-monitor-your-node.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 ++-- 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-node-index.html | 4 ++-- docs/maintain-polkadot-parameters.html | 4 ++-- docs/maintain-rpc.html | 4 ++-- docs/maintain-sync.html | 4 ++-- docs/maintain-validator-index.html | 4 ++-- docs/maintain-wss.html | 4 ++-- docs/maintain/maintain-guides-democracy.html | 4 ++-- .../maintain-guides-how-to-join-council.html | 4 ++-- ...aintain-guides-how-to-vote-councillor.html | 4 ++-- docs/metadata.html | 4 ++-- docs/multisig-apps.html | 4 ++-- docs/parachains-apps.html | 4 ++-- docs/parity-data-dashboards.html | 4 ++-- docs/polkadot-community-foundation.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/programs-index.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/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 ++-- 322 files changed, 646 insertions(+), 646 deletions(-) create mode 100644 assets/js/0eeb7a68.1fb15be1.js delete mode 100644 assets/js/0eeb7a68.638e1dbe.js create mode 100644 assets/js/3bd77df4.009a7aab.js delete mode 100644 assets/js/3bd77df4.ca3db21e.js create mode 100644 assets/js/ccc1222e.0bb09ea0.js delete mode 100644 assets/js/ccc1222e.dbe83f51.js rename assets/js/{main.ef943a05.js => main.1cbb1a84.js} (99%) rename assets/js/{main.ef943a05.js.LICENSE.txt => main.1cbb1a84.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.9f6a19bf.js => runtime~main.3a01401a.js} (88%) diff --git a/404.html b/404.html index e0d004b080a2..ac3df3dd7836 100644 --- a/404.html +++ b/404.html @@ -21,8 +21,8 @@ - - + +
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.

diff --git a/assets/js/0eeb7a68.1fb15be1.js b/assets/js/0eeb7a68.1fb15be1.js new file mode 100644 index 000000000000..d87f409acbd3 --- /dev/null +++ b/assets/js/0eeb7a68.1fb15be1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6869],{503:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>h});const a=JSON.parse('{"id":"learn/learn-guides-dot-ksm-bridge","title":"Polkadot and Kusama Bridge Guides","description":"Polkadot-JS Guides about Polkadot and Kusama Bridge.","source":"@site/../docs/learn/learn-guides-DOT-KSM-bridge.md","sourceDirName":"learn","slug":"/learn-guides-dot-ksm-bridge","permalink":"/docs/learn-guides-dot-ksm-bridge","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-DOT-KSM-bridge.md","tags":[],"version":"current","lastUpdatedBy":"github-actions[bot]","lastUpdatedAt":1734339550000,"frontMatter":{"id":"learn-guides-dot-ksm-bridge","title":"Polkadot and Kusama Bridge Guides","sidebar_label":"DOT <> KSM Bridge","description":"Polkadot-JS Guides about Polkadot and Kusama Bridge.","keywords":["Bridge","XCM","Bridge Hub","polkadot-js"],"slug":"../learn-guides-dot-ksm-bridge"},"sidebar":"docs","previous":{"title":"Bridge Hub Guides","permalink":"/docs/learn-guides-bridges"},"next":{"title":"Claim Guides","permalink":"/docs/learn-guides-claims"}}');var n=t(74848),o=t(28453),r=t(67141);const i={id:"learn-guides-dot-ksm-bridge",title:"Polkadot and Kusama Bridge Guides",sidebar_label:"DOT <> KSM Bridge",description:"Polkadot-JS Guides about Polkadot and Kusama Bridge.",keywords:["Bridge","XCM","Bridge Hub","polkadot-js"],slug:"../learn-guides-dot-ksm-bridge"},d=void 0,c={},h=[{value:"Transfer DOT to Kusama Asset Hub",id:"transfer-dot-to-kusama-asset-hub",level:2},{value:"Transfer DOT from Kusama Asset Hub to Polkadot Asset Hub",id:"transfer-dot-from-kusama-asset-hub-to-polkadot-asset-hub",level:2},{value:"Transfer KSM to Polkadot Asset Hub",id:"transfer-ksm-to-polkadot-asset-hub",level:2},{value:"Transfer KSM from Polkadot Asset Hub to Kusama Asset Hub",id:"transfer-ksm-from-polkadot-asset-hub-to-kusama-asset-hub",level:2},{value:"Transfer of arbitrary assets between Polkadot Asset Hub and Kusama Asset Hub",id:"transfer-of-arbitrary-assets-between-polkadot-asset-hub-and-kusama-asset-hub",level:2}];function u(e){const s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",img:"img",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.A,{message:"Polkadot-JS is for developers and power users only. If you need help using the Polkadot-JS UI, you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages."}),"\n",(0,n.jsxs)(s.p,{children:["The fully functional Polkadot < > Kusama bridge facilitates secure asset transfers between the\nchains in both the ecosystems. The progress of Polkadot < > Kusama bridge implementation can be\ntracked ",(0,n.jsx)(s.a,{href:"https://forum.polkadot.network/t/polkadot-kusama-bridge/2971/1",children:"here"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-dot-to-kusama-asset-hub",children:"Transfer DOT to Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer DOT on Polkadot Asset Hub to Kusama Asset Hub. The first step is\nto ensure that your account on Polkadot Asset Hub has enough DOT to cover the XCM transfer fee and\nthe bridge fee (which is around 2 DOT). The next step is to craft an XCM message to be sent from\nPolkadot Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"https://xcmsend.com/#/builder",children:"BagPipes (formerly called xcmsend)"})," is an opensource application\nthat lets you create workflows in a drag and drop style interface in order to build execution flows\nof cross chain assets transfers using XCM. Check ",(0,n.jsx)(s.a,{href:"https://docs.bagpipes.io/",children:"Bagpipes docs"})," for more\ninformation on how to create workflows for crafting XCM transfers. The snapshot below shows a\nworkflow on BagPipes that is designed to send 3 DOT from an account Polkadot Asset Hub to Kusama\nAsset Hub."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"BagPipes Snapshot DOT Transfer",src:t(35918).A+"",width:"2035",height:"962"})}),"\n",(0,n.jsx)(s.p,{children:"This workflow crafts an XCM transfer as shown below."}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:'{\n "isSigned": false,\n "method": {\n "args": {\n "dest": {\n "V3": {\n "parents": "2",\n "interior": {\n "X2": [\n {\n "GlobalConsensus": "Kusama"\n },\n {\n "Parachain": "1,000"\n }\n ]\n }\n }\n },\n "beneficiary": {\n "V3": {\n "parents": "0",\n "interior": {\n "X1": {\n "AccountId32": {\n "network": null,\n "id": "this has to be the intended address"\n }\n }\n }\n }\n },\n "assets": {\n "V3": [\n {\n "id": {\n "Concrete": {\n "parents": "1",\n "interior": "Here"\n }\n },\n "fun": {\n "Fungible": "30,000,000,000"\n }\n }\n ]\n },\n "fee_asset_item": "0",\n "weight_limit": "Unlimited"\n },\n "method": "limitedReserveTransferAssets",\n "section": "polkadotXcm"\n }\n}\n'})}),"\n",(0,n.jsxs)(s.p,{children:["Once this ",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6028374-2",children:"extrinsic"})," is signed and\nsubmitted, it is broadcast to Polkadot Asset Hub nodes. As this is a reserve asset transfer, the DOT\nis transferred to the destination's sovereign account on Polkadot Asset Hub and\n",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/6758392-0?event=6758392-1",children:"DOT is issued"})," as a foreign\nasset and deposited onto the destination account on Kusama Asset Hub. The foreign asset balances of\nany account on Kusama Asset Hub can be queried on-chain through the ",(0,n.jsx)(s.code,{children:"foreignAssets"}),"pallet as shown\nbelow."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"DOT Balance Kusama Asset Hub",src:t(13777).A+"",width:"2820",height:"1874"})}),"\n",(0,n.jsx)(s.h2,{id:"transfer-dot-from-kusama-asset-hub-to-polkadot-asset-hub",children:"Transfer DOT from Kusama Asset Hub to Polkadot Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer DOT on Kusama Asset Hub to Polkadot Asset Hub. The first step is\nto ensure that your account on Kusama Asset Hub has enough KSM to cover the XCM transfer fee and the\nbridge fee (which is around 0.4 KSM). The next step is to craft an XCM message to be sent from\nKusama Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["DOT which is registered as a foreign asset on Kusama Asset Hub can be transferred to Polkadot Asset\nHub through an extrinsic like the one below, whose call data is\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f0b040202090200a10f04000101009e4e7009937c56d267338762a60ed004293afd40e7c2081847c12cb63c76a818040402010902000700e40b54020000000000",children:(0,n.jsx)(s.code,{children:"0x1f0b040202090200a10f04000101009e4e7009937c56d267338762a60ed004293afd40e7c2081847c12cb63c76a818040402010902000700e40b54020000000000"})}),"."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.em,{children:"If you plan on reusing this extrinsic, ensure that you change the Account ID and the transfer\namount below."})})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"DOT transferred out from Kusama Asset Hub",src:t(51308).A+"",width:"2834",height:"5018"})}),"\n",(0,n.jsxs)(s.p,{children:["For reference, this ",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/7015118-2",children:"extrinsic"})," is signed\nand submitted successfully, and the destination account on Polkadot Asset Hub received DOT."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-ksm-to-polkadot-asset-hub",children:"Transfer KSM to Polkadot Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer KSM on Kusama Asset Hub to Polkadot Asset Hub. The first step is\nto ensure that your account on Kusama Asset Hub has enough KSM to cover the XCM transfer fee and the\nbridge fee (which is around 0.4 KSM). The next step is to craft an XCM message to be sent from\nKusama Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["The XCM transfer extrinsic shown below can be accessed\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f08030202090200a10f03000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33030400010000070088526a740000000000",children:"here."})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.em,{children:"If you plan on reusing this extrinsic, ensure that you change the Account ID and the transfer\namount highlighted in the snapshot below."})})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"PJS Snapshot KSM Transfer",src:t(65604).A+"",width:"2858",height:"4398"})}),"\n",(0,n.jsxs)(s.p,{children:["Once this ",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/6761480-2",children:"extrinsic"})," is signed and\nsubmitted, it is broadcast to Kusama Asset Hub nodes. As this is a reserve asset transfer, the KSM\nis transferred to the sovereign account on Kusama Asset Hub and\n",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6031467-0?event=6031467-6",children:"KSM is issued"})," as a\nforeign asset and deposited onto the destination account on Kusama Asset Hub. The foreign asset\nbalances of any account on Kusama Asset Hub can be queried on-chain through the\n",(0,n.jsx)(s.code,{children:"foreignAssets"}),"pallet as shown below."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"KSM Balance on Polkadot Asset Hub",src:t(41412).A+"",width:"2854",height:"1960"})}),"\n",(0,n.jsx)(s.h2,{id:"transfer-ksm-from-polkadot-asset-hub-to-kusama-asset-hub",children:"Transfer KSM from Polkadot Asset Hub to Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer KSM on Polkadot Asset Hub to Kusama Asset Hub. The first step is\nto ensure that your account on Polkadot Asset Hub has enough DOT to cover the XCM transfer fee and\nthe bridge fee (which is around 2 DOT). The next step is to craft an XCM message to be sent from\nPolkadot Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["KSM which is registered as a foreign asset on Polkadot Asset Hub can be transferred to Kusama Asset\nHub through an extrinsic like the one below, whose call data is\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f0b040202090300a10f04000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33040402010903000700a0db215d0000000000",children:(0,n.jsx)(s.code,{children:"0x1f0b040202090300a10f04000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33040402010903000700a0db215d0000000000"})})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"KSM transferred out from Polkadot Asset Hub",src:t(25728).A+"",width:"2854",height:"4784"})}),"\n",(0,n.jsxs)(s.p,{children:["For reference, this ",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6303823-2",children:"extrinsic"})," was signed\nand submitted successfully, and the destination account on Kusama Asset Hub received KSM."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-of-arbitrary-assets-between-polkadot-asset-hub-and-kusama-asset-hub",children:"Transfer of arbitrary assets between Polkadot Asset Hub and Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"Transfer functionality of assets other than DOT and KSM between Asset Hubs is yet to be enabled.\nOnce this functionality is enabled, assets which are sufficient or non-sufficient on the Asset Hubs\ncan be bridged."}),"\n",(0,n.jsx)(s.admonition,{title:"Avoid Asset Traps",type:"caution",children:(0,n.jsxs)(s.p,{children:["To avoid issues on the receiving side for non-sufficient assets, make sure to call\n",(0,n.jsx)(s.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/0ef37c75401b78b61ed35ce27af8b964da27bb3c/substrate/frame/assets/src/lib.rs#L1531",children:"pallet_assets::touch()"}),"\nor\n",(0,n.jsx)(s.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/0ef37c75401b78b61ed35ce27af8b964da27bb3c/substrate/frame/assets/src/lib.rs#L1616",children:"pallet_assets::touch_other()"}),"\neffectively guaranteeing the ability to successfully receive and accept the bridged assets in your\naccount on the destination chain. This eliminates issues like your account on destination not\nexisting or not having enough ED or having reached the maximum limit of different assets it can\nhold. Without this sanity step, you risk that the bridged assets will make their way to the\ndestination chain but will not be accepted by your account, and instead get trapped in the Asset\nTrap on the destination chain."]})}),"\n",(0,n.jsx)(s.p,{children:"Once arbitrary asset transfers are enabled by the Asset Hubs, a guide will be posted to this Wiki\npage."})]})}function l(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},67141:(e,s,t)=>{t.d(s,{A:()=>o});var a=t(96540),n=t(74848);const o=function(e){var s,t=e.message,o=(0,a.useState)(!0),r=o[0],i=o[1];return(0,n.jsx)(n.Fragment,{children:r&&(0,n.jsxs)("div",{className:"message-box",children:[(0,n.jsx)("button",{className:"close-button",onClick:function(){i(!1)},children:"\u2716 "}),(0,n.jsx)("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(s=t,s.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})]})})}},13777:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-DOT-Balance-f587755f88564c19d1578f162d9dd0ff.png"},51308:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-DOT-transfer-PAH-a6dd9187db4d6f449092d026c726a8c6.png"},65604:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-PAH-KSM-Transfer-PJS-Extrinsic-55c8a01313cec43f8119b6aca8904e23.png"},41412:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-KSM-Balance-ffa6f6093f73aa45b0c1bc7b6d0c78c7.png"},25728:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-KSM-Transfer-KAH-0d8843fc681b2cce6939cc6e607ff122.png"},35918:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-to-KAH-DOT-transfer-b97431dce4c4cd85c5dc17007357fb9a.png"},28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>i});var a=t(96540);const n={},o=a.createContext(n);function r(e){const s=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0eeb7a68.638e1dbe.js b/assets/js/0eeb7a68.638e1dbe.js deleted file mode 100644 index 0ce900f51511..000000000000 --- a/assets/js/0eeb7a68.638e1dbe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6869],{503:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>h});const a=JSON.parse('{"id":"learn/learn-guides-dot-ksm-bridge","title":"Polkadot and Kusama Bridge Guides","description":"Polkadot-JS Guides about Polkadot and Kusama Bridge.","source":"@site/../docs/learn/learn-guides-DOT-KSM-bridge.md","sourceDirName":"learn","slug":"/learn-guides-dot-ksm-bridge","permalink":"/docs/learn-guides-dot-ksm-bridge","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-DOT-KSM-bridge.md","tags":[],"version":"current","lastUpdatedBy":"muddlebee","lastUpdatedAt":1734098755000,"frontMatter":{"id":"learn-guides-dot-ksm-bridge","title":"Polkadot and Kusama Bridge Guides","sidebar_label":"DOT <> KSM Bridge","description":"Polkadot-JS Guides about Polkadot and Kusama Bridge.","keywords":["Bridge","XCM","Bridge Hub","polkadot-js"],"slug":"../learn-guides-dot-ksm-bridge"},"sidebar":"docs","previous":{"title":"Bridge Hub Guides","permalink":"/docs/learn-guides-bridges"},"next":{"title":"Claim Guides","permalink":"/docs/learn-guides-claims"}}');var n=t(74848),o=t(28453),r=t(67141);const i={id:"learn-guides-dot-ksm-bridge",title:"Polkadot and Kusama Bridge Guides",sidebar_label:"DOT <> KSM Bridge",description:"Polkadot-JS Guides about Polkadot and Kusama Bridge.",keywords:["Bridge","XCM","Bridge Hub","polkadot-js"],slug:"../learn-guides-dot-ksm-bridge"},d=void 0,c={},h=[{value:"Transfer DOT to Kusama Asset Hub",id:"transfer-dot-to-kusama-asset-hub",level:2},{value:"Transfer DOT from Kusama Asset Hub to Polkadot Asset Hub",id:"transfer-dot-from-kusama-asset-hub-to-polkadot-asset-hub",level:2},{value:"Transfer KSM to Polkadot Asset Hub",id:"transfer-ksm-to-polkadot-asset-hub",level:2},{value:"Transfer KSM from Polkadot Asset Hub to Kusama Asset Hub",id:"transfer-ksm-from-polkadot-asset-hub-to-kusama-asset-hub",level:2},{value:"Transfer of arbitrary assets between Polkadot Asset Hub and Kusama Asset Hub",id:"transfer-of-arbitrary-assets-between-polkadot-asset-hub-and-kusama-asset-hub",level:2}];function u(e){const s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",img:"img",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.A,{message:"Polkadot-JS is for developers and power users only. If you need help using the Polkadot-JS UI, you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages."}),"\n",(0,n.jsxs)(s.p,{children:["The fully functional Polkadot < > Kusama bridge facilitates secure asset transfers between the\nchains in both the ecosystems. The progress of Polkadot < > Kusama bridge implementation can be\ntracked ",(0,n.jsx)(s.a,{href:"https://forum.polkadot.network/t/polkadot-kusama-bridge/2971/1",children:"here"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-dot-to-kusama-asset-hub",children:"Transfer DOT to Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer DOT on Polkadot Asset Hub to Kusama Asset Hub. The first step is\nto ensure that your account on Polkadot Asset Hub has enough DOT to cover the XCM transfer fee and\nthe bridge fee (which is around 2 DOT). The next step is to craft an XCM message to be sent from\nPolkadot Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"https://xcmsend.com/#/builder",children:"BagPipes (formerly called xcmsend)"})," is an opensource application\nthat lets you create workflows in a drag and drop style interface in order to build execution flows\nof cross chain assets transfers using XCM. Check\n",(0,n.jsx)(s.a,{href:"https://docs.bagpipes.io/",children:"Bagpipes docs"})," for more information on how to\ncreate workflows for crafting XCM transfers. The snapshot below shows a workflow on BagPipes that is\ndesigned to send 3 DOT from an account Polkadot Asset Hub to Kusama Asset Hub."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"BagPipes Snapshot DOT Transfer",src:t(35918).A+"",width:"2035",height:"962"})}),"\n",(0,n.jsx)(s.p,{children:"This workflow crafts an XCM transfer as shown below."}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:'{\n "isSigned": false,\n "method": {\n "args": {\n "dest": {\n "V3": {\n "parents": "2",\n "interior": {\n "X2": [\n {\n "GlobalConsensus": "Kusama"\n },\n {\n "Parachain": "1,000"\n }\n ]\n }\n }\n },\n "beneficiary": {\n "V3": {\n "parents": "0",\n "interior": {\n "X1": {\n "AccountId32": {\n "network": null,\n "id": "this has to be the intended address"\n }\n }\n }\n }\n },\n "assets": {\n "V3": [\n {\n "id": {\n "Concrete": {\n "parents": "1",\n "interior": "Here"\n }\n },\n "fun": {\n "Fungible": "30,000,000,000"\n }\n }\n ]\n },\n "fee_asset_item": "0",\n "weight_limit": "Unlimited"\n },\n "method": "limitedReserveTransferAssets",\n "section": "polkadotXcm"\n }\n}\n'})}),"\n",(0,n.jsxs)(s.p,{children:["Once this ",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6028374-2",children:"extrinsic"})," is signed and\nsubmitted, it is broadcast to Polkadot Asset Hub nodes. As this is a reserve asset transfer, the DOT\nis transferred to the destination's sovereign account on Polkadot Asset Hub and\n",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/6758392-0?event=6758392-1",children:"DOT is issued"})," as a foreign\nasset and deposited onto the destination account on Kusama Asset Hub. The foreign asset balances of\nany account on Kusama Asset Hub can be queried on-chain through the ",(0,n.jsx)(s.code,{children:"foreignAssets"}),"pallet as shown\nbelow."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"DOT Balance Kusama Asset Hub",src:t(13777).A+"",width:"2820",height:"1874"})}),"\n",(0,n.jsx)(s.h2,{id:"transfer-dot-from-kusama-asset-hub-to-polkadot-asset-hub",children:"Transfer DOT from Kusama Asset Hub to Polkadot Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer DOT on Kusama Asset Hub to Polkadot Asset Hub. The first step is\nto ensure that your account on Kusama Asset Hub has enough KSM to cover the XCM transfer fee and the\nbridge fee (which is around 0.4 KSM). The next step is to craft an XCM message to be sent from\nKusama Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["DOT which is registered as a foreign asset on Kusama Asset Hub can be transferred to Polkadot Asset\nHub through an extrinsic like the one below, whose call data is\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f0b040202090200a10f04000101009e4e7009937c56d267338762a60ed004293afd40e7c2081847c12cb63c76a818040402010902000700e40b54020000000000",children:(0,n.jsx)(s.code,{children:"0x1f0b040202090200a10f04000101009e4e7009937c56d267338762a60ed004293afd40e7c2081847c12cb63c76a818040402010902000700e40b54020000000000"})}),"."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.em,{children:"If you plan on reusing this extrinsic, ensure that you change the Account ID and the transfer\namount below."})})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"DOT transferred out from Kusama Asset Hub",src:t(51308).A+"",width:"2834",height:"5018"})}),"\n",(0,n.jsxs)(s.p,{children:["For reference, this ",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/7015118-2",children:"extrinsic"})," is signed\nand submitted successfully, and the destination account on Polkadot Asset Hub received DOT."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-ksm-to-polkadot-asset-hub",children:"Transfer KSM to Polkadot Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer KSM on Kusama Asset Hub to Polkadot Asset Hub. The first step is\nto ensure that your account on Kusama Asset Hub has enough KSM to cover the XCM transfer fee and the\nbridge fee (which is around 0.4 KSM). The next step is to craft an XCM message to be sent from\nKusama Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["The XCM transfer extrinsic shown below can be accessed\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f08030202090200a10f03000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33030400010000070088526a740000000000",children:"here."})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.em,{children:"If you plan on reusing this extrinsic, ensure that you change the Account ID and the transfer\namount highlighted in the snapshot below."})})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"PJS Snapshot KSM Transfer",src:t(65604).A+"",width:"2858",height:"4398"})}),"\n",(0,n.jsxs)(s.p,{children:["Once this ",(0,n.jsx)(s.a,{href:"https://assethub-kusama.subscan.io/extrinsic/6761480-2",children:"extrinsic"})," is signed and\nsubmitted, it is broadcast to Kusama Asset Hub nodes. As this is a reserve asset transfer, the KSM\nis transferred to the sovereign account on Kusama Asset Hub and\n",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6031467-0?event=6031467-6",children:"KSM is issued"})," as a\nforeign asset and deposited onto the destination account on Kusama Asset Hub. The foreign asset\nbalances of any account on Kusama Asset Hub can be queried on-chain through the\n",(0,n.jsx)(s.code,{children:"foreignAssets"}),"pallet as shown below."]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"KSM Balance on Polkadot Asset Hub",src:t(41412).A+"",width:"2854",height:"1960"})}),"\n",(0,n.jsx)(s.h2,{id:"transfer-ksm-from-polkadot-asset-hub-to-kusama-asset-hub",children:"Transfer KSM from Polkadot Asset Hub to Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"This tutorial shows how to transfer KSM on Polkadot Asset Hub to Kusama Asset Hub. The first step is\nto ensure that your account on Polkadot Asset Hub has enough DOT to cover the XCM transfer fee and\nthe bridge fee (which is around 2 DOT). The next step is to craft an XCM message to be sent from\nPolkadot Asset Hub."}),"\n",(0,n.jsxs)(s.p,{children:["KSM which is registered as a foreign asset on Polkadot Asset Hub can be transferred to Kusama Asset\nHub through an extrinsic like the one below, whose call data is\n",(0,n.jsx)(s.a,{href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-asset-hub-rpc.polkadot.io#/extrinsics/decode/0x1f0b040202090300a10f04000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33040402010903000700a0db215d0000000000",children:(0,n.jsx)(s.code,{children:"0x1f0b040202090300a10f04000101008479c8ea5480acca5a847133cd97a87801b6e698a98f2eab0e8e9d5c51b14a33040402010903000700a0db215d0000000000"})})]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"KSM transferred out from Polkadot Asset Hub",src:t(25728).A+"",width:"2854",height:"4784"})}),"\n",(0,n.jsxs)(s.p,{children:["For reference, this ",(0,n.jsx)(s.a,{href:"https://assethub-polkadot.subscan.io/extrinsic/6303823-2",children:"extrinsic"})," was signed\nand submitted successfully, and the destination account on Kusama Asset Hub received KSM."]}),"\n",(0,n.jsx)(s.h2,{id:"transfer-of-arbitrary-assets-between-polkadot-asset-hub-and-kusama-asset-hub",children:"Transfer of arbitrary assets between Polkadot Asset Hub and Kusama Asset Hub"}),"\n",(0,n.jsx)(s.p,{children:"Transfer functionality of assets other than DOT and KSM between Asset Hubs is yet to be enabled.\nOnce this functionality is enabled, assets which are sufficient or non-sufficient on the Asset Hubs\ncan be bridged."}),"\n",(0,n.jsx)(s.admonition,{title:"Avoid Asset Traps",type:"caution",children:(0,n.jsxs)(s.p,{children:["To avoid issues on the receiving side for non-sufficient assets, make sure to call\n",(0,n.jsx)(s.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/0ef37c75401b78b61ed35ce27af8b964da27bb3c/substrate/frame/assets/src/lib.rs#L1531",children:"pallet_assets::touch()"}),"\nor\n",(0,n.jsx)(s.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/0ef37c75401b78b61ed35ce27af8b964da27bb3c/substrate/frame/assets/src/lib.rs#L1616",children:"pallet_assets::touch_other()"}),"\neffectively guaranteeing the ability to successfully receive and accept the bridged assets in your\naccount on the destination chain. This eliminates issues like your account on destination not\nexisting or not having enough ED or having reached the maximum limit of different assets it can\nhold. Without this sanity step, you risk that the bridged assets will make their way to the\ndestination chain but will not be accepted by your account, and instead get trapped in the Asset\nTrap on the destination chain."]})}),"\n",(0,n.jsx)(s.p,{children:"Once arbitrary asset transfers are enabled by the Asset Hubs, a guide will be posted to this Wiki\npage."})]})}function l(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},67141:(e,s,t)=>{t.d(s,{A:()=>o});var a=t(96540),n=t(74848);const o=function(e){var s,t=e.message,o=(0,a.useState)(!0),r=o[0],i=o[1];return(0,n.jsx)(n.Fragment,{children:r&&(0,n.jsxs)("div",{className:"message-box",children:[(0,n.jsx)("button",{className:"close-button",onClick:function(){i(!1)},children:"\u2716 "}),(0,n.jsx)("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(s=t,s.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})]})})}},13777:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-DOT-Balance-f587755f88564c19d1578f162d9dd0ff.png"},51308:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-DOT-transfer-PAH-a6dd9187db4d6f449092d026c726a8c6.png"},65604:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/KAH-PAH-KSM-Transfer-PJS-Extrinsic-55c8a01313cec43f8119b6aca8904e23.png"},41412:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-KSM-Balance-ffa6f6093f73aa45b0c1bc7b6d0c78c7.png"},25728:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-KSM-Transfer-KAH-0d8843fc681b2cce6939cc6e607ff122.png"},35918:(e,s,t)=>{t.d(s,{A:()=>a});const a=t.p+"assets/images/PAH-to-KAH-DOT-transfer-b97431dce4c4cd85c5dc17007357fb9a.png"},28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>i});var a=t(96540);const n={},o=a.createContext(n);function r(e){const s=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3bd77df4.009a7aab.js b/assets/js/3bd77df4.009a7aab.js new file mode 100644 index 000000000000..3bc8bb46faca --- /dev/null +++ b/assets/js/3bd77df4.009a7aab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3976],{50628:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"learn/learn-bridges","title":"Bridges","description":"Bridges and Examples of Common Bridges.","source":"@site/../docs/learn/learn-bridges.md","sourceDirName":"learn","slug":"/learn-bridges","permalink":"/docs/learn-bridges","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-bridges.md","tags":[],"version":"current","lastUpdatedBy":"github-actions[bot]","lastUpdatedAt":1734339550000,"frontMatter":{"id":"learn-bridges","title":"Bridges","sidebar_label":"Bridges","description":"Bridges and Examples of Common Bridges.","keywords":["bridges","cross-chain","bridge methods"],"slug":"../learn-bridges"},"sidebar":"docs","previous":{"title":"Parachains FAQ","permalink":"/docs/learn-parachains-faq"},"next":{"title":"Snowbridge","permalink":"/docs/learn-snowbridge"}}');var i=t(74848),s=t(28453),a=t(3514);const o={id:"learn-bridges",title:"Bridges",sidebar_label:"Bridges",description:"Bridges and Examples of Common Bridges.",keywords:["bridges","cross-chain","bridge methods"],slug:"../learn-bridges"},l=void 0,d={},c=[{value:"Trustless Bridges",id:"trustless-bridges",level:2},{value:"On-chain Bridge Components",id:"on-chain-bridge-components",level:2},{value:"via Bridge Pallets",id:"via-bridge-pallets",level:3},{value:"via Smart Contracts",id:"via-smart-contracts",level:3},{value:"via Higher-Order Protocols",id:"via-higher-order-protocols",level:3},{value:"Bitcoin Bridge (XCLAIM <-> Substrate <-> Polkadot)",id:"bitcoin-bridge-xclaim---substrate---polkadot",level:4},{value:"Offchain Bridge Components",id:"offchain-bridge-components",level:2},{value:"Bridge Comparison",id:"bridge-comparison",level:2},{value:"Resources",id:"resources",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Bridges are vital infrastructure, enabling cross-chain communication between technically diverse\nnetworks like Polkadot and Ethereum. Bridges allow these chains to acknowledge and trust each\nother\u2019s finalized states, paving the way for many applications like asset swaps and chain\nmigrations."}),"\n",(0,i.jsxs)(n.p,{children:["Current bridge architectures rely on centralized intermediaries, such as multi-signature relayers,\nto validate information passed between chains. This approach introduces additional trust assumptions\nand creates a single point of failure, opening up attack vectors like censorship. Recent history has\nshown how risky this can be \u2014 centralized entities can be compromised or act maliciously. According\nto ",(0,i.jsx)(n.a,{href:"https://www.chainalysis.com/blog/cross-chain-bridge-hacks-2022/",children:"Chainalysis report"}),", failures\nin centralized bridges account for over 60% of all crypto hacks, resulting in losses exceeding $2\nbillion. Four of the top five incidents on the ",(0,i.jsx)(n.a,{href:"https://rekt.news/tr/leaderboard/",children:"rekt leaderboard"}),"\nare bridge-related hacks. A system\u2019s security is only ",(0,i.jsx)(n.strong,{children:"as strong as its weakest link"}),", and bridges\nhave proven to be a critical vulnerability."]}),"\n",(0,i.jsx)(n.admonition,{title:"Purpose of bridging",type:"info",children:(0,i.jsxs)(n.p,{children:["Bridges enable Polkadot to communicate with external blockchains such as Bitcoin and Ethereum.\nWithin Polkadot, chains already benefit from secure interoperability. For more information about the\nnative interoperability technology that allows parachains to communicate trustlessly, please see the\ndedicated ",(0,i.jsx)(n.a,{href:"/docs/learn-xcm",children:"cross consensus"})," page on the Wiki."]})}),"\n",(0,i.jsx)(n.p,{children:"Thus, Bridge designs come in various flavors ranging from centralized and trusted to more\ndecentralized and trustless. Polkadot favors the latter bridge designs for its ecosystem."}),"\n",(0,i.jsx)(a.A,{}),"\n",(0,i.jsx)(n.h2,{id:"trustless-bridges",children:"Trustless Bridges"}),"\n",(0,i.jsxs)(n.p,{children:["A two-way trustless bridge between chains A and B can be viewed as two one-way bridges (A \u2192 B and B\n\u2192 A). Hence, the design of a two-way bridge can be explained in terms of a one-way bridge with a\nsource and a target chain. Any trustless bridge will have ",(0,i.jsx)(n.strong,{children:"on-chain and off-chain components"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Trustlessness means that users do not need to trust particular individuals or organizations; they\nonly need to trust mathematics, code, cryptography, and protocol. An example of a system which\nimplies a high level of trust would be that of a bridge which is controlled via a multi-signature\nscheme, wherein you must trust the cosignatories."}),"\n",(0,i.jsx)(n.p,{children:"Basic assumptions are always needed in principle when defining a trustless system as a completely\ntrustless setup cannot always be guaranteed."}),"\n",(0,i.jsx)(n.h2,{id:"on-chain-bridge-components",children:"On-chain Bridge Components"}),"\n",(0,i.jsx)(n.p,{children:"Building a trustless bridge can be done through the implementation of the following on-chain\ncomponents (ordered by suggested methodology):"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Bridge pallets"})," - For Substrate-native chains, use a bridge pallet (e.g.\n",(0,i.jsxs)(n.a,{href:"/docs/learn-dot-ksm-bridge",children:["Kusama ",(0,i.jsx)(n.code,{children:"<->"})," Polkadot bridge"]}),", since both networks' parachains use\nSubstrate)."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Smart contracts"})," - If the chain is not on Substrate, you should have smart contracts on the\nnon-Substrate chain to bridge (e.g. ",(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"}),", Ethereum mainnet has a\nbridge smart contract that initiates Eth transactions based on incoming XCMP messages)."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Higher-order protocols"})," - If your chain does not support smart contracts (e.g. Bitcoin), you\nshould use ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XClaim"})," or similar protocols to bridge."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"On-chain bridge components are modules (usually pallets or smart contracts) deployed on the chain's\nruntime. Modules that track the finality of the source chain are required to be deployed on the\ntarget chain, while the modules that deal with cross-chain messaging need to be deployed on both\nsource and target chains."}),"\n",(0,i.jsx)(n.p,{children:"There are also on-chain components responsible for queuing messages at the source chain and\nreceiving the message proofs at the target chain. The messages are sent through a particular lane,\nwhere they are guaranteed to be received in the same order they are sent. On Bridge Hub, the\nmessages are in XCM format, and an XCM executor is used to dispatch them."}),"\n",(0,i.jsx)(n.h3,{id:"via-bridge-pallets",children:"via Bridge Pallets"}),"\n",(0,i.jsxs)(n.p,{children:["Operating a bridge between chains that finalize through GRANDPA consensus is straightforward. A\nGRANDPA light client of the source chain built into the target chain's runtime provides a \"source of\ntruth\" about the source chain's finality. For instance,\n",(0,i.jsx)(n.a,{href:"/docs/learn-system-chains#bridge-hub",children:"Bridge Hub"})," runs an on-chain light client of Kusama which uses\nGRANDPA consensus and infers the finality of all the transactions on Kusama and its parachains."]}),"\n",(0,i.jsx)(n.p,{children:"Receiving messages on Polkadot from an external, non-parachain blockchain is possible through a\nSubstrate pallet. The Substrate instance can then be deployed to Polkadot either as a system-level\nparachain (native extension to the core Polkadot software) or as a community-operated parachain."}),"\n",(0,i.jsxs)(n.p,{children:["An example of a bridge that would strictly use bridge pallets would be\n",(0,i.jsxs)(n.a,{href:"/docs/learn-dot-ksm-bridge",children:["the Kusama ",(0,i.jsx)(n.code,{children:"<->"})," Polkadot bridge"]}),", since both use parachains based on\nSubstrate."]}),"\n",(0,i.jsx)(n.p,{children:"For the standalone chains that will not have a parachain bridging module (non-Substrate), it will be\nnecessary to deploy bridge contracts."}),"\n",(0,i.jsx)(n.h3,{id:"via-smart-contracts",children:"via Smart Contracts"}),"\n",(0,i.jsxs)(n.p,{children:["Given the generality of blockchain platforms with Turing-complete smart contract languages, it is\npossible to bridge Polkadot and any other smart-contract-capable blockchain. For instance,\n",(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"})," uses the Polkadot Bridge Hub to run an on-chain light client of\nEthereum to infer the finality of transactions on the Ethereum chain. Running a GRANDPA light client\nthrough smart contracts on Ethereum is possible but expensive. Hence,\n",(0,i.jsx)(n.a,{href:"/docs/learn-consensus#bridging-beefy",children:"BEEFY consensus layer"})," sitting on top of GRANDPA enables a\ncost-effective solution for operating a trustless bridge with Ethereum and other protocols.\nTrustless bridges to chains like Cosmos, Avalanche, NEAR, etc., would require custom pallets to be\ndeployed on Bridge Hub."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["To learn more on how Bitcoin and Ethereum can cooperate and collaborate through Polkadot, check out\nthis explainer video ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=rvoFUiOR3cM",children:"here"})]})}),"\n",(0,i.jsx)(n.h3,{id:"via-higher-order-protocols",children:"via Higher-Order Protocols"}),"\n",(0,i.jsxs)(n.p,{children:["Higher-order protocols (like ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"}),") can be used to bridge\nbut should only be used when other options are not available. XCLAIM, in particular, requires any\nswappable asset to be backed by a collateral of higher value than the swappable assets, which adds\nadditional overhead."]}),"\n",(0,i.jsx)(n.p,{children:"An example of a network that would be well-suited for higher-order protocols would be Bitcoin, since\nit does not support smart contracts, and it's not based on Substrate."}),"\n",(0,i.jsx)(n.h4,{id:"bitcoin-bridge-xclaim---substrate---polkadot",children:"Bitcoin Bridge (XCLAIM <-> Substrate <-> Polkadot)"}),"\n",(0,i.jsxs)(n.p,{children:["The Interlay team has written a ",(0,i.jsx)(n.a,{href:"https://spec.interlay.io/",children:"specification"})," on a Bitcoin bridge that\nis based on the ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"})," design paper. The protocol enables a\ntwo-way bridge between Polkadot and Bitcoin. It allows holders of BTC to issue iBTC in Polkadot and\nholders of iBTC to redeem BTC on the Bitcoin chain."]}),"\n",(0,i.jsx)(n.p,{children:"The Bitcoin bridge, as documented in the specification, is composed of two logically different\ncomponents:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The XCLAIM component maintains all accounts that own iBTC."}),"\n",(0,i.jsx)(n.li,{children:"The BTC-Relay verifies the Bitcoin state when a new transaction is submitted."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"For full details on how it works, please refer to the specification."}),"\n",(0,i.jsxs)(n.p,{children:["There is now a\n",(0,i.jsx)(n.a,{href:"https://app.interlay.io/btc?tab=issue",children:"working implementation and mainnet bridge available"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"offchain-bridge-components",children:"Offchain Bridge Components"}),"\n",(0,i.jsx)(n.p,{children:"Offchain bridge components are separate processes called relayers. Relayers are connected both to\nthe source chain and target chain nodes. For instance, the task of relayer between chains that run\non GRANDPA consensus is to submit source chain GRANDPA justifications and their corresponding\nheaders to the Bridge GRANDPA Finality Pallet deployed at the target chain. For that, the relayer\nsubscribes to the source chain GRANDPA justifications stream and submits every new justification to\nthe target chain GRANDPA light client."}),"\n",(0,i.jsxs)(n.p,{children:["Messages between chains are relayed through the relayers, which involve messages delivery relay and\ndelivery confirmation relay. For more information on relayers and the Bridge Hub design, read\nthrough the\n",(0,i.jsx)(n.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/master/bridges/docs/high-level-overview.md",children:"High-level bridge documentation on the Polkadot-SDK repository"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"bridge-comparison",children:"Bridge Comparison"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"})," and ",(0,i.jsx)(n.a,{href:"/docs/learn-hyperbridge",children:"Hyperbridge"})," are two trustless\nbridges that connect Polkadot with other ecosystems. Here below is a main technical comparison\nbetween the two."]}),"\n",(0,i.jsx)(n.admonition,{title:"Tokens sent through different bridges are different",type:"danger",children:(0,i.jsxs)(n.p,{children:["Unless specific logic is implemented, WETH sent through Snowbridge cannot be sent back using\nHyperbridge, and ",(0,i.jsx)(n.em,{children:"vice versa"}),". ",(0,i.jsx)(n.strong,{children:"Sending tokens using different bridges might lead to loss of\nfunds."})]})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Snowbridge"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Hyperbridge"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum only",(0,i.jsx)("sup",{children:"1"}),"."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Multichain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum light client on ",(0,i.jsx)(n.a,{href:"/docs/learn-system-chains#bridge-hub",children:"Bridge Hub System Chain"}),(0,i.jsx)("sup",{children:"2"})," and Polkadot light client on Ethereum smart contract."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Own parachain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-DOT",children:"DOT token"}),"."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Hyperbridge native token."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge#random-sampling-beefy",children:"Random-sampling BEEFY"})," for prover."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Zero-knowledge Proofs."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Simple codebase but complex analysis by the verifier."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Complex codebase, but simple analysis by the verifier."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Low-spec hardware for prover, permissionless."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"High-spec hardware for prover, permissionless but somewhat permissioned due to the ZK-based nature."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Possible high-level decentralization for the prover."}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Prover decentralization possible but probably by removing dependency on ZK circuits through BLS (",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/BLS_digital_signature",children:"Boneh\u2013Lynn\u2013Shacham"}),") version of BEEFY and BLS precompiles on Ethereum."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum > Polkadot: In the range of ",(0,i.jsx)(n.a,{href:"https://app.snowbridge.network/status",children:"10-20 minutes"}),". Polkadot > Ethereum: High latency (half an hour) as two epochs are needed on Ethereum to achieve unpredictable randomness to update the Polkadot's state."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Ethereum > Polkadot: In the range of 10-20 minutes (to Polkadot, both bridges have the same latency). Polkadot > Ethereum: Low latency, 5-7 minutes on reference hardware."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Dependency on external library for BLS signature verification (",(0,i.jsx)(n.a,{href:"https://github.com/sigp/milagro_bls",children:"Milagro BLS"}),", used by Lighthouse, the Rust Ethereum consensus client)."]}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Dependency on external libraries due to ZK-based nature. Such libraries include ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2019/953.pdf",children:"PLONK"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-xcm",children:"XCM"})," as a cross-chain message format."]}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"https://docs.hyperbridge.network/protocol/ismp",children:"ISMP"})," as a bridge integration protocol."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Live."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Live."})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)("sup",{children:"1"})," WETH sent through different bridges are different. Unless specific logic is\nimplemented, WETH sent through Snowbridge cannot be sent back using Hyperbridge.",(0,i.jsx)("br",{}),(0,i.jsx)("br",{})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)("sup",{children:"2"}),' Because Snowbridge is deployed on a system chain, Snowbridge WETH can be considered as\nthe "official" WETH on Polkadot (although this must not be interpreted as a positive sign for\nSnowbridge and negative sign for Hyperbridge).',(0,i.jsx)("br",{}),(0,i.jsx)("br",{})]}),"\n",(0,i.jsx)(n.h2,{id:"resources",children:"Resources"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.snowbridge.network/",children:"Snowbridge - a trustless, decentralized bridge between Polkadot and Ethereum"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/paritytech/parity-bridges-common",children:"Parity Bridges Common Resources"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/ChainSafe/ChainBridge",children:"Substrate/Ethereum Bridge"})," - ChainSafe and Centrifuge\nwere awarded a grant in W3F Grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a Substrate to Ethereum two-way bridge."]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.interlay.io/#//",children:"iBTC (Bitcoin <-> Polkadot Bridge)"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/bifrost-codes/bifrost",children:"EOS Bridge"})," - The Bifrost team was awarded a grant in\nW3F Grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a bridge to EOS."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/ChorusOne/tendermint-light-client",children:"Tendermint Bridge"})," - ChorusOne was awarded\na grant in\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a GRANDPA light client in Tendermint."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://app.interlay.io/btc?tab=issue",children:"Interlay BTC Bridge"})," - The Interlay team was awarded a\ngrant in W3F grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a trust-minimized BTC bridge."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/chainx-org/ChainX/tree/master/xpallets/gateway/bitcoin",children:"ChainX BTC Bridge"})," -\nChainX has implemented a BTC to Substrate bridge for their parachain."]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://poa.network/",children:"POA Network"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://medium.com/giveth/ethereum-dapp-scaling-poa-network-acee8a51e772",children:"Case study"})," of POA\nNetwork's implementation of Parity's bridge chain solution."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/hicommonwealth/edgeth_bridge/",children:"Edgeth Bridge"})," - a bridge from Ethereum to\nEdgeware chain (a Substrate-based chain) is now defunct and not maintained, but it is a good\nexample."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"})," - XCLAIM is a framework for achieving trustless and\nefficient cross-chain exchanges using cryptocurrency-backed assets."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/celer-network/cBridge-contracts",children:"Celer cBridge"})," - a bridge to transfer assets\nfrom Ethereum & Binance Smart Chain to the Astar Polkadot EVM."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},3514:(e,n,t)=>{t.d(n,{A:()=>x});t(96540);var r=t(34164),i=t(26972),s=t(28774),a=t(53465),o=t(16654),l=t(21312),d=t(51107);const c={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var h=t(74848);function u(e){var n=e.href,t=e.children;return(0,h.jsx)(s.A,{href:n,className:(0,r.A)("card padding--lg",c.cardContainer),children:t})}function g(e){var n=e.href,t=e.icon,i=e.title,s=e.description;return(0,h.jsxs)(u,{href:n,children:[(0,h.jsxs)(d.A,{as:"h2",className:(0,r.A)("text--truncate",c.cardTitle),title:i,children:[t," ",i]}),s&&(0,h.jsx)("p",{className:(0,r.A)("text--truncate",c.cardDescription),title:s,children:s})]})}function p(e){var n,t,r=e.item,s=(0,i.Nr)(r),o=(t=(0,a.W)().selectMessage,function(e){return t(e,(0,l.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:e}))});return s?(0,h.jsx)(g,{href:s,icon:"\ud83d\uddc3\ufe0f",title:r.label,description:null!=(n=r.description)?n:o(r.items.length)}):null}function m(e){var n,t,r=e.item,s=(0,o.A)(r.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",a=(0,i.cC)(null!=(n=r.docId)?n:void 0);return(0,h.jsx)(g,{href:r.href,icon:s,title:r.label,description:null!=(t=r.description)?t:null==a?void 0:a.description})}function b(e){var n=e.item;switch(n.type){case"link":return(0,h.jsx)(m,{item:n});case"category":return(0,h.jsx)(p,{item:n});default:throw new Error("unknown item type "+JSON.stringify(n))}}function f(e){var n=e.className,t=(0,i.$S)();return(0,h.jsx)(x,{items:t.items,className:n})}function x(e){var n=e.items,t=e.className;if(!n)return(0,h.jsx)(f,Object.assign({},e));var s=(0,i.d1)(n);return(0,h.jsx)("section",{className:(0,r.A)("row",t),children:s.map((function(e,n){return(0,h.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,h.jsx)(b,{item:e})},n)}))})}},53465:(e,n,t)=>{t.d(n,{W:()=>d});var r=t(96540),i=t(44586),s=["zero","one","two","few","many","other"];function a(e){return s.filter((function(n){return e.includes(n)}))}var o={locale:"en",pluralForms:a(["one","other"]),select:function(e){return 1===e?"one":"other"}};function l(){var e=(0,i.A)().i18n.currentLocale;return(0,r.useMemo)((function(){try{return n=e,t=new Intl.PluralRules(n),{locale:n,pluralForms:a(t.resolvedOptions().pluralCategories),select:function(e){return t.select(e)}}}catch(r){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+r.message+"\n"),o}var n,t}),[e])}function d(){var e=l();return{selectMessage:function(n,t){return function(e,n,t){var r=e.split("|");if(1===r.length)return r[0];r.length>t.pluralForms.length&&console.error("For locale="+t.locale+", a maximum of "+t.pluralForms.length+" plural forms are expected ("+t.pluralForms.join(",")+"), but the message contains "+r.length+": "+e);var i=t.select(n),s=t.pluralForms.indexOf(i);return r[Math.min(s,r.length-1)]}(t,n,e)}}}},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const i={},s=r.createContext(i);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3bd77df4.ca3db21e.js b/assets/js/3bd77df4.ca3db21e.js deleted file mode 100644 index 1575e96664d4..000000000000 --- a/assets/js/3bd77df4.ca3db21e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3976],{50628:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"learn/learn-bridges","title":"Bridges","description":"Bridges and Examples of Common Bridges.","source":"@site/../docs/learn/learn-bridges.md","sourceDirName":"learn","slug":"/learn-bridges","permalink":"/docs/learn-bridges","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-bridges.md","tags":[],"version":"current","lastUpdatedBy":"Femi Olah","lastUpdatedAt":1734082870000,"frontMatter":{"id":"learn-bridges","title":"Bridges","sidebar_label":"Bridges","description":"Bridges and Examples of Common Bridges.","keywords":["bridges","cross-chain","bridge methods"],"slug":"../learn-bridges"},"sidebar":"docs","previous":{"title":"Parachains FAQ","permalink":"/docs/learn-parachains-faq"},"next":{"title":"Snowbridge","permalink":"/docs/learn-snowbridge"}}');var i=t(74848),s=t(28453),a=t(3514);const o={id:"learn-bridges",title:"Bridges",sidebar_label:"Bridges",description:"Bridges and Examples of Common Bridges.",keywords:["bridges","cross-chain","bridge methods"],slug:"../learn-bridges"},l=void 0,d={},c=[{value:"Trustless Bridges",id:"trustless-bridges",level:2},{value:"On-chain Bridge Components",id:"on-chain-bridge-components",level:2},{value:"via Bridge Pallets",id:"via-bridge-pallets",level:3},{value:"via Smart Contracts",id:"via-smart-contracts",level:3},{value:"via Higher-Order Protocols",id:"via-higher-order-protocols",level:3},{value:"Bitcoin Bridge (XCLAIM <-> Substrate <-> Polkadot)",id:"bitcoin-bridge-xclaim---substrate---polkadot",level:4},{value:"Offchain Bridge Components",id:"offchain-bridge-components",level:2},{value:"Bridge Comparison",id:"bridge-comparison",level:2},{value:"Resources",id:"resources",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Bridges are vital infrastructure, enabling cross-chain communication between technically diverse\nnetworks like Polkadot and Ethereum. Bridges allow these chains to acknowledge and trust each\nother\u2019s finalized states, paving the way for many applications like asset swaps and chain\nmigrations."}),"\n",(0,i.jsxs)(n.p,{children:["Current bridge architectures rely on centralized intermediaries, such as multi-signature relayers,\nto validate information passed between chains. This approach introduces additional trust assumptions\nand creates a single point of failure, opening up attack vectors like censorship. Recent history has\nshown how risky this can be \u2014 centralized entities can be compromised or act maliciously. According\nto ",(0,i.jsx)(n.a,{href:"https://www.chainalysis.com/blog/cross-chain-bridge-hacks-2022/",children:"Chainalysis report"}),", failures\nin centralized bridges account for over 60% of all crypto hacks, resulting in losses exceeding $2\nbillion. Four of the top five incidents on the ",(0,i.jsx)(n.a,{href:"https://rekt.news/tr/leaderboard/",children:"rekt leaderboard"}),"\nare bridge-related hacks. A system\u2019s security is only ",(0,i.jsx)(n.strong,{children:"as strong as its weakest link"}),", and bridges\nhave proven to be a critical vulnerability."]}),"\n",(0,i.jsx)(n.admonition,{title:"Purpose of bridging",type:"info",children:(0,i.jsxs)(n.p,{children:["Bridges enable Polkadot to communicate with external blockchains such as Bitcoin and Ethereum.\nWithin Polkadot, chains already benefit from secure interoperability. For more information about the\nnative interoperability technology that allows parachains to communicate trustlessly, please see the\ndedicated ",(0,i.jsx)(n.a,{href:"/docs/learn-xcm",children:"cross consensus"})," page on the Wiki."]})}),"\n",(0,i.jsx)(n.p,{children:"Thus, Bridge designs come in various flavors ranging from centralized and trusted to more\ndecentralized and trustless. Polkadot favors the latter bridge designs for its ecosystem."}),"\n",(0,i.jsx)(a.A,{}),"\n",(0,i.jsx)(n.h2,{id:"trustless-bridges",children:"Trustless Bridges"}),"\n",(0,i.jsxs)(n.p,{children:["A two-way trustless bridge between chains A and B can be viewed as two one-way bridges (A \u2192 B and B\n\u2192 A). Hence, the design of a two-way bridge can be explained in terms of a one-way bridge with a\nsource and a target chain. Any trustless bridge will have ",(0,i.jsx)(n.strong,{children:"on-chain and off-chain components"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Trustlessness means that users do not need to trust particular individuals or organizations; they\nonly need to trust mathematics, code, cryptography, and protocol. An example of a system which\nimplies a high level of trust would be that of a bridge which is controlled via a multi-signature\nscheme, wherein you must trust the cosignatories."}),"\n",(0,i.jsx)(n.p,{children:"Basic assumptions are always needed in principle when defining a trustless system as a completely\ntrustless setup cannot always be guaranteed."}),"\n",(0,i.jsx)(n.h2,{id:"on-chain-bridge-components",children:"On-chain Bridge Components"}),"\n",(0,i.jsx)(n.p,{children:"Building a trustless bridge can be done through the implementation of the following on-chain\ncomponents (ordered by suggested methodology):"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Bridge pallets"})," - For Substrate-native chains, use a bridge pallet (e.g.\n",(0,i.jsxs)(n.a,{href:"/docs/learn-dot-ksm-bridge",children:["Kusama ",(0,i.jsx)(n.code,{children:"<->"})," Polkadot bridge"]}),", since both networks' parachains use\nSubstrate)."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Smart contracts"})," - If the chain is not on Substrate, you should have smart contracts on the\nnon-Substrate chain to bridge (e.g. ",(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"}),", Ethereum mainnet has a\nbridge smart contract that initiates Eth transactions based on incoming XCMP messages)."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Higher-order protocols"})," - If your chain does not support smart contracts (e.g. Bitcoin), you\nshould use ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XClaim"})," or similar protocols to bridge."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"On-chain bridge components are modules (usually pallets or smart contracts) deployed on the chain's\nruntime. Modules that track the finality of the source chain are required to be deployed on the\ntarget chain, while the modules that deal with cross-chain messaging need to be deployed on both\nsource and target chains."}),"\n",(0,i.jsx)(n.p,{children:"There are also on-chain components responsible for queuing messages at the source chain and\nreceiving the message proofs at the target chain. The messages are sent through a particular lane,\nwhere they are guaranteed to be received in the same order they are sent. On Bridge Hub, the\nmessages are in XCM format, and an XCM executor is used to dispatch them."}),"\n",(0,i.jsx)(n.h3,{id:"via-bridge-pallets",children:"via Bridge Pallets"}),"\n",(0,i.jsxs)(n.p,{children:["Operating a bridge between chains that finalize through GRANDPA consensus is straightforward. A\nGRANDPA light client of the source chain built into the target chain's runtime provides a \"source of\ntruth\" about the source chain's finality. For instance,\n",(0,i.jsx)(n.a,{href:"/docs/learn-system-chains#bridge-hub",children:"Bridge Hub"})," runs an on-chain light client of Kusama which uses\nGRANDPA consensus and infers the finality of all the transactions on Kusama and its parachains."]}),"\n",(0,i.jsx)(n.p,{children:"Receiving messages on Polkadot from an external, non-parachain blockchain is possible through a\nSubstrate pallet. The Substrate instance can then be deployed to Polkadot either as a system-level\nparachain (native extension to the core Polkadot software) or as a community-operated parachain."}),"\n",(0,i.jsxs)(n.p,{children:["An example of a bridge that would strictly use bridge pallets would be\n",(0,i.jsxs)(n.a,{href:"/docs/learn-dot-ksm-bridge",children:["the Kusama ",(0,i.jsx)(n.code,{children:"<->"})," Polkadot bridge"]}),", since both use parachains based on\nSubstrate."]}),"\n",(0,i.jsx)(n.p,{children:"For the standalone chains that will not have a parachain bridging module (non-Substrate), it will be\nnecessary to deploy bridge contracts."}),"\n",(0,i.jsx)(n.h3,{id:"via-smart-contracts",children:"via Smart Contracts"}),"\n",(0,i.jsxs)(n.p,{children:["Given the generality of blockchain platforms with Turing-complete smart contract languages, it is\npossible to bridge Polkadot and any other smart-contract-capable blockchain. For instance,\n",(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"})," uses the Polkadot Bridge Hub to run an on-chain light client of\nEthereum to infer the finality of transactions on the Ethereum chain. Running a GRANDPA light client\nthrough smart contracts on Ethereum is possible but expensive. Hence,\n",(0,i.jsx)(n.a,{href:"/docs/learn-consensus#bridging-beefy",children:"BEEFY consensus layer"})," sitting on top of GRANDPA enables a\ncost-effective solution for operating a trustless bridge with Ethereum and other protocols.\nTrustless bridges to chains like Cosmos, Avalanche, NEAR, etc., would require custom pallets to be\ndeployed on Bridge Hub."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["To learn more on how Bitcoin and Ethereum can cooperate and collaborate through Polkadot, check out\nthis explainer video ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=rvoFUiOR3cM",children:"here"})]})}),"\n",(0,i.jsx)(n.h3,{id:"via-higher-order-protocols",children:"via Higher-Order Protocols"}),"\n",(0,i.jsxs)(n.p,{children:["Higher-order protocols (like ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"}),") can be used to bridge\nbut should only be used when other options are not available. XCLAIM, in particular, requires any\nswappable asset to be backed by a collateral of higher value than the swappable assets, which adds\nadditional overhead."]}),"\n",(0,i.jsx)(n.p,{children:"An example of a network that would be well-suited for higher-order protocols would be Bitcoin, since\nit does not support smart contracts, and it's not based on Substrate."}),"\n",(0,i.jsx)(n.h4,{id:"bitcoin-bridge-xclaim---substrate---polkadot",children:"Bitcoin Bridge (XCLAIM <-> Substrate <-> Polkadot)"}),"\n",(0,i.jsxs)(n.p,{children:["The Interlay team has written a ",(0,i.jsx)(n.a,{href:"https://spec.interlay.io/",children:"specification"})," on a Bitcoin bridge that\nis based on the ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"})," design paper. The protocol enables a\ntwo-way bridge between Polkadot and Bitcoin. It allows holders of BTC to issue iBTC in Polkadot and\nholders of iBTC to redeem BTC on the Bitcoin chain."]}),"\n",(0,i.jsx)(n.p,{children:"The Bitcoin bridge, as documented in the specification, is composed of two logically different\ncomponents:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The XCLAIM component maintains all accounts that own iBTC."}),"\n",(0,i.jsx)(n.li,{children:"The BTC-Relay verifies the Bitcoin state when a new transaction is submitted."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"For full details on how it works, please refer to the specification."}),"\n",(0,i.jsxs)(n.p,{children:["There is now a\n",(0,i.jsx)(n.a,{href:"https://app.interlay.io/btc?tab=issue",children:"working implementation and mainnet bridge available"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"offchain-bridge-components",children:"Offchain Bridge Components"}),"\n",(0,i.jsx)(n.p,{children:"Offchain bridge components are separate processes called relayers. Relayers are connected both to\nthe source chain and target chain nodes. For instance, the task of relayer between chains that run\non GRANDPA consensus is to submit source chain GRANDPA justifications and their corresponding\nheaders to the Bridge GRANDPA Finality Pallet deployed at the target chain. For that, the relayer\nsubscribes to the source chain GRANDPA justifications stream and submits every new justification to\nthe target chain GRANDPA light client."}),"\n",(0,i.jsxs)(n.p,{children:["Messages between chains are relayed through the relayers, which involve messages delivery relay and\ndelivery confirmation relay. For more information on relayers and the Bridge Hub design, read\nthrough the\n",(0,i.jsx)(n.a,{href:"https://github.com/paritytech/polkadot-sdk/blob/master/bridges/docs/high-level-overview.md",children:"High-level bridge documentation on the Polkadot-SDK repository"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"bridge-comparison",children:"Bridge Comparison"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge",children:"Snowbridge"})," and ",(0,i.jsx)(n.a,{href:"/docs/learn-hyperbridge",children:"Hyperbridge"})," are two trustless\nbridges that connect Polkadot with other ecosystems. Here below is a main technical comparison\nbetween the two."]}),"\n",(0,i.jsx)(n.admonition,{title:"Tokens sent through different bridges are different",type:"danger",children:(0,i.jsxs)(n.p,{children:["Unless specific logic is implemented, WETH sent through Snowbridge cannot be sent back using\nHyperbridge, and ",(0,i.jsx)(n.em,{children:"vice versa"}),". ",(0,i.jsx)(n.strong,{children:"Sending tokens using different bridges might lead to loss of\nfunds."})]})}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Snowbridge"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Hyperbridge"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum only",(0,i.jsx)("sup",{children:"1"}),"."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Multichain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum light client on ",(0,i.jsx)(n.a,{href:"/docs/learn-system-chains#bridge-hub",children:"Bridge Hub System Chain"}),(0,i.jsx)("sup",{children:"2"})," and Polkadot light client on Ethereum smart contract."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Own parachain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-DOT",children:"DOT token"}),"."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Hyperbridge native token."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-snowbridge#random-sampling-beefy",children:"Random-sampling BEEFY"})," for prover."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Zero-knowledge Proofs."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Simple codebase but complex analysis by the verifier."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Complex codebase, but simple analysis by the verifier."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Low-spec hardware for prover, permissionless."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"High-spec hardware for prover, permissionless but somewhat permissioned due to the ZK-based nature."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Possible high-level decentralization for the prover."}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Prover decentralization possible but probably by removing dependency on ZK circuits through BLS (",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/BLS_digital_signature",children:"Boneh\u2013Lynn\u2013Shacham"}),") version of BEEFY and BLS precompiles on Ethereum."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Ethereum > Polkadot: In the range of ",(0,i.jsx)(n.a,{href:"https://app.snowbridge.network/status",children:"10-20 minutes"}),". Polkadot > Ethereum: High latency (half an hour) as two epochs are needed on Ethereum to achieve unpredictable randomness to update the Polkadot's state."]}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Ethereum > Polkadot: In the range of 10-20 minutes (to Polkadot, both bridges have the same latency). Polkadot > Ethereum: Low latency, 5-7 minutes on reference hardware."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Dependency on external library for BLS signature verification (",(0,i.jsx)(n.a,{href:"https://github.com/sigp/milagro_bls",children:"Milagro BLS"}),", used by Lighthouse, the Rust Ethereum consensus client)."]}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:["Dependency on external libraries due to ZK-based nature. Such libraries include ",(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2019/953.pdf",children:"PLONK"}),"."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"/docs/learn-xcm",children:"XCM"})," as a cross-chain message format."]}),(0,i.jsxs)(n.td,{style:{textAlign:"center"},children:[(0,i.jsx)(n.a,{href:"https://docs.hyperbridge.network/protocol/ismp",children:"ISMP"})," as a bridge integration protocol."]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Live."}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Live."})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)("sup",{children:"1"})," WETH sent through different bridges are different. Unless specific logic is\nimplemented, WETH sent through Snowbridge cannot be sent back using Hyperbridge.",(0,i.jsx)("br",{}),(0,i.jsx)("br",{})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)("sup",{children:"2"}),' Because Snowbridge is deployed on a system chain, Snowbridge WETH can be considered as\nthe "official" WETH on Polkadot (although this must not be interpreted as a positive sign for\nSnowbridge and negative sign for Hyperbridge).',(0,i.jsx)("br",{}),(0,i.jsx)("br",{})]}),"\n",(0,i.jsx)(n.h2,{id:"resources",children:"Resources"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.snowbridge.network/",children:"Snowbridge - a trustless, decentralized bridge between Polkadot and Ethereum"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/paritytech/parity-bridges-common",children:"Parity Bridges Common Resources"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/ChainSafe/ChainBridge",children:"Substrate/Ethereum Bridge"})," - ChainSafe and Centrifuge\nwere awarded a grant in W3F Grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a Substrate to Ethereum two-way bridge."]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.interlay.io/#//",children:"iBTC (Bitcoin <-> Polkadot Bridge)"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/bifrost-codes/bifrost",children:"EOS Bridge"})," - The Bifrost team was awarded a grant in\nW3F Grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a bridge to EOS."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/ChorusOne/tendermint-light-client",children:"Tendermint Bridge"})," - ChorusOne was awarded\na grant in\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a GRANDPA light client in Tendermint."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://app.interlay.io/btc?tab=issue",children:"Interlay BTC Bridge"})," - The Interlay team was awarded a\ngrant in W3F grants\n",(0,i.jsx)(n.a,{href:"https://medium.com/web3foundation/web3-foundation-grants-wave-5-recipients-2205f4fde096",children:"Wave 5"}),"\nto build a trust-minimized BTC bridge."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/chainx-org/ChainX/tree/master/xpallets/gateway/bitcoin",children:"ChainX BTC Bridge"})," -\nChainX has implemented a BTC to Substrate bridge for their parachain."]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://poa.network/",children:"POA Network"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://medium.com/giveth/ethereum-dapp-scaling-poa-network-acee8a51e772",children:"Case study"})," of POA\nNetwork's implementation of Parity's bridge chain solution."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/hicommonwealth/edgeth_bridge/",children:"Edgeth Bridge"})," - a bridge from Ethereum to\nEdgeware chain (a Substrate-based chain) is now defunct and not maintained, but it is a good\nexample."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2018/643.pdf",children:"XCLAIM"})," - XCLAIM is a framework for achieving trustless and\nefficient cross-chain exchanges using cryptocurrency-backed assets."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/celer-network/cBridge-contracts",children:"Celer cBridge"})," - a bridge to transfer assets\nfrom Ethereum & Binance Smart Chain to the Astar Polkadot EVM."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},3514:(e,n,t)=>{t.d(n,{A:()=>x});t(96540);var r=t(34164),i=t(26972),s=t(28774),a=t(53465),o=t(16654),l=t(21312),d=t(51107);const c={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var h=t(74848);function u(e){var n=e.href,t=e.children;return(0,h.jsx)(s.A,{href:n,className:(0,r.A)("card padding--lg",c.cardContainer),children:t})}function g(e){var n=e.href,t=e.icon,i=e.title,s=e.description;return(0,h.jsxs)(u,{href:n,children:[(0,h.jsxs)(d.A,{as:"h2",className:(0,r.A)("text--truncate",c.cardTitle),title:i,children:[t," ",i]}),s&&(0,h.jsx)("p",{className:(0,r.A)("text--truncate",c.cardDescription),title:s,children:s})]})}function p(e){var n,t,r=e.item,s=(0,i.Nr)(r),o=(t=(0,a.W)().selectMessage,function(e){return t(e,(0,l.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:e}))});return s?(0,h.jsx)(g,{href:s,icon:"\ud83d\uddc3\ufe0f",title:r.label,description:null!=(n=r.description)?n:o(r.items.length)}):null}function m(e){var n,t,r=e.item,s=(0,o.A)(r.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",a=(0,i.cC)(null!=(n=r.docId)?n:void 0);return(0,h.jsx)(g,{href:r.href,icon:s,title:r.label,description:null!=(t=r.description)?t:null==a?void 0:a.description})}function b(e){var n=e.item;switch(n.type){case"link":return(0,h.jsx)(m,{item:n});case"category":return(0,h.jsx)(p,{item:n});default:throw new Error("unknown item type "+JSON.stringify(n))}}function f(e){var n=e.className,t=(0,i.$S)();return(0,h.jsx)(x,{items:t.items,className:n})}function x(e){var n=e.items,t=e.className;if(!n)return(0,h.jsx)(f,Object.assign({},e));var s=(0,i.d1)(n);return(0,h.jsx)("section",{className:(0,r.A)("row",t),children:s.map((function(e,n){return(0,h.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,h.jsx)(b,{item:e})},n)}))})}},53465:(e,n,t)=>{t.d(n,{W:()=>d});var r=t(96540),i=t(44586),s=["zero","one","two","few","many","other"];function a(e){return s.filter((function(n){return e.includes(n)}))}var o={locale:"en",pluralForms:a(["one","other"]),select:function(e){return 1===e?"one":"other"}};function l(){var e=(0,i.A)().i18n.currentLocale;return(0,r.useMemo)((function(){try{return n=e,t=new Intl.PluralRules(n),{locale:n,pluralForms:a(t.resolvedOptions().pluralCategories),select:function(e){return t.select(e)}}}catch(r){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+r.message+"\n"),o}var n,t}),[e])}function d(){var e=l();return{selectMessage:function(n,t){return function(e,n,t){var r=e.split("|");if(1===r.length)return r[0];r.length>t.pluralForms.length&&console.error("For locale="+t.locale+", a maximum of "+t.pluralForms.length+" plural forms are expected ("+t.pluralForms.join(",")+"), but the message contains "+r.length+": "+e);var i=t.select(n),s=t.pluralForms.indexOf(i);return r[Math.min(s,r.length-1)]}(t,n,e)}}}},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var r=t(96540);const i={},s=r.createContext(i);function a(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccc1222e.0bb09ea0.js b/assets/js/ccc1222e.0bb09ea0.js new file mode 100644 index 000000000000..8289e8a9820d --- /dev/null +++ b/assets/js/ccc1222e.0bb09ea0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5702],{6295:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>n,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"build/build-open-source","title":"Open Source Stack","description":"Overview of the open source Polkadot/Kusama Tech Stack","source":"@site/../docs/build/build-open-source.md","sourceDirName":"build","slug":"/build-open-source","permalink":"/docs/build-open-source","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/build/build-open-source.md","tags":[],"version":"current","lastUpdatedBy":"github-actions[bot]","lastUpdatedAt":1734339537000,"frontMatter":{"id":"build-open-source","title":"Open Source Stack","sidebar_label":"Open Source Stack","description":"Overview of the open source Polkadot/Kusama Tech Stack","keywords":["open","source","development","code","resources","tools","apis"],"slug":"../build-open-source"},"sidebar":"docs","previous":{"title":"Explorer, Data, & Indexing Tools","permalink":"/docs/build-data"},"next":{"title":"Hackathons","permalink":"/docs/build-hackathon"}}');var h=s(74848),i=s(28453);const a={id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},n="Open Source Polkadot Stack ",c={},o=[{value:"About",id:"about",level:2},{value:"Layers of Polkadot Stack",id:"layers-of-polkadot-stack",level:2},{value:"Wallets",id:"wallets",level:3},{value:"User Interface",id:"user-interface",level:3},{value:"Tools, APIs, and Languages",id:"tools-apis-and-languages",level:3},{value:"ink! Smart Contracts",id:"ink-smart-contracts",level:3},{value:"Chains and Pallets",id:"chains-and-pallets",level:3},{value:"Host",id:"host",level:3},{value:"Network Maintenance Tools",id:"network-maintenance-tools",level:3},{value:"Signatures",id:"signatures",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Networking",id:"networking",level:3},{value:"Primitives",id:"primitives",level:3},{value:"Contributing",id:"contributing",level:2}];function l(t){const e={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...t.components};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(e.header,{children:(0,h.jsx)(e.h1,{id:"open-source-polkadot-stack-",children:"Open Source Polkadot Stack "})}),"\n",(0,h.jsx)(e.admonition,{title:"Do your research before using open-source tools",type:"caution",children:(0,h.jsxs)(e.p,{children:["The tools listed here are open-source and are linked directly to their source code. Before using these tools to build your projects, always ",(0,h.jsx)(e.a,{href:"/docs/how-to-dyor",children:"do your research"})," and be aware of ",(0,h.jsx)(e.a,{href:"/docs/learn-scams",children:"scams"}),"."]})}),"\n",(0,h.jsx)(e.p,{children:"This page aims to provide an overview of the open-source Polkadot Tech Stack."}),"\n",(0,h.jsxs)(e.p,{children:["This is a living document, and we rely on everyone to contribute and help maintain\nit. ",(0,h.jsx)(e.a,{href:"#contributing",children:(0,h.jsx)(e.strong,{children:"Please feel free to make edits and additions via pull requests"})}),". We\napologize if we missed your project!"]}),"\n",(0,h.jsx)(e.hr,{}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#about",children:"About"})}),"\n",(0,h.jsxs)(e.li,{children:[(0,h.jsx)(e.a,{href:"#layers-of-polkadot-stack",children:"Layers of Polkadot Stack"}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#wallets",children:"Wallets"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#user-interface",children:"User Interface"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#tools-apis-and-languages",children:"Tools, APIs, and Languages"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#ink-smart-contracts",children:"ink! Smart Contracts"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#chains-and-pallets",children:"Chains and Pallets"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#host",children:"Host"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#network-maintenance-tools",children:"Network Maintenance Tools"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#signatures",children:"Signatures"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#networking",children:"Networking"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#primitives",children:"Primitives"})}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#contributing",children:"Contributing"})}),"\n"]}),"\n",(0,h.jsx)(e.h2,{id:"about",children:"About"}),"\n",(0,h.jsxs)(e.p,{children:["The Polkadot Tech Stack is a subset of the Web 3.0 Tech Stack, which consists of the ",(0,h.jsx)(e.strong,{children:"open-source"}),"\ntechnologies contributing to and relying on ",(0,h.jsx)(e.a,{href:"https://polkadot.network/",children:"Polkadot"}),". It is meant to be used\nfor decentralized application (Dapp) development within numerous verticals, including DeFi, Gaming,\nProvenance and many others not pictured below."]}),"\n",(0,h.jsx)(e.pre,{children:(0,h.jsx)(e.code,{children:"|------|--------|------------|\n| DeFi | Gaming | Provenance |\n|______|________|____________|\n Dapps\n|--------------------------/-|\n| Explorers, Wallets / |\n|------------------------/---|\n| Tools, Apis, Languages/ |\n|----------------------/-----|\n| 2nd layer protocols / |\n|--------------------/-------|\n| Chains / other |\n|------------------/--- --|\n| *Polkadot* | tech |\n|------------------\\---------|\n| P2P, Crypto, Wasm \\ |\n|--------------------\\-------|\n"})}),"\n",(0,h.jsx)(e.h2,{id:"layers-of-polkadot-stack",children:"Layers of Polkadot Stack"}),"\n",(0,h.jsx)(e.p,{children:"In the below sections, you can find a list of different layers of the Polkadot Stack."}),"\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"Maintenance Status"}),":"]}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:"\ud83d\udfe2 Actively maintained"}),"\n",(0,h.jsx)(e.li,{children:"\ud83d\udfe1 Stale (no activity on the main branch for one month)"}),"\n",(0,h.jsx)(e.li,{children:"\u26aa Unmaintained (no activity on the main branch for more than three months)"}),"\n"]}),"\n",(0,h.jsx)(e.h3,{id:"wallets",children:"Wallets"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Web Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/Multix",children:"Multix"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkasafe/polkasafe-ui",children:"Polkasafe"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/apps",children:"polkadot-js/apps"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman-web",children:"Talisman Web Application"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/enkryptcom/mydotwallet",children:"mydotwallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subid",children:"Sub ID"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Primis-Labs/client",children:"Primis"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3finance/sakura",children:"Sakura"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/Web3Box-apps",children:"Web3Box"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CoongCrafts/coong-wallet",children:"Coong Wallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan-multisig-react",children:"Subscan Multisig UI - React"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan-multisig-ui",children:"Subscan Multisig UI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DoraFactory/dorafactory-multisig",children:"Dorafactory-Multisig"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/capi-multisig-app",children:"Capi Multisig App"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:["User-friendly Wallet based on the ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/recovery",children:"Recovery Pallet"}),", Web wallets focused on user-onboarding (e.g. using ",(0,h.jsx)(e.a,{href:"https://github.com/near/near-wallet",children:"localStorage"}),")"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Desktop Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-spektr",children:"nova-spektr"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/omni-desktop-prototype",children:"Omni desktop"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"Enterprise Wallets"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Browser Extensions"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman",children:"Talisman-Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubWallet-Extension",children:"SubWallet-Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/enkryptcom/enKrypt",children:"Enkrypt"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/extension",children:"Polkadot-JS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/PolkaGate/polkagate-extension",children:"PolkaGate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/trustwallet",children:"Trust Wallet Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainBridgeNetworkTeam/Doter",children:"Doter"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GetSpeckle/speckle-browser-extension",children:"Speckle OS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/kuma-wallet",children:"Kuma Cross-chain Wallet"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Sign-in with your Polkadot, Kusama, etc. account."})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Mobile Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-wallet-ios",children:"Nova Wallet iOS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-wallet-android",children:"Nova Wallet Android"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-signer",children:"Polkadot Vault"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/fearless-Android",children:"Fearless Wallet Android"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/fearless-iOS",children:"Fearless Wallet iOS"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/trustwallet",children:"Trust Wallet"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubWallet-Mobile",children:"SubWallet-Mobile"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Kalapaja/kampela-firmware",children:"Kampela"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/airgap-it/airgap-wallet",children:"AirGap"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Interstellar-Network/wallet-app",children:"Interstellar Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/luniehq/lunie",children:"Lunie"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkawallet-io/polkawallet-flutter",children:"Polkawallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/consenlabs/token-core",children:"imToken"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/stylo-app/stylo",children:"Stylo"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/fractapp/fractapp/",children:"Fractapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hypha-dao/hashed-wallet",children:"Hashed Wallet"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Burner Wallets/Faucet/Gifts"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/hamidra/dotdrop",children:"dotdrop"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/vue-polkadot/apps",children:"KodaDot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/astar-faucet-bot",children:"Astar Faucet Bot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/karooolis/sybil-resistant-substrate-faucet",children:"Generic sybil-resistant faucet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/StringNick/sybil-resistant-chat-bot-substrate-faucet",children:"sybil-resistant Chat Bot Faucet"})," ","\u2754"]}),(0,h.jsx)(e.td,{children:"Faucet (a sybil-resistant way to receive free tokens)"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Wallet Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/metamask-snap-polkadot",children:"Metamask-Snap by Chainsafe"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"CLI Wallet"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/yxf/subwallet",children:"Subwallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/canontech/proxy-hot-wallet",children:"Proxy-hot-wallet"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Hardware Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ZondaX/ledger-polkadot",children:"Ledger Polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-kusama",children:"Ledger Kusama"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-statemint",children:"Ledger Statemint"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-statemine",children:"Ledger Statemine"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Trezor"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"OAuth2-compatible Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/singkeo/dot-login",children:"DOT Login"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"user-interface",children:"User Interface"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Block Explorers"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/topmonks/calamar",children:"Calamar"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/explorer-api",children:"Polkascan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Colm3na/polkastats-backend",children:"Polkastats"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan",children:"Subscan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/statescan-v2",children:"Statescan"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/edgeware-builders/edgscan",children:"Edgscan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/epirus-substrate",children:"Sirato"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/ink-substrate-explorer-api",children:"ink! Explorer API"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/substats",children:"Substats"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hybrid-explorer/hybrid-dapp",children:"Hybrid Block Explorer"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"Mempool focused explorer (including parachain transaction)"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator Dashboards"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-telemetry",children:"Polkadot Telemetry"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/hashquark-io/polkacube-frontend",children:"Polkacube"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/buidl-labs/YieldScan",children:"YieldScan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot",children:"Hubble"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ArthurHoeke/cyclops",children:"Cyclops"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/web3go-xyz/web3go-xyz-v2",children:"Web3Go"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/MathCryptoDoc/insights-1kv",children:"1kv insights"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Node Explorers"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/protos-research/polkadot-node-explorer",children:"Polkadot Node Explorer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT Explorer"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/kodadot/nft-gallery",children:"NFT Explorer for Kusama & Polkadot"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance Dashboards"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/governance-ui",children:"Polkadot Delegation Dashboard"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/premiurly/polkassembly",children:"Polkassembly"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/dotreasury",children:"dotreasury"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/bright-tresury",children:"Bright Treasury"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/collaboration",children:"OpenSquare offchain voting"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/wpank/open-gov-insights",children:"OpenGov Insights"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/stake-plus/treasury-tracker",children:"Treasury Tracker"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/joepetrowski/opengov-cli",children:"OpenGov CLI"})," \ud83d\udfe1"]}),(0,h.jsxs)(e.td,{children:["UI for the Kusama and/or Polkadot treasury (see ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate/pull/5715",children:"bounty module"}),"), UI for Parachain Lease Offering (PLO)"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Staking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/staking-rewards-collector",children:"Staking Rewards Collector"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/jackson-harris-iii/staking-rewards-viewer",children:"Staking Rewards Viewer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/cryptolab-network/polkadot-staking-site",children:"Polkadot Staking Site"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-staking-dashboard",children:"Polkadot Staking Dashboard"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/James-Sangalli/dot-validator-selector",children:"Polkadot/Kusama Validator Selector"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/James-Sangalli/dot-staking-income",children:"Staking Income CSV Generator"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridge UI"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-bridges-ui",children:"Parity Bridges UI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nutbox-dao/donut-interface",children:"Donut Interface (Steem - Dot)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RostislavLitovkin/PlutonicationServer",children:"Plutonication"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Parachain/Crowdloan"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/jhonalino/parachains.network",children:"Parachains.Network"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/CrommVardek/polk-auction-ui",children:"PolkAuction"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/10clouds/crowdloan-template",children:"Crowdloan Front End Template"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hack-ink/slothunter/",children:"Slothunter"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identicon"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://polkadot.cloud/polkicon",children:"Polkicon"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/RidOne-technologies/polkadot-web-identicon",children:"PolkadotWebIdenticon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RidOne-technologies/polkadot-angular-identicon",children:"Polkadot Angular IdentIcon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Noc2/Bird-Identicon",children:"Bird Identicon"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Coretime"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LasticXYZ/LasticUI",children:"Lastic"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/RegionX-Labs/RegionX-Node",children:"RegionX"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://polkadot.cloud",children:"Polkadot Cloud"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tien/dot-console",children:"\u0110\xd3TConsole"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/KappaSigmaMu/ksm-app",children:"KappaSigmaMu Fratority"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/DAOsign/daosign-ink-js-sdk/tree/main",children:"DAOSign"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/quadratic-funding-webapp",children:"Quadratic Funding Webapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/polkawatch/polkawatch",children:"Polkawatch"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/bytepayment/bytepay",children:"Bytepay"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Delmonicos/charging-management-platform",children:"charging-management-platform"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/TDSoftware/subidentity-webapp",children:"subidentity-webapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/paid-qa/",children:"OpenSquare Paid QA"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CrossChainLabs-DOT/dotpulse-api",children:"DotPulse"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bsn-si/rubeus-smartcontract",children:"Rubeus Keeper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/justmert/eco-flow-frontend",children:"Polkaflow"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/chainviz",children:"ChainViz"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/fidi-tech/dotsight",children:"Dotsight"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://docs.sui.io/build/zk_login",children:"zkLogin"}),", Portfolio Viewer like Zapper or Zerion"]})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"tools-apis-and-languages",children:"Tools, APIs, and Languages"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Runtime/Parachain frameworks"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk",children:"Polkadot Blockchain SDK"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/gosemble",children:"Gosemble"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/subsembly",children:"Subsembly"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/parachain-utilities",children:"Parachain utilities"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gantree-io/gantree-core",children:"Gantree"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ideal-lab5",children:"Cryptex"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:["Tools to create parachains with other frameworks, like the ",(0,h.jsx)(e.a,{href:"https://github.com/cosmos/cosmos-sdk",children:"Cosmos SDK"})," or ",(0,h.jsx)(e.a,{href:"https://github.com/0xPolygon/cdk-validium-node",children:"Polygon CDK"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Client Libraries"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polkadot-api/polkadot-api",children:"Polkadot-API - Typescript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tien/reactive-dot",children:"Reactive DOT - Typescript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/capi",children:"Capi - Typescript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kodadot/packages/tree/main/sub-api",children:"sub-api"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/go-substrate-rpc-client",children:"Go"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_api_dotnet",children:".Net"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubstrateGaming/Substrate.NET.API",children:".NET Standard 2.0"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/SubstrateGaming/Substrate.NET.Toolchain",children:"Substrate .NET Toolchain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_api_cpp",children:"C++"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/finoabanking/substrate-c-tool",children:"C"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/hs-web3",children:"Haskell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/api",children:"Javascript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-api-sidecar",children:"Substrate API Sidecar - TypeScript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/py-substrate-interface",children:"Python"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkaj",children:"Java (+ Android)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/strategyobject/substrate-client-java",children:"Substrate Client Java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/scs/substrate-api-client",children:"Rust SCS"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/subxt",children:"Rust Parity (subxt)"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/philoniare/subxtpy",children:"subxtpy"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/trevor-crypto",children:"Rust pdotc"})," ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/php-substrate-api",children:"PHP (gmajor-encrypt)"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/neha0921/substrate-interface-package",children:"PHP (neha0921)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/frontier",children:"RPC-Ethereum"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/Substrate.swift",children:"Swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NodleCode/substrate-client-kotlin",children:"Kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/substrate-client-kotlin",children:"substrate-client-kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/substrate-client-swift",children:"substrate-client-swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rankanizer/polkadart",children:"Dart"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polywrap/integrations",children:"Substrate Core Polywrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/substrate-sdk-ios",children:"Substrate SDK iOS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/substrate-sdk-android",children:"Substrate SDK Android"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dedotdev/dedot",children:"Dedot - Typescript"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"RPC Gateway"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/subway",children:"Subway"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Substrate Contract clients"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/go-patract",children:"PatractGo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Easy Runtime Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/hack-ink/subalfred",children:"Subalfred"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/kaichaosun/substrate-stencil",children:"substrate-stencil"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kaichaosun/play-substrate",children:"Play Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/substrate-node-template",children:"substrate-node-template"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-playground",children:"Substrate Playground"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/as-substrate-runtime",children:"AssemblyScript Runtime Generation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/clearloop/sup",children:"Substrate Package Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/subsembly",children:"Subsembly: Framework for developing AssemblyScript Substrate Runtimes"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bkchr/diener",children:"dependency diener"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IDE Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/vscode-substrate",children:"Substrate Marketplace VS Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/everstake/vscode-plugin-substrate",children:"VS Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/everstake/atom-plugin-substrate",children:"Atom Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/zombienet-vscode-extension",children:"zombienet extension"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Runtime/Pallet Security"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/srlabs/substrate-runtime-fuzzer",children:"Substrate Runtime Fuzzer"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/shawntabrizi/substrate-toml-lint",children:"Substrate Toml Lint"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kframework/wasm-semantics",children:"K specifications"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSecurity/polpatrol",children:"PolPatrol - Polkadot Runtime Checker"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:["Automated Runtime checking tools, economic audit simulator such as ",(0,h.jsx)(e.a,{href:"https://gauntlet.network/",children:"gauntlet.network"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart Contract Languages"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"#ink-smart-contracts",children:"ink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ask-lang/ask",children:"Ask!"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/slickup/subscript",children:"Subscript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hyperledger-labs/solang",children:"Solang"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/eigerco/pallet-move",children:"pallet-move"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pontem-network/sp-move",children:"Move VM Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/neatcoin/neatcoin",children:"Move smart contract by Neatcoin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pepyakin/substrate-seal-ebpf",children:"eBPF Contracts Hackathon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/koute/polkavm",children:"PolkaVM"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{children:"Functional Programming Languages, other languages with developed toolchains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-introspector",children:"Polkadot introspector"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/subdirectory/subshell",children:"Subshell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/sc-simnode",children:"substrate-simnode"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/halva-suite/halva",children:"Halva"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/redspot",children:"Redspot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mixbytes/tank",children:"MixBytes Tank"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NikVolf/sub-flood",children:"sub-flood"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-debug-kit",children:"Substrate debug-kit"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/JesseAbram/asset_cli_tool",children:"Asset CLI tool"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/JesseAbram/unfinished_testing_tool",children:"sub_crash"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chevdor/subwasm",children:"subwasm"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ascjones/subsee",children:"subsee"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-lab",children:"polkadot-lab"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dwellir-public/rpc-perf/",children:"RPC-perf"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Static Analysis"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/KaiserKarel/substrace",children:"Substrace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/simon-perriard/saft",children:"Static analyzer for Substrate FRAME's pallets"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CoinFabrik/scout-audit",children:"CoinFabrik Scout"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Formal Verification"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kframework/wasm-semantics",children:"K specifications"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testnet"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/zombienet",children:"Zombienet"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/chopsticks",children:"Chopsticks"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-launch",children:"Polkadot Launch"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/koute/polkadot-starship",children:"polkadot-starship"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/maxsam4/fork-off-substrate",children:"Fork off Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/try-runtime-cli",children:"try-runtime-cli"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/parachain-launch",children:"Parachain Launch"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Zeeve-App/larch",children:"Larch Zombienet GUI"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Benchmarking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/utils/frame/benchmarking-cli",children:"Benchmarking CLI"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-stps",children:"Polkadot sTPS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/0xekez/clockchain",children:"Clockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/shawntabrizi/substrate-graph-benchmarks",children:"Substrate Graph Benchmarks"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking",children:"ink! & pallet benchmarking template"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/smart-bench",children:"smart-bench"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Blockchain Indexing Engine"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/subsquid/squid-sdk",children:"Squid SDK"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/hybrid-explorer/hybrid-indexer",children:"Hybrid Indexer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-archive",children:"Substrate Archive"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_psql_indexer",children:"PSQL Indexer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playzero/substrate-graph",children:"Substrate Graph"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OnFinality-io/subql",children:"Subquery"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/p2p-org/polkadot-profit-transformer",children:"MBELT3"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kodadot/stick",children:"stick"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Infra3-Network/hyperdot",children:"Hyperdot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Blockchain/Event Monitoring"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/guardian",children:"Web3 Guardian"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/HugoByte/aurras-event-manager",children:"Aurras Event Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hicommonwealth/chain-events",children:"@commonwealth/chain-events"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/massbitchain",children:"Massbit"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kianenigma/polkadot-basic-notification",children:"Polkadot Basic Notifications"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sodazone/ocelloids",children:"Ocelloids"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TrackingChains/TrackingChain",children:"Tracking Chain"})," \u26aa,"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PolkadotPlay/Polkadot.Unity.SDK",children:"Polkadot SDK for Unity"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dodorare/crossbow",children:"Crossbow"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://assetstore.unity.com/packages/decentralization/infrastructure/polkadot-sdk-for-unity-273535",children:"Unity Asset Store"}),", ",(0,h.jsx)(e.a,{href:"https://amethyst.rs/",children:"Amethyst"})," + ",(0,h.jsx)(e.a,{href:"https://substrate.dev/",children:"Substrate"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"No-code Platforms"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/NovaBloq/Bubble-Plugin-Polkadot.js",children:"EzCode's Polkadot-JS plugin on Bubble.io"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Blackprint/nodes-polkadot.js",children:"Blackprint Visual Programming Polkadot-JS module"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subrelay/interface",children:"SubRelay"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/tien/dot-connect",children:"DOT Connect"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman-connect",children:"Talisman Connect"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubConnect",children:"SubWallet-SubConnect"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nova-wallet/metadata-portal",children:"Metadata Portal"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/Tesseract.rs",children:"Tesseract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/walletconnect-v2-monorepo",children:"WalletConnect"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/BitGo/BitGoJS/tree/master",children:"BitGoJS"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"XCM"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/trappist",children:"Trappist"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Moonsong-Labs/xcm-tools",children:"XCM-tools"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/substrate-api-rpc",children:"XCM-tools Golang"})," \u26aa,",(0,h.jsx)(e.a,{href:"https://github.com/paraspell/xcm-tools",children:"ParaSpell XCM Tools"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/t3rn/xbi",children:"XBI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/xcm-sdk",children:"XCM TS/JS SDK"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/XcmSend/app",children:"XCMSend"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/sodazone/xcm-monitoring/",children:"XCM Monitoring Server"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/moonbeam-foundation/xcm-sdk",children:"Moonbeam Foundation XCM-SDK"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/asset-transfer-api",children:"asset-transfer-api"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/txwrapper-core",children:"txwrapper-core"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/open-web3.js",children:"open-web3 JS library"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CycanTech/GVM-Bridge",children:"VM-Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/srtool",children:"srtool"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/chevdor/srtool-cli",children:"srtool-cli"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-tip-bot",children:"Substrate Tip Bot"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/syntifi/ori",children:"ORI (Onchain Risk Intelligence)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/albertov19/PolkaTools",children:"PolkaTools"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-scripts",children:"polkadot-scripts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/virto-network/sube",children:"Sube"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/data-store-sidecar",children:"data-store-sidecar"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SugarFunge/sugarfunge-node",children:"SugarFunge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/second-state/substrate-wasmedge",children:"substrate-wasmedge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/eightfish-org/eightfish",children:"EightFish"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/sandoxio/sandox",children:"Sandox"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/apk-verifier/",children:"APK verifier"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"ink-smart-contracts",children:"ink! Smart Contracts"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Core Libraries"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink",children:"ink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/cargo-contract",children:"cargo-contract"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts",children:"pallet-contracts"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Local Nodes"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-contracts-node",children:"substrate-contracts-node"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/swankyhub/swanky-cli",children:"Swanky"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart Contract Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/drink",children:"DRink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/contracts-ui",children:"contracts-ui"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Smart-Beaver",children:"SmartBeaver"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/h4nsu/openbrush-contracts",children:"OpenBrush"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/727-Ventures/sol2ink",children:"Sol2Ink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/protofire/polkadot-contract-wizard",children:"Polkadot Contract Wizard"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/ink-wrapper",children:"ink-wrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink-playground",children:"ink-playground"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockchain-it-hr/ink-remix-plugin",children:"ink! Remix Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/standardweb3/signac/",children:"Signac"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/avirajkhare00/ink-boxes/",children:"ink!-boxes"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/avirajkhare00/ink-wizard",children:"ink!-smart-contract-wizard"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Security & Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink-waterfall",children:"ink! Waterfall"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/ink-verifier-image",children:"Verifier Image for ink!"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Brushfam/patron-backend/",children:"Patron"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/inkscopexyz/inkscope-fuzzer",children:"Inkscope Fuzzer"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Frontend Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/scio-labs/inkathon",children:"ink!athon Boilerplate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/useink",children:"useink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/scio-labs/use-inkathon",children:"useInkathon"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/subsquid/squid-sdk/tree/master/substrate/ink-typegen",children:"ink-typegen"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Brushfam/typechain-polkadot",children:"Typechain Polkadot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IDE Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ink-analyzer/ink-analyzer",children:"ink! Analyzer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridges"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/dantenetwork/protocol-stack-for-ink",children:"Dante Protocol"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DeFi"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/pendulum-ink-wrapper",children:"Pendulum-Ink-Wrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RottenKiwi/Panorama-Swap-INK-SC",children:"Panorama Swap"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Juminstock/ink_bank",children:"ink_bank"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/realnimish/polkadot-amm",children:"Polkadot AMM"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/veradefi/defi",children:"Vera"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nsure-tech/dot-contract",children:"Nsure Insurance"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/CycanTech/ELC",children:"Everlasting Cash"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Coinversation/coinpro",children:"Coinversation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zenlinkpro/zenlink-dex-contract",children:"zenlink-dex-contract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ReserveLabs/AlgoCash",children:"AlgoCash"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"New seigniorage-style stable coins"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/OpenEmojiBattler/open-emoji-battler",children:"Open Emoji Battler"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs",children:"NewOmega"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DAO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/SyncraDAO/modular-dao",children:"SyncraDAO"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/subDAO-contracts",children:"subDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1",children:"RainbowDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Mangoboxlabs/Mangoboxink",children:"MangoBox"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Mangoboxlabs/MangoSaleV2",children:"MangoSale"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identity/DID"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/TheDotflow",children:"Dotflow"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Oracles"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/diadata-org/dia-wasm-oracle",children:"DIA WASM Oracle"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Spam Protection"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/prosopo/captcha",children:"Prosopo"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/AbaxFinance/Governance",children:"Abax Governance"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ArtZero-io/Contracts",children:"ArtZero"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/pnsproject/ink-aa",children:"Polkadot Smart Account"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/swankyhub/magink-dapp",children:"magink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/ink-test-contracts",children:"ink-test-contracts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/agryaznov/candle-auction-ink",children:"Candle Auctions"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubDAO-Network/polkasign-contract",children:"polkasign-contract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bsn-si/ocex-cli",children:"OCEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RoloiMoney/roloi-polkadot-w3f-grant",children:"Roloi"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadrys/openPayroll",children:"OpenPayroll"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/InkSmartContract/BlockchainFoodOrder",children:"BlockchainFoodOrder"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"chains-and-pallets",children:"Chains and Pallets"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Scalable Transactions"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/perun-network/perun-polkadot-pallet",children:"Perun channels"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/perun-network/perun-polkadot-demo",children:"CLI demo of Perun"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/Astar",children:"Astar"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/celer-network/cChannel-substrate",children:"Celer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GunClear/Gunero",children:"Gunclear"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/BCS-Labs/tpscore-etl-system",children:"TPScore"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/auguth/pocs",children:"proof-of-contract-stake"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"roll-ups, DAG-based consensus mechanisms, side chains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridges and Interoperability"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/interlay/interbtc",children:"interBTC"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/dkg-substrate",children:"DKG Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sygmaprotocol/sygma-substrate-pallets",children:"Sygma"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bifrost-finance/bifrost-eos-relay",children:"EOS by Bifrost"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-bridge",children:"POA - Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/akropolisio/POC-polkadai-bridge",children:"Substrate - Ethereum DAI Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-bridge-relay",children:"Substrate - Substrate Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chainx-org/ChainX",children:"BTC by ChainX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChorusOne/wormhole-bridge",children:"Cosmos-Substrate bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/octopus-network/substrate-ibc",children:"Substrate IBC Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Snowfork/polkadot-ethereum",children:"Polkadot Ethereum Bridge"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/darwinia",children:"Darwinia"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/spacewalk",children:"Spacewalk: a Stellar bridge"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/filecoindot",children:"Filecoindot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/axelar-cgp-substrate/tree/main",children:"Axelar-Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/hyperbridge",children:"Hyperbridge"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/t3rn/t3rn",children:"t3rn"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{children:"ZCash"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Privacy"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LayerXcom/zero-chain",children:"ZeroChain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/xx-labs/xxchain",children:"xx network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Phala-Network/phala-blockchain",children:"pLibra (Phala Network)"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/automata-network/automata",children:"Automata Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zero-network/zero",children:"Zero Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/appliedblockchain/silentdata-polkadot",children:"Silent Data"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/anoma/masp",children:"Multi-Asset Shielded Pool (MASP)"})," , ",(0,h.jsx)(e.a,{href:"https://arxiv.org/pdf/2009.01020.pdf",children:"Zkay"}),", ",(0,h.jsx)(e.a,{href:"https://eprint.iacr.org/2018/962.pdf",children:"Zexe"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"ZKP"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/zeropoolnetwork/zeropool-substrate-groth16-example",children:"ZeroPool"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/megaclite",children:"Megaclite"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/zkmega",children:"zkMega"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/plonk",children:"PLONK for Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/protocol-substrate",children:"Webb Anchor Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/zk-snarks-with-substrate/",children:"zk-SNARKs tutorial"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Zkvers/substrate-zk",children:"substrate-zk"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/hyperfridge-r0",children:"hyperfridge-r0"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cyborg-Network/cyborg-parachain/tree/master",children:"Cyborg Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Manta-Network/Manta",children:"Manta"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"TEE"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Acurast/acurast-core",children:"Acurast"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/integritee-network/worker",children:"Integritee"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/scs/substraTEE",children:"substraTEE"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/wetee-dao/chain",children:"WeTEE"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/keysafe-protocol/keysafe-app",children:"Keysafe Protocol"})," \u26aa"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DeFi"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/kapilsinha/privadex",children:"PrivaDEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/uinb/fusotao",children:"Fusotao"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/reef-defi/reef-chain",children:"Reef"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Diora-Network/Diora",children:"Diora"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/pendulum",children:"Pendulum Chain"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/compound-finance/gateway",children:"Compound Gateway"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/parallel-finance/parallel",children:"Parallel Finance"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/PINT",children:"PINT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/laminar-protocol/laminar-chain",children:"Laminar Chain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/Acala",children:"Acala"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/centrifuge-chain",children:"Centrifuge"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/stafiprotocol/stafi-node",children:"Stafi"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/y2labs-0sh/definex",children:"Definex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAXFoundation/parrot",children:"OAX Foundation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/alexxuyang/substrate-dex",children:"Cybex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zenlinkpro/pallet-zenlink",children:"Zenlink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/lsaether/pallet-swaps",children:"Swaps Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Polkadex-Substrate/Polkadex/tree/master",children:"Polkadex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subdarkdex/subdex-parachain",children:"SubDEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/hydration-node",children:"Hydration"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/apopiak/stablecoin",children:"Substrate Stablecoin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/digitalnativeinc/standard-substrate",children:"Standard protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sora-xor/sora2-network",children:"Polkaswap"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/equilibrium-eosdt/equilibrium-curve-amm",children:"Curve AMM"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/konomi-network/cumulus/",children:"Konomi Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nutsfinance/stable-asset",children:"Stable Asset"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/atscaletech/libra",children:"Libra Payment"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mangata-finance/mangata-node",children:"Mangata"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tidelabs/tidechain",children:"Tidechain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/Basilisk-node",children:"Basilisk"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/PolymeshAssociation/Polymesh",children:"Polymesh"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/bifrost-io/bifrost",children:"Bifrost"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/clover-network/clover",children:"Clover"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ComposableFi/composable",children:"Composable Finance "})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/OmniBTC/PSC",children:"OmniBTC"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Polimec/polimec-node",children:"Polimec"})," \ud83d\udfe1"]}),(0,h.jsxs)(e.td,{children:["DEX with privacy and confidentiality features such as those found in a ",(0,h.jsx)(e.a,{href:"https://en.wikipedia.org/wiki/Dark_pool",children:"dark pool"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart contract chains"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PureStake/moonbeam",children:"moonbeam"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Magport/Magnet",children:"Magnet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/aleph-node",children:"Aleph-node"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/hicommonwealth/edgeware-node",children:"Edgeware"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ParaState/substrate-ssvm-node",children:"ParaState"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gear-tech/gear",children:"gear"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/cennznet/cennznet",children:"CENNZnet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/skyekiwi/skyekiwi-network",children:"SkyeKiwi"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/OAK-blockchain",children:"OAK-blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/ice-substrate",children:"ICE Blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OmniBTC/PSC",children:"Polkadot Smart Chain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/keep-starknet-strange/madara",children:"Madara - Cairo/Starknet"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"smart contract chains with novel security approaches, smart contract chains based on existing toolchains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Oracle"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/tellor-io/tellor-pallet",children:"Tellor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle",children:"Laminar"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/smartcontractkit/chainlink-polkadot",children:"Chainlink-polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/aresprotocols/ares",children:"Ares Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Kylin-Network/kylin-node",children:"Kylin Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/interlay/interbtc-clients/tree/master/oracle",children:"interbtc-clients oracle"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/anonima",children:"Anonima"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SaaS3-Foundation/dRuntime-fat",children:"SaaS3"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tellor-io/tellor-parachain-contracts",children:"Tellor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/diadata-org/bridgestate-ocw",children:"Bridgestate Oracle"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identity/DID"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/parami-foundation/parami-blockchain",children:"Parami"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/litentry/litentry-parachain",children:"Litentry"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/pallet-did",children:"pallet-did"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/prasad-kumkar/dot-id",children:"dot-id"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IoT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/NodleCode/chain",children:"Nodle"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/DataHighway-DHX/node",children:"MXC/DataHighway"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/peaqnetwork/peaq-network-node",children:"peaq-network-node"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Verifiable Claims"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/KILTprotocol/kilt-node",children:"KILT"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/docknetwork/dock-substrate",children:"Dock"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Supply chain"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/digicatapult/dscp-node",children:"DSCP Node"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Health care"}),(0,h.jsx)(e.td,{}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Music Industry"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Allfeat/Allfeat",children:"Allfeat Network"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Data Availability"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/availproject/avail",children:"Avail"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ZeroDAO/melodot",children:"Melodot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Social Networking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/frequency-chain/frequency",children:"Frequency"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/social-network/blockchain",children:"Social Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subsocial-parachain",children:"SubSocial"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ZeroDAO/ZeroDAO-node",children:"ZeroDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/myriadsocial/myriad-node",children:"Myriad Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/randombishop/wika_etl",children:"Wika Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/listenofficial/listen-parachain",children:"Listen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tribal-protocol/tribal_contract",children:"Tribal Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rust-0x0/hex-space-protocol-substrate",children:"Five Degrees on Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/acuity-social/acuity-substrate",children:"Acuity Social"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Private instant messenger that uses on-chain identity"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance/DAO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/aisland-dao/aisland-node/tree/main",children:"Aisland Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hashed-io/hashed-substrate",children:"Hashed Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sunshine-protocol/sunshine-bounty",children:"Sunshine DAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NucleiStudio/governance-os",children:"Governance OS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/idavollnetwork/idavoll",children:"Idavoll Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DoraFactory/Substrate-Moloch-V2",children:"Substrate Moloch"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Qrucial/QRUCIAL-DAO",children:"QRUCIAL-DAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sctllabs/societal-node",children:"Societal"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/daos-org/daos",children:"DAOs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/amiyatulu/shivarthu/",children:"Shivarthu"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/faterium",children:"Faterium"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/decentration/apps",children:"Supersig"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/deep-ink-ventures/genesis-dao-node",children:"GenesisDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dao-entrance/dao-entrance-node",children:"DAO Entrance"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/liberland/liberland_substrate",children:"Liberland"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/consul/consul",children:"Consul"})," - Open Government and E-Participation Web Software"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Prediction Markets and Futarchy"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/zeitgeistpm/zeitgeist",children:"Zeitgeist"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/XPredictMarket/NodePredict",children:"X Predict Market"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Messaging"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/validitylabs/HOPR-PL-Substrate",children:"HOPR"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chainify/nolik",children:"Nolik"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Uke-Messaging/uke-pallet",children:"Uke"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Belsoft-rs/diffychat-pallet",children:"Diffy Chat"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/fennelLabs/Fennel-Protocol",children:"Fennel Protocol"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"File Storage, Cloud"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subsocial-offchain",children:"Subsocial-Offchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playproject-io/datdot",children:"DatDot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/crustio/crust",children:"Crust Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/rs-ipfs/offchain-ipfs-manual",children:"offchain::ipfs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/canyon-network/canyon",children:"Canyon Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cumulus2021/cess",children:"CESS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/cess-proving-system",children:"CESS Proving Subsystem"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/ideal-lab5/iris",children:"Iris"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/fmd-cess",children:"fmd-cess"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw",children:"IPFS Frame V3"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/threefoldtech/tfchain",children:"Threefold Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Apron-Network/apron-node",children:"Apron"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/TDSoftware/substrate-ipfs",children:"IPFS Utilities"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/dinfra/dinfra",children:"DINFRA"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Name Service"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/xaya/substrate-names",children:"Substrate Names"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hskang9/substrate-name-service",children:"ENS on Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pnsproject/pns-pallets",children:"PNS-Pallets"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/HeisenbergLin22/Faceless_milestone2_delivery",children:"Faceless"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ff13dfly/Anchor",children:"Anchor"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/bit-country/Bit-Country-Blockchain",children:"Bit.country"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubGame-Network/subgame-network",children:"SubGame"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playzero/subzero",children:"subzero"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3gamesofficial/web3games-blockchain",children:"Web3Games"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ajuna-network/ajuna-pallets",children:"Ajuna Pallets"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/cryptoviet/gafi",children:"Gafi Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/asylum-space/asylum-item-nft",children:"Asylum"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/3Dpass/3DP",children:"3DPass"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polketio/toearnfun_flutter_app",children:"Polket"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Computation/AI"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Deitos-Network/deitos-ip",children:"Deitos Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DeepBrainChain/DeepBrainChain-MainChain",children:"DeepBrain Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/anudit/cerebrum",children:"AI Infrastructure on Blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OriginTrail/neuroweb",children:"NeuroWeb"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Enable specific use-cases"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/deep-ink-ventures/pallet_hookpoints",children:"pallet-hookpoints"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/substrate-node-robonomics",children:"Robonomics"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/UniversalDot/pallets",children:"UniversalDOT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/EvercityEcosystem/evercity-chain",children:"Evercity Sustainable Finance Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/logion-network/logion-node",children:"logion"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Me-Protocol/rusty-protocol-v0.1/",children:"Me Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/QSTN-US/Polkadot-QSTN-v1/",children:"QSTN"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subcoin-project/subcoin",children:"Subcoin"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AventusProtocolFoundation/avn-parachain",children:"Aventus"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/capsule-corp-ternoa/chain",children:"ternoa"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/danforbes/pallet-nft",children:"FRAME Pallet: NFTs for Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/UniqueNetwork/unique-chain",children:"Unique NFT Parachain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets",children:"DNFT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rmrk-team/rmrk-substrate",children:"RMRK-Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Popular-Coding/nt-nft",children:"NT-NFTs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GreenLemonProtocol/dksap-polkadot",children:"Green Lemon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/Basilisk-node",children:"Basilisk"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/freeverseio/laos",children:"LAOS"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Randomness"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/substrate/tree/randomness-beacon",children:"DKG and Randomness Beacon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/random-meat/drand-substrate-client",children:"drand-substrate-client"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Licensing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/anagolay/anagolay-chain",children:"Anagolay Network"})," ","\u2754"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Banking Integration"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/element36-io/ebics-java-service",children:"FIAT on-off-ramp"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Crowdfunding"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ImbueNetwork/imbue",children:"Imbue Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zhangjiannan/QFgrant",children:"Quadratic Funding pallet by Dora"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/quadratic-funding-pallet/tree/master",children:"Quadratic Funding pallet by OAK"})," \u26aa"]}),(0,h.jsx)(e.td,{children:(0,h.jsx)(e.a,{href:"https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413",children:"Minimum Anti-Collusion Infrastructure (MACI)"})})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Collection of Pallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/open-runtime-module-library",children:"Substrate Open Runtime Module Library"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/warehouse",children:"warehouse"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/InvArch/InvArch-Frames",children:"InvArch FRAME Pallet Library"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Marketplaces"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/WowLabz/dot-marketplace-v2/tree/Phase3_Milestone3",children:"Dot Marketplace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hashed-io/hashed-substrate/tree/main/pallets/gated-marketplace",children:"Gated Marketplace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Popular-Coding/ventur",children:"Ventur"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RELAI-Network/futur-protocol",children:"Futur Protocol"})," ","\u2754"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Carbon Credits"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/bitgreen/bitg-node",children:"BitGreen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/EvercityEcosystem/carbon-assets",children:"Carbon Assets Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SequesterChain/pallets",children:"Sequester Pallets"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"UTXO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Off-Narrative-Labs/Tuxedo",children:"Tuxedo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Moonsong-Labs/moonkit",children:"Moonkit"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/substrate-account-filter",children:"Substrate Account Filter"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opentensor/subtensor",children:"Subtensor"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AdMetaNetwork/admeta",children:"AdMeta"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chocolatenetwork/chocolate-node",children:"Chocolate Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/virto-network/virto-node",children:"Virto Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/substrate-validator-set",children:"Substrate Validator Set"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DEIPworld/deip-node",children:"DEIP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/debionetwork/debio-node",children:"DeBio"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mathwallet/MathChain",children:"MathChain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/encointer/encointer-node",children:"encointer"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/grasslandnetwork/substrate_node",children:"Grassland"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rusty-crewmates/substrate-tutorials",children:"Substrate-Tutorials"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Fair-Squares/fair-squares",children:"Fair Squares"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/totem-tech/totem",children:"Totem Live Accounting"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/herou/EscrowPallet",children:"Escrow Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NexTokenTech/TREX",children:"TREX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/relationlabs/Relation-Graph",children:"Relation Graph"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gertt/Invoice",children:"Decentralized Invoice"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/redstone-network/redstone-node",children:"Redstone Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/WunderbarNetwork/access-control",children:"Access Control Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant",children:"Omniverse DLT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/substrate-ismp",children:"ISMP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/xcmp_prototype_playground",children:"XCMP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dhiway/cord",children:"CORD Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/educhain",children:"Educhain"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Decentralized review/reputation system"})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"host",children:"Host"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Rust"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate",children:"Substrate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/cumulus",children:"Cumulus"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"C++"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/kagome",children:"Kagome"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/mayon",children:"Mayon"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Go"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/gossamer",children:"Gossamer"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Java"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/Fruzhin",children:"Fruzhin"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/java-host-research",children:"Java Host Research"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"AssemblyScript"}),(0,h.jsx)(e.td,{}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Light Client"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/smol-dot/smoldot",children:"smoldot"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-connect",children:"Substrate Connect"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/eqlabs/polkadot-light-client",children:"C++ Polkadot Light Client"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/polkadot-conformance",children:"Polkadot Conformance"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sigp/polkafuzz",children:"Polkafuzz"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"network-maintenance-tools",children:"Network Maintenance Tools"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Secure validator setup"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polkachu/polkadot-validator",children:"Polkadot Validation Node Ansible Setup"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-validator-setup",children:"W3F Polkadot Validator Setup"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Nexus2k/polkadot-ansible",children:"polkadot-ansible"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"High availability setup"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/luguslabs/archipel",children:"Archipel"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/protofire/polkadot-failover-mechanism",children:"Polkadot Failover Mechanism"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Datagen-Project/Datagen-Substrate-Grant",children:"Datagen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/substrate-raft",children:"High Availability Validator Setup"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Load Balanced Endpoints"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/insight-w3f/terragrunt-polkadot",children:"terragrunt-polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sudoblockio/substrate-meta",children:"Geometry Labs' Substrate Meta repo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Deployment Tools"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Blockdaemon/bpm-sdk",children:"Polkadot Package Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/akropolisio/polkahub-monorepo",children:"PolkaHub"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AvadoDServer/AVADO-DNP-Polkadot-custom",children:"Avado"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-deployer",children:"Polkadot Deployer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/for-parity-with-love/unified-collator-node-deployment",children:"Unified Collator Deployment"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator monitoring"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/turboflakes/one-t",children:"ONE-T"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/subvt-backend",children:"SubVT"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/SimplyVC/panic",children:"P.A.N.I.C."})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/polkalert",children:"Polkalert"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3",children:"B-Harvest"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/stakezone/nmonpolkadot",children:"nmonpolkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ironoa/polkadot-k8s-monitor",children:"Polkadot-K8s-Monitor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-watcher",children:"Polkadot-Watcher"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot",children:"1KV Telegram Bot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator payout management"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Colm3na/substrate-auto-payout",children:"Substrate validator auto payout"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-payouts",children:"Polkadot Payouts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/emostov/staking-payouts",children:"staking-payouts CLI"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/stakelink/substrate-payctl",children:"Payctl"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/turboflakes/crunch",children:"crunch"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Staking Miner"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/staking-miner-v2",children:"Staking Miner v2"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Nominator Tools"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/miepsik/validators_selection",children:"Validator Selection"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/filippoweb3/polkanalyzer",children:"Polkanalyzer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/filippoweb3/polkanalyzer-app",children:"Polkanalyzer-app"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"signatures",children:"Signatures"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"SR25519"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/schnorrkel",children:"rust"})," \u26aa(contains partial bindings for C, JavaScript, and Python), ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/sr25519-dotnet",children:".Net bindings"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/sr25519",children:"C"})," \u26aa",(0,h.jsx)(e.em,{children:"(old)"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/TerenceGe/sr25519-donna",children:"C"})," \u26aa",(0,h.jsx)(e.em,{children:"(new)"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/soramitsu-sr25519-crust",children:"C/C++"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/sr25519_dotnet",children:"C#"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/go-schnorrkel",children:"Go"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/debuggor/schnorrkel-java",children:"java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/sr25519-bindings",children:"PHP"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Signature Aggregation"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/apk-proofs",children:"apk-proofs"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Distributed key generation (DKG) or management"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/isislovecruft/frost-dalek",children:"keygen.rs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/sword",children:"Secure Wallet Origin Distribution (SWORD)"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator HSMs"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Zondax/buildroot-zondax",children:"Zondax Remote Signer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"MPC"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/orochi-network/orochi-network.github.io",children:"Orochi Network"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"consensus",children:"Consensus"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"PoC"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/subspace/substrate",children:"Spartan"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"PoW"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/pow",children:"PoW consensus for Substrate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kulupu/kulupu/tree/master/pow",children:"RandomX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow",children:"Sha3 PoW"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Block production"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/babe",children:"BABE"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/aura",children:"Aura"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Finality"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/grandpa",children:"GRANDPA"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/AlephBFT",children:"AlephBFT"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PureStake/nimbus",children:"Nimbus: Upgradeable consensus framework"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"networking",children:"Networking"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"SCALE Codec"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-scale-codec",children:"Rust"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-scale-codec-ts",children:"TypeScript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/py-scale-codec",children:"Python"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/gossamer/tree/development/pkg/scale/",children:"Golang Chainsafe"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/scale.go",children:"Golang Itering"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/MatthewDarnell/cScale",children:"C"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/scale-codec-cpp",children:"C++"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/api",children:"JavaScript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/as-scale-codec",children:"AssemblyScript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/hs-web3/tree/master/packages/scale/src/Codec",children:"Haskell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkaj",children:"Java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/scale.rb",children:"Ruby"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nbltrust/dart-scale-codec",children:"Dart"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/swift-scale-codec",children:"Swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/scale-codec-swift",children:"scale-codec-swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/scale-codec-kotlin",children:"scale-codec-kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/php-scale-codec",children:"PHP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/scale-codec-js-library",children:"JavaScript by Soramitsu"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/scale-codec-comparator",children:"Scale Codec Comparator"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/darwinia-messages-sol/blob/master/contracts/utils/contracts/ScaleCodec.sol",children:"ScaleCodec.sol by Darwinia"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Snowfork/snowbridge/blob/main/core/packages/contracts/contracts/ScaleCodec.sol",children:"ScaleCodec.sol by Snowfork"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/arijitAD/dotscale",children:"Dotscale"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Networking Framework"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/libp2p/libp2p",children:"libp2p"})," \u26aa",(0,h.jsx)(e.a,{href:"https://github.com/algorealmInc/SwarmNL",children:"SwarmNL"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DHT Crawler"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/atredispartners/dht-crawler-polkadot",children:"Go"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkabot",children:"Kotlin"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"RPC Tor-like access"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Evanesco-Labs/WhiteNoise.rs",children:"WhiteNoise"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"primitives",children:"Primitives"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Storage"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/frisitano/merkle-tree-db",children:"Merkle Tree DB"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Merkle Proofs"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/solidity-merkle-trees",children:"Solidity Trie Verifier"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h2,{id:"contributing",children:"Contributing"}),"\n",(0,h.jsx)(e.p,{children:"Pull requests, issues, or other contributions from the community are encouraged! You can not only\nadd specific projects, but also potentially interesting fields/areas which are currently missing in\nthe tech stack."}),"\n",(0,h.jsx)(e.p,{children:":heavy_exclamation_mark: All technologies listed above need to be open-source. Ideally, the links\nlead directly to the code."}),"\n",(0,h.jsx)(e.p,{children:(0,h.jsxs)(e.em,{children:["Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you\nmay ",(0,h.jsx)(e.a,{href:"https://github.com/join",children:"sign up for free"}),"."]})})]})}function d(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,h.jsx)(e,{...t,children:(0,h.jsx)(l,{...t})}):l(t)}},28453:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>n});var r=s(96540);const h={},i=r.createContext(h);function a(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function n(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(h):t.components||h:a(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccc1222e.dbe83f51.js b/assets/js/ccc1222e.dbe83f51.js deleted file mode 100644 index dcfea0b41a1f..000000000000 --- a/assets/js/ccc1222e.dbe83f51.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5702],{6295:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>n,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"build/build-open-source","title":"Open Source Stack","description":"Overview of the open source Polkadot/Kusama Tech Stack","source":"@site/../docs/build/build-open-source.md","sourceDirName":"build","slug":"/build-open-source","permalink":"/docs/build-open-source","draft":false,"unlisted":false,"editUrl":"https://github.com/w3f/polkadot-wiki/edit/master/docs/build/build-open-source.md","tags":[],"version":"current","lastUpdatedBy":"David Semakula","lastUpdatedAt":1734083017000,"frontMatter":{"id":"build-open-source","title":"Open Source Stack","sidebar_label":"Open Source Stack","description":"Overview of the open source Polkadot/Kusama Tech Stack","keywords":["open","source","development","code","resources","tools","apis"],"slug":"../build-open-source"},"sidebar":"docs","previous":{"title":"Explorer, Data, & Indexing Tools","permalink":"/docs/build-data"},"next":{"title":"Hackathons","permalink":"/docs/build-hackathon"}}');var h=s(74848),i=s(28453);const a={id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},n="Open Source Polkadot Stack ",c={},o=[{value:"About",id:"about",level:2},{value:"Layers of Polkadot Stack",id:"layers-of-polkadot-stack",level:2},{value:"Wallets",id:"wallets",level:3},{value:"User Interface",id:"user-interface",level:3},{value:"Tools, APIs, and Languages",id:"tools-apis-and-languages",level:3},{value:"ink! Smart Contracts",id:"ink-smart-contracts",level:3},{value:"Chains and Pallets",id:"chains-and-pallets",level:3},{value:"Host",id:"host",level:3},{value:"Network Maintenance Tools",id:"network-maintenance-tools",level:3},{value:"Signatures",id:"signatures",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Networking",id:"networking",level:3},{value:"Primitives",id:"primitives",level:3},{value:"Contributing",id:"contributing",level:2}];function l(t){const e={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...t.components};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(e.header,{children:(0,h.jsx)(e.h1,{id:"open-source-polkadot-stack-",children:"Open Source Polkadot Stack "})}),"\n",(0,h.jsx)(e.admonition,{title:"Do your research before using open-source tools",type:"caution",children:(0,h.jsxs)(e.p,{children:["The tools listed here are open-source and are linked directly to their source code. Before using these tools to build your projects, always ",(0,h.jsx)(e.a,{href:"/docs/how-to-dyor",children:"do your research"})," and be aware of ",(0,h.jsx)(e.a,{href:"/docs/learn-scams",children:"scams"}),"."]})}),"\n",(0,h.jsx)(e.p,{children:"This page aims to provide an overview of the open-source Polkadot Tech Stack."}),"\n",(0,h.jsxs)(e.p,{children:["This is a living document, and we rely on everyone to contribute and help maintain\nit. ",(0,h.jsx)(e.a,{href:"#contributing",children:(0,h.jsx)(e.strong,{children:"Please feel free to make edits and additions via pull requests"})}),". We\napologize if we missed your project!"]}),"\n",(0,h.jsx)(e.hr,{}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#about",children:"About"})}),"\n",(0,h.jsxs)(e.li,{children:[(0,h.jsx)(e.a,{href:"#layers-of-polkadot-stack",children:"Layers of Polkadot Stack"}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#wallets",children:"Wallets"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#user-interface",children:"User Interface"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#tools-apis-and-languages",children:"Tools, APIs, and Languages"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#ink-smart-contracts",children:"ink! Smart Contracts"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#chains-and-pallets",children:"Chains and Pallets"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#host",children:"Host"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#network-maintenance-tools",children:"Network Maintenance Tools"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#signatures",children:"Signatures"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#networking",children:"Networking"})}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#primitives",children:"Primitives"})}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(e.li,{children:(0,h.jsx)(e.a,{href:"#contributing",children:"Contributing"})}),"\n"]}),"\n",(0,h.jsx)(e.h2,{id:"about",children:"About"}),"\n",(0,h.jsxs)(e.p,{children:["The Polkadot Tech Stack is a subset of the Web 3.0 Tech Stack, which consists of the ",(0,h.jsx)(e.strong,{children:"open-source"}),"\ntechnologies contributing to and relying on ",(0,h.jsx)(e.a,{href:"https://polkadot.network/",children:"Polkadot"}),". It is meant to be used\nfor decentralized application (Dapp) development within numerous verticals, including DeFi, Gaming,\nProvenance and many others not pictured below."]}),"\n",(0,h.jsx)(e.pre,{children:(0,h.jsx)(e.code,{children:"|------|--------|------------|\n| DeFi | Gaming | Provenance |\n|______|________|____________|\n Dapps\n|--------------------------/-|\n| Explorers, Wallets / |\n|------------------------/---|\n| Tools, Apis, Languages/ |\n|----------------------/-----|\n| 2nd layer protocols / |\n|--------------------/-------|\n| Chains / other |\n|------------------/--- --|\n| *Polkadot* | tech |\n|------------------\\---------|\n| P2P, Crypto, Wasm \\ |\n|--------------------\\-------|\n"})}),"\n",(0,h.jsx)(e.h2,{id:"layers-of-polkadot-stack",children:"Layers of Polkadot Stack"}),"\n",(0,h.jsx)(e.p,{children:"In the below sections, you can find a list of different layers of the Polkadot Stack."}),"\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"Maintenance Status"}),":"]}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsx)(e.li,{children:"\ud83d\udfe2 Actively maintained"}),"\n",(0,h.jsx)(e.li,{children:"\ud83d\udfe1 Stale (no activity on the main branch for one month)"}),"\n",(0,h.jsx)(e.li,{children:"\u26aa Unmaintained (no activity on the main branch for more than three months)"}),"\n"]}),"\n",(0,h.jsx)(e.h3,{id:"wallets",children:"Wallets"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Web Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/Multix",children:"Multix"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkasafe/polkasafe-ui",children:"Polkasafe"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/apps",children:"polkadot-js/apps"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman-web",children:"Talisman Web Application"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/enkryptcom/mydotwallet",children:"mydotwallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subid",children:"Sub ID"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Primis-Labs/client",children:"Primis"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3finance/sakura",children:"Sakura"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/Web3Box-apps",children:"Web3Box"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CoongCrafts/coong-wallet",children:"Coong Wallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan-multisig-react",children:"Subscan Multisig UI - React"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan-multisig-ui",children:"Subscan Multisig UI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DoraFactory/dorafactory-multisig",children:"Dorafactory-Multisig"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/capi-multisig-app",children:"Capi Multisig App"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:["User-friendly Wallet based on the ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/recovery",children:"Recovery Pallet"}),", Web wallets focused on user-onboarding (e.g. using ",(0,h.jsx)(e.a,{href:"https://github.com/near/near-wallet",children:"localStorage"}),")"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Desktop Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-spektr",children:"nova-spektr"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/omni-desktop-prototype",children:"Omni desktop"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"Enterprise Wallets"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Browser Extensions"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman",children:"Talisman-Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubWallet-Extension",children:"SubWallet-Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/enkryptcom/enKrypt",children:"Enkrypt"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/extension",children:"Polkadot-JS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/PolkaGate/polkagate-extension",children:"PolkaGate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/trustwallet",children:"Trust Wallet Extension"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainBridgeNetworkTeam/Doter",children:"Doter"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GetSpeckle/speckle-browser-extension",children:"Speckle OS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/kuma-wallet",children:"Kuma Cross-chain Wallet"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Sign-in with your Polkadot, Kusama, etc. account."})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Mobile Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-wallet-ios",children:"Nova Wallet iOS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/nova-wallet-android",children:"Nova Wallet Android"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-signer",children:"Polkadot Vault"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/fearless-Android",children:"Fearless Wallet Android"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/fearless-iOS",children:"Fearless Wallet iOS"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/trustwallet",children:"Trust Wallet"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubWallet-Mobile",children:"SubWallet-Mobile"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Kalapaja/kampela-firmware",children:"Kampela"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/airgap-it/airgap-wallet",children:"AirGap"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Interstellar-Network/wallet-app",children:"Interstellar Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/luniehq/lunie",children:"Lunie"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkawallet-io/polkawallet-flutter",children:"Polkawallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/consenlabs/token-core",children:"imToken"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/stylo-app/stylo",children:"Stylo"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/fractapp/fractapp/",children:"Fractapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hypha-dao/hashed-wallet",children:"Hashed Wallet"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Burner Wallets/Faucet/Gifts"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/hamidra/dotdrop",children:"dotdrop"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/vue-polkadot/apps",children:"KodaDot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/astar-faucet-bot",children:"Astar Faucet Bot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/karooolis/sybil-resistant-substrate-faucet",children:"Generic sybil-resistant faucet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/StringNick/sybil-resistant-chat-bot-substrate-faucet",children:"sybil-resistant Chat Bot Faucet"})," ","\u2754"]}),(0,h.jsx)(e.td,{children:"Faucet (a sybil-resistant way to receive free tokens)"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Wallet Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/metamask-snap-polkadot",children:"Metamask-Snap by Chainsafe"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"CLI Wallet"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/yxf/subwallet",children:"Subwallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/canontech/proxy-hot-wallet",children:"Proxy-hot-wallet"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Hardware Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ZondaX/ledger-polkadot",children:"Ledger Polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-kusama",children:"Ledger Kusama"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-statemint",children:"Ledger Statemint"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/ledger-statemine",children:"Ledger Statemine"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Trezor"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"OAuth2-compatible Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/singkeo/dot-login",children:"DOT Login"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"user-interface",children:"User Interface"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Block Explorers"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/topmonks/calamar",children:"Calamar"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/explorer-api",children:"Polkascan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Colm3na/polkastats-backend",children:"Polkastats"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/subscan",children:"Subscan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/statescan-v2",children:"Statescan"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/edgeware-builders/edgscan",children:"Edgscan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/epirus-substrate",children:"Sirato"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/ink-substrate-explorer-api",children:"ink! Explorer API"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/substats",children:"Substats"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hybrid-explorer/hybrid-dapp",children:"Hybrid Block Explorer"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"Mempool focused explorer (including parachain transaction)"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator Dashboards"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-telemetry",children:"Polkadot Telemetry"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/hashquark-io/polkacube-frontend",children:"Polkacube"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/buidl-labs/YieldScan",children:"YieldScan"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot",children:"Hubble"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ArthurHoeke/cyclops",children:"Cyclops"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/web3go-xyz/web3go-xyz-v2",children:"Web3Go"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/MathCryptoDoc/insights-1kv",children:"1kv insights"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Node Explorers"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/protos-research/polkadot-node-explorer",children:"Polkadot Node Explorer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT Explorer"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/kodadot/nft-gallery",children:"NFT Explorer for Kusama & Polkadot"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance Dashboards"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/governance-ui",children:"Polkadot Delegation Dashboard"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/premiurly/polkassembly",children:"Polkassembly"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/dotreasury",children:"dotreasury"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/bright-tresury",children:"Bright Treasury"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/collaboration",children:"OpenSquare offchain voting"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/wpank/open-gov-insights",children:"OpenGov Insights"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/stake-plus/treasury-tracker",children:"Treasury Tracker"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/joepetrowski/opengov-cli",children:"OpenGov CLI"})," \ud83d\udfe1"]}),(0,h.jsxs)(e.td,{children:["UI for the Kusama and/or Polkadot treasury (see ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate/pull/5715",children:"bounty module"}),"), UI for Parachain Lease Offering (PLO)"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Staking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/staking-rewards-collector",children:"Staking Rewards Collector"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/jackson-harris-iii/staking-rewards-viewer",children:"Staking Rewards Viewer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/cryptolab-network/polkadot-staking-site",children:"Polkadot Staking Site"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-staking-dashboard",children:"Polkadot Staking Dashboard"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/James-Sangalli/dot-validator-selector",children:"Polkadot/Kusama Validator Selector"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/James-Sangalli/dot-staking-income",children:"Staking Income CSV Generator"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridge UI"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-bridges-ui",children:"Parity Bridges UI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nutbox-dao/donut-interface",children:"Donut Interface (Steem - Dot)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RostislavLitovkin/PlutonicationServer",children:"Plutonication"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Parachain/Crowdloan"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/jhonalino/parachains.network",children:"Parachains.Network"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/CrommVardek/polk-auction-ui",children:"PolkAuction"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/10clouds/crowdloan-template",children:"Crowdloan Front End Template"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hack-ink/slothunter/",children:"Slothunter"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identicon"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://polkadot.cloud/polkicon",children:"Polkicon"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/RidOne-technologies/polkadot-web-identicon",children:"PolkadotWebIdenticon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RidOne-technologies/polkadot-angular-identicon",children:"Polkadot Angular IdentIcon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Noc2/Bird-Identicon",children:"Bird Identicon"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Coretime"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LasticXYZ/LasticUI",children:"Lastic"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/RegionX-Labs/RegionX-Node",children:"RegionX"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://polkadot.cloud",children:"Polkadot Cloud"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tien/dot-console",children:"\u0110\xd3TConsole"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/KappaSigmaMu/ksm-app",children:"KappaSigmaMu Fratority"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/DAOsign/daosign-ink-js-sdk/tree/main",children:"DAOSign"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/quadratic-funding-webapp",children:"Quadratic Funding Webapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/polkawatch/polkawatch",children:"Polkawatch"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/bytepayment/bytepay",children:"Bytepay"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Delmonicos/charging-management-platform",children:"charging-management-platform"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/TDSoftware/subidentity-webapp",children:"subidentity-webapp"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opensquare-network/paid-qa/",children:"OpenSquare Paid QA"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CrossChainLabs-DOT/dotpulse-api",children:"DotPulse"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bsn-si/rubeus-smartcontract",children:"Rubeus Keeper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/justmert/eco-flow-frontend",children:"Polkaflow"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/chainviz",children:"ChainViz"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/fidi-tech/dotsight",children:"Dotsight"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://docs.sui.io/build/zk_login",children:"zkLogin"}),", Portfolio Viewer like Zapper or Zerion"]})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"tools-apis-and-languages",children:"Tools, APIs, and Languages"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Runtime/Parachain frameworks"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk",children:"Polkadot Blockchain SDK"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/gosemble",children:"Gosemble"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/subsembly",children:"Subsembly"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/parachain-utilities",children:"Parachain utilities"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gantree-io/gantree-core",children:"Gantree"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ideal-lab5",children:"Cryptex"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:["Tools to create parachains with other frameworks, like the ",(0,h.jsx)(e.a,{href:"https://github.com/cosmos/cosmos-sdk",children:"Cosmos SDK"})," or ",(0,h.jsx)(e.a,{href:"https://github.com/0xPolygon/cdk-validium-node",children:"Polygon CDK"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Client Libraries"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polkadot-api/polkadot-api",children:"Polkadot-API - Typescript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tien/reactive-dot",children:"Reactive DOT - Typescript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/capi",children:"Capi - Typescript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kodadot/packages/tree/main/sub-api",children:"sub-api"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/go-substrate-rpc-client",children:"Go"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_api_dotnet",children:".Net"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubstrateGaming/Substrate.NET.API",children:".NET Standard 2.0"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/SubstrateGaming/Substrate.NET.Toolchain",children:"Substrate .NET Toolchain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_api_cpp",children:"C++"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/finoabanking/substrate-c-tool",children:"C"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/hs-web3",children:"Haskell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/api",children:"Javascript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-api-sidecar",children:"Substrate API Sidecar - TypeScript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/py-substrate-interface",children:"Python"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkaj",children:"Java (+ Android)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/strategyobject/substrate-client-java",children:"Substrate Client Java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/scs/substrate-api-client",children:"Rust SCS"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/subxt",children:"Rust Parity (subxt)"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/philoniare/subxtpy",children:"subxtpy"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/trevor-crypto",children:"Rust pdotc"})," ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/php-substrate-api",children:"PHP (gmajor-encrypt)"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/neha0921/substrate-interface-package",children:"PHP (neha0921)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/frontier",children:"RPC-Ethereum"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/Substrate.swift",children:"Swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NodleCode/substrate-client-kotlin",children:"Kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/substrate-client-kotlin",children:"substrate-client-kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/substrate-client-swift",children:"substrate-client-swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rankanizer/polkadart",children:"Dart"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/polywrap/integrations",children:"Substrate Core Polywrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/substrate-sdk-ios",children:"Substrate SDK iOS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/novasamatech/substrate-sdk-android",children:"Substrate SDK Android"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dedotdev/dedot",children:"Dedot - Typescript"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"RPC Gateway"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/subway",children:"Subway"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Substrate Contract clients"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/go-patract",children:"PatractGo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Easy Runtime Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/hack-ink/subalfred",children:"Subalfred"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kaichaosun/substrate-stencil",children:"substrate-stencil"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kaichaosun/play-substrate",children:"Play Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/substrate-node-template",children:"substrate-node-template"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-playground",children:"Substrate Playground"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/as-substrate-runtime",children:"AssemblyScript Runtime Generation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/clearloop/sup",children:"Substrate Package Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/subsembly",children:"Subsembly: Framework for developing AssemblyScript Substrate Runtimes"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bkchr/diener",children:"dependency diener"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IDE Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/vscode-substrate",children:"Substrate Marketplace VS Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/everstake/vscode-plugin-substrate",children:"VS Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/everstake/atom-plugin-substrate",children:"Atom Code Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/zombienet-vscode-extension",children:"zombienet extension"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Runtime/Pallet Security"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/srlabs/substrate-runtime-fuzzer",children:"Substrate Runtime Fuzzer"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/shawntabrizi/substrate-toml-lint",children:"Substrate Toml Lint"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kframework/wasm-semantics",children:"K specifications"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSecurity/polpatrol",children:"PolPatrol - Polkadot Runtime Checker"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:["Automated Runtime checking tools, economic audit simulator such as ",(0,h.jsx)(e.a,{href:"https://gauntlet.network/",children:"gauntlet.network"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart Contract Languages"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"#ink-smart-contracts",children:"ink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ask-lang/ask",children:"Ask!"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/slickup/subscript",children:"Subscript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hyperledger-labs/solang",children:"Solang"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/eigerco/pallet-move",children:"pallet-move"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pontem-network/sp-move",children:"Move VM Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/neatcoin/neatcoin",children:"Move smart contract by Neatcoin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pepyakin/substrate-seal-ebpf",children:"eBPF Contracts Hackathon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/koute/polkavm",children:"PolkaVM"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{children:"Functional Programming Languages, other languages with developed toolchains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-introspector",children:"Polkadot introspector"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/subdirectory/subshell",children:"Subshell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/sc-simnode",children:"substrate-simnode"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/halva-suite/halva",children:"Halva"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/redspot",children:"Redspot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mixbytes/tank",children:"MixBytes Tank"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NikVolf/sub-flood",children:"sub-flood"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-debug-kit",children:"Substrate debug-kit"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/JesseAbram/asset_cli_tool",children:"Asset CLI tool"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/JesseAbram/unfinished_testing_tool",children:"sub_crash"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chevdor/subwasm",children:"subwasm"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ascjones/subsee",children:"subsee"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-lab",children:"polkadot-lab"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dwellir-public/rpc-perf/",children:"RPC-perf"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Static Analysis"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/KaiserKarel/substrace",children:"Substrace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/simon-perriard/saft",children:"Static analyzer for Substrate FRAME's pallets"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CoinFabrik/scout-audit",children:"CoinFabrik Scout"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Formal Verification"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/davidsemakula/pallet-verifier",children:"pallet-verifier"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kframework/wasm-semantics",children:"K specifications"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testnet"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/zombienet",children:"Zombienet"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/chopsticks",children:"Chopsticks"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-launch",children:"Polkadot Launch"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/koute/polkadot-starship",children:"polkadot-starship"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/maxsam4/fork-off-substrate",children:"Fork off Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/try-runtime-cli",children:"try-runtime-cli"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/parachain-launch",children:"Parachain Launch"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Zeeve-App/larch",children:"Larch Zombienet GUI"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Benchmarking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/utils/frame/benchmarking-cli",children:"Benchmarking CLI"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-stps",children:"Polkadot sTPS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/0xekez/clockchain",children:"Clockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/shawntabrizi/substrate-graph-benchmarks",children:"Substrate Graph Benchmarks"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking",children:"ink! & pallet benchmarking template"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/smart-bench",children:"smart-bench"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Blockchain Indexing Engine"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/subsquid/squid-sdk",children:"Squid SDK"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/hybrid-explorer/hybrid-indexer",children:"Hybrid Indexer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-archive",children:"Substrate Archive"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/polkadot_psql_indexer",children:"PSQL Indexer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playzero/substrate-graph",children:"Substrate Graph"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OnFinality-io/subql",children:"Subquery"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/p2p-org/polkadot-profit-transformer",children:"MBELT3"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kodadot/stick",children:"stick"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Infra3-Network/hyperdot",children:"Hyperdot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Blockchain/Event Monitoring"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/guardian",children:"Web3 Guardian"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/HugoByte/aurras-event-manager",children:"Aurras Event Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hicommonwealth/chain-events",children:"@commonwealth/chain-events"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/massbitchain",children:"Massbit"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/kianenigma/polkadot-basic-notification",children:"Polkadot Basic Notifications"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sodazone/ocelloids",children:"Ocelloids"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TrackingChains/TrackingChain",children:"Tracking Chain"})," \u26aa,"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PolkadotPlay/Polkadot.Unity.SDK",children:"Polkadot SDK for Unity"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dodorare/crossbow",children:"Crossbow"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://assetstore.unity.com/packages/decentralization/infrastructure/polkadot-sdk-for-unity-273535",children:"Unity Asset Store"}),", ",(0,h.jsx)(e.a,{href:"https://amethyst.rs/",children:"Amethyst"})," + ",(0,h.jsx)(e.a,{href:"https://substrate.dev/",children:"Substrate"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"No-code Platforms"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/NovaBloq/Bubble-Plugin-Polkadot.js",children:"EzCode's Polkadot-JS plugin on Bubble.io"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Blackprint/nodes-polkadot.js",children:"Blackprint Visual Programming Polkadot-JS module"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subrelay/interface",children:"SubRelay"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Wallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/tien/dot-connect",children:"DOT Connect"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/TalismanSociety/talisman-connect",children:"Talisman Connect"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Koniverse/SubConnect",children:"SubWallet-SubConnect"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nova-wallet/metadata-portal",children:"Metadata Portal"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/Tesseract.rs",children:"Tesseract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/walletconnect-v2-monorepo",children:"WalletConnect"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/BitGo/BitGoJS/tree/master",children:"BitGoJS"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"XCM"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/trappist",children:"Trappist"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Moonsong-Labs/xcm-tools",children:"XCM-tools"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/substrate-api-rpc",children:"XCM-tools Golang"})," \u26aa,",(0,h.jsx)(e.a,{href:"https://github.com/paraspell/xcm-tools",children:"ParaSpell XCM Tools"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/t3rn/xbi",children:"XBI"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockcoders/xcm-sdk",children:"XCM TS/JS SDK"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/XcmSend/app",children:"XCMSend"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/sodazone/xcm-monitoring/",children:"XCM Monitoring Server"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/moonbeam-foundation/xcm-sdk",children:"Moonbeam Foundation XCM-SDK"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/asset-transfer-api",children:"asset-transfer-api"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/txwrapper-core",children:"txwrapper-core"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/open-web3.js",children:"open-web3 JS library"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CycanTech/GVM-Bridge",children:"VM-Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/srtool",children:"srtool"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/chevdor/srtool-cli",children:"srtool-cli"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-tip-bot",children:"Substrate Tip Bot"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/syntifi/ori",children:"ORI (Onchain Risk Intelligence)"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/albertov19/PolkaTools",children:"PolkaTools"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-scripts",children:"polkadot-scripts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/virto-network/sube",children:"Sube"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/data-store-sidecar",children:"data-store-sidecar"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SugarFunge/sugarfunge-node",children:"SugarFunge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/second-state/substrate-wasmedge",children:"substrate-wasmedge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/eightfish-org/eightfish",children:"EightFish"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/sandoxio/sandox",children:"Sandox"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/apk-verifier/",children:"APK verifier"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"ink-smart-contracts",children:"ink! Smart Contracts"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Core Libraries"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink",children:"ink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/cargo-contract",children:"cargo-contract"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts",children:"pallet-contracts"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Local Nodes"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-contracts-node",children:"substrate-contracts-node"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/swankyhub/swanky-cli",children:"Swanky"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart Contract Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/drink",children:"DRink!"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/contracts-ui",children:"contracts-ui"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Smart-Beaver",children:"SmartBeaver"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/h4nsu/openbrush-contracts",children:"OpenBrush"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/727-Ventures/sol2ink",children:"Sol2Ink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/protofire/polkadot-contract-wizard",children:"Polkadot Contract Wizard"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/ink-wrapper",children:"ink-wrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink-playground",children:"ink-playground"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/blockchain-it-hr/ink-remix-plugin",children:"ink! Remix Plugin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/standardweb3/signac/",children:"Signac"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/avirajkhare00/ink-boxes/",children:"ink!-boxes"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/avirajkhare00/ink-wizard",children:"ink!-smart-contract-wizard"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Security & Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/ink-waterfall",children:"ink! Waterfall"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/ink-verifier-image",children:"Verifier Image for ink!"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Brushfam/patron-backend/",children:"Patron"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/inkscopexyz/inkscope-fuzzer",children:"Inkscope Fuzzer"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Frontend Development"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/scio-labs/inkathon",children:"ink!athon Boilerplate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/useink",children:"useink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/scio-labs/use-inkathon",children:"useInkathon"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/subsquid/squid-sdk/tree/master/substrate/ink-typegen",children:"ink-typegen"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Brushfam/typechain-polkadot",children:"Typechain Polkadot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IDE Plugins"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ink-analyzer/ink-analyzer",children:"ink! Analyzer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridges"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/dantenetwork/protocol-stack-for-ink",children:"Dante Protocol"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DeFi"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/pendulum-ink-wrapper",children:"Pendulum-Ink-Wrapper"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RottenKiwi/Panorama-Swap-INK-SC",children:"Panorama Swap"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Juminstock/ink_bank",children:"ink_bank"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/realnimish/polkadot-amm",children:"Polkadot AMM"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/veradefi/defi",children:"Vera"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nsure-tech/dot-contract",children:"Nsure Insurance"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/CycanTech/ELC",children:"Everlasting Cash"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Coinversation/coinpro",children:"Coinversation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zenlinkpro/zenlink-dex-contract",children:"zenlink-dex-contract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ReserveLabs/AlgoCash",children:"AlgoCash"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"New seigniorage-style stable coins"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/OpenEmojiBattler/open-emoji-battler",children:"Open Emoji Battler"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs",children:"NewOmega"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DAO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/SyncraDAO/modular-dao",children:"SyncraDAO"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/subDAO-contracts",children:"subDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1",children:"RainbowDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Mangoboxlabs/Mangoboxink",children:"MangoBox"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Mangoboxlabs/MangoSaleV2",children:"MangoSale"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identity/DID"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/TheDotflow",children:"Dotflow"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Oracles"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/diadata-org/dia-wasm-oracle",children:"DIA WASM Oracle"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Spam Protection"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/prosopo/captcha",children:"Prosopo"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/AbaxFinance/Governance",children:"Abax Governance"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ArtZero-io/Contracts",children:"ArtZero"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/pnsproject/ink-aa",children:"Polkadot Smart Account"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/swankyhub/magink-dapp",children:"magink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/ink-test-contracts",children:"ink-test-contracts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/agryaznov/candle-auction-ink",children:"Candle Auctions"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubDAO-Network/polkasign-contract",children:"polkasign-contract"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bsn-si/ocex-cli",children:"OCEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RoloiMoney/roloi-polkadot-w3f-grant",children:"Roloi"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadrys/openPayroll",children:"OpenPayroll"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/InkSmartContract/BlockchainFoodOrder",children:"BlockchainFoodOrder"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"chains-and-pallets",children:"Chains and Pallets"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Scalable Transactions"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/perun-network/perun-polkadot-pallet",children:"Perun channels"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/perun-network/perun-polkadot-demo",children:"CLI demo of Perun"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/Astar",children:"Astar"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/celer-network/cChannel-substrate",children:"Celer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GunClear/Gunero",children:"Gunclear"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/BCS-Labs/tpscore-etl-system",children:"TPScore"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/auguth/pocs",children:"proof-of-contract-stake"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"roll-ups, DAG-based consensus mechanisms, side chains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Bridges and Interoperability"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/interlay/interbtc",children:"interBTC"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/dkg-substrate",children:"DKG Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sygmaprotocol/sygma-substrate-pallets",children:"Sygma"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bifrost-finance/bifrost-eos-relay",children:"EOS by Bifrost"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-bridge",children:"POA - Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/akropolisio/POC-polkadai-bridge",children:"Substrate - Ethereum DAI Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-bridge-relay",children:"Substrate - Substrate Bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chainx-org/ChainX",children:"BTC by ChainX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChorusOne/wormhole-bridge",children:"Cosmos-Substrate bridge"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/octopus-network/substrate-ibc",children:"Substrate IBC Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Snowfork/polkadot-ethereum",children:"Polkadot Ethereum Bridge"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/darwinia",children:"Darwinia"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/spacewalk",children:"Spacewalk: a Stellar bridge"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/filecoindot",children:"Filecoindot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/axelar-cgp-substrate/tree/main",children:"Axelar-Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/hyperbridge",children:"Hyperbridge"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/t3rn/t3rn",children:"t3rn"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{children:"ZCash"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Privacy"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LayerXcom/zero-chain",children:"ZeroChain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/xx-labs/xxchain",children:"xx network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Phala-Network/phala-blockchain",children:"pLibra (Phala Network)"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/automata-network/automata",children:"Automata Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zero-network/zero",children:"Zero Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/appliedblockchain/silentdata-polkadot",children:"Silent Data"})," \u26aa"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/anoma/masp",children:"Multi-Asset Shielded Pool (MASP)"})," , ",(0,h.jsx)(e.a,{href:"https://arxiv.org/pdf/2009.01020.pdf",children:"Zkay"}),", ",(0,h.jsx)(e.a,{href:"https://eprint.iacr.org/2018/962.pdf",children:"Zexe"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"ZKP"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/zeropoolnetwork/zeropool-substrate-groth16-example",children:"ZeroPool"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/megaclite",children:"Megaclite"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/patractlabs/zkmega",children:"zkMega"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AstarNetwork/plonk",children:"PLONK for Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/protocol-substrate",children:"Webb Anchor Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/zk-snarks-with-substrate/",children:"zk-SNARKs tutorial"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Zkvers/substrate-zk",children:"substrate-zk"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/hyperfridge-r0",children:"hyperfridge-r0"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cyborg-Network/cyborg-parachain/tree/master",children:"Cyborg Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Manta-Network/Manta",children:"Manta"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"TEE"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Acurast/acurast-core",children:"Acurast"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/integritee-network/worker",children:"Integritee"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/scs/substraTEE",children:"substraTEE"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/wetee-dao/chain",children:"WeTEE"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/keysafe-protocol/keysafe-app",children:"Keysafe Protocol"})," \u26aa"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DeFi"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/kapilsinha/privadex",children:"PrivaDEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/uinb/fusotao",children:"Fusotao"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/reef-defi/reef-chain",children:"Reef"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Diora-Network/Diora",children:"Diora"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pendulum-chain/pendulum",children:"Pendulum Chain"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/compound-finance/gateway",children:"Compound Gateway"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/parallel-finance/parallel",children:"Parallel Finance"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/PINT",children:"PINT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/laminar-protocol/laminar-chain",children:"Laminar Chain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AcalaNetwork/Acala",children:"Acala"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/centrifuge/centrifuge-chain",children:"Centrifuge"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/stafiprotocol/stafi-node",children:"Stafi"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/y2labs-0sh/definex",children:"Definex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAXFoundation/parrot",children:"OAX Foundation"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/alexxuyang/substrate-dex",children:"Cybex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zenlinkpro/pallet-zenlink",children:"Zenlink"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/lsaether/pallet-swaps",children:"Swaps Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Polkadex-Substrate/Polkadex/tree/master",children:"Polkadex"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subdarkdex/subdex-parachain",children:"SubDEX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/hydration-node",children:"Hydration"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/apopiak/stablecoin",children:"Substrate Stablecoin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/digitalnativeinc/standard-substrate",children:"Standard protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sora-xor/sora2-network",children:"Polkaswap"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/equilibrium-eosdt/equilibrium-curve-amm",children:"Curve AMM"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/konomi-network/cumulus/",children:"Konomi Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nutsfinance/stable-asset",children:"Stable Asset"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/atscaletech/libra",children:"Libra Payment"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mangata-finance/mangata-node",children:"Mangata"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tidelabs/tidechain",children:"Tidechain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/Basilisk-node",children:"Basilisk"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/PolymeshAssociation/Polymesh",children:"Polymesh"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/bifrost-io/bifrost",children:"Bifrost"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/clover-network/clover",children:"Clover"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ComposableFi/composable",children:"Composable Finance "})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/OmniBTC/PSC",children:"OmniBTC"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Polimec/polimec-node",children:"Polimec"})," \ud83d\udfe1"]}),(0,h.jsxs)(e.td,{children:["DEX with privacy and confidentiality features such as those found in a ",(0,h.jsx)(e.a,{href:"https://en.wikipedia.org/wiki/Dark_pool",children:"dark pool"})]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Smart contract chains"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PureStake/moonbeam",children:"moonbeam"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Magport/Magnet",children:"Magnet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/aleph-node",children:"Aleph-node"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/hicommonwealth/edgeware-node",children:"Edgeware"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ParaState/substrate-ssvm-node",children:"ParaState"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gear-tech/gear",children:"gear"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/cennznet/cennznet",children:"CENNZnet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/skyekiwi/skyekiwi-network",children:"SkyeKiwi"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/OAK-blockchain",children:"OAK-blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3labs/ice-substrate",children:"ICE Blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OmniBTC/PSC",children:"Polkadot Smart Chain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/keep-starknet-strange/madara",children:"Madara - Cairo/Starknet"})," \u26aa"]}),(0,h.jsx)(e.td,{children:"smart contract chains with novel security approaches, smart contract chains based on existing toolchains"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Oracle"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/tellor-io/tellor-pallet",children:"Tellor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle",children:"Laminar"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/smartcontractkit/chainlink-polkadot",children:"Chainlink-polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/aresprotocols/ares",children:"Ares Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Kylin-Network/kylin-node",children:"Kylin Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/interlay/interbtc-clients/tree/master/oracle",children:"interbtc-clients oracle"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/webb-tools/anonima",children:"Anonima"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SaaS3-Foundation/dRuntime-fat",children:"SaaS3"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tellor-io/tellor-parachain-contracts",children:"Tellor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/diadata-org/bridgestate-ocw",children:"Bridgestate Oracle"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Identity/DID"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/parami-foundation/parami-blockchain",children:"Parami"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/litentry/litentry-parachain",children:"Litentry"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/pallet-did",children:"pallet-did"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/prasad-kumkar/dot-id",children:"dot-id"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"IoT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/NodleCode/chain",children:"Nodle"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/DataHighway-DHX/node",children:"MXC/DataHighway"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/peaqnetwork/peaq-network-node",children:"peaq-network-node"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Verifiable Claims"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/KILTprotocol/kilt-node",children:"KILT"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/docknetwork/dock-substrate",children:"Dock"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Supply chain"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/digicatapult/dscp-node",children:"DSCP Node"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Health care"}),(0,h.jsx)(e.td,{}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Music Industry"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Allfeat/Allfeat",children:"Allfeat Network"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Data Availability"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/availproject/avail",children:"Avail"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/ZeroDAO/melodot",children:"Melodot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Social Networking"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/frequency-chain/frequency",children:"Frequency"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/social-network/blockchain",children:"Social Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subsocial-parachain",children:"SubSocial"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ZeroDAO/ZeroDAO-node",children:"ZeroDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/myriadsocial/myriad-node",children:"Myriad Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/randombishop/wika_etl",children:"Wika Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/listenofficial/listen-parachain",children:"Listen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tribal-protocol/tribal_contract",children:"Tribal Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rust-0x0/hex-space-protocol-substrate",children:"Five Degrees on Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/acuity-social/acuity-substrate",children:"Acuity Social"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{children:"Private instant messenger that uses on-chain identity"})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Governance/DAO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/aisland-dao/aisland-node/tree/main",children:"Aisland Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hashed-io/hashed-substrate",children:"Hashed Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sunshine-protocol/sunshine-bounty",children:"Sunshine DAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NucleiStudio/governance-os",children:"Governance OS"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/idavollnetwork/idavoll",children:"Idavoll Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DoraFactory/Substrate-Moloch-V2",children:"Substrate Moloch"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Qrucial/QRUCIAL-DAO",children:"QRUCIAL-DAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sctllabs/societal-node",children:"Societal"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/daos-org/daos",children:"DAOs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/amiyatulu/shivarthu/",children:"Shivarthu"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/faterium",children:"Faterium"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/decentration/apps",children:"Supersig"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/deep-ink-ventures/genesis-dao-node",children:"GenesisDAO"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dao-entrance/dao-entrance-node",children:"DAO Entrance"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/liberland/liberland_substrate",children:"Liberland"})," \ud83d\udfe2"]}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/consul/consul",children:"Consul"})," - Open Government and E-Participation Web Software"]})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Prediction Markets and Futarchy"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/zeitgeistpm/zeitgeist",children:"Zeitgeist"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/XPredictMarket/NodePredict",children:"X Predict Market"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Messaging"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/validitylabs/HOPR-PL-Substrate",children:"HOPR"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chainify/nolik",children:"Nolik"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Uke-Messaging/uke-pallet",children:"Uke"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Belsoft-rs/diffychat-pallet",children:"Diffy Chat"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/fennelLabs/Fennel-Protocol",children:"Fennel Protocol"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"File Storage, Cloud"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/dappforce/subsocial-offchain",children:"Subsocial-Offchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playproject-io/datdot",children:"DatDot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/crustio/crust",children:"Crust Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/rs-ipfs/offchain-ipfs-manual",children:"offchain::ipfs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/canyon-network/canyon",children:"Canyon Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Cumulus2021/cess",children:"CESS"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/cess-proving-system",children:"CESS Proving Subsystem"})," ","\u2754",", ",(0,h.jsx)(e.a,{href:"https://github.com/ideal-lab5/iris",children:"Iris"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/CESSProject/fmd-cess",children:"fmd-cess"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw",children:"IPFS Frame V3"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/threefoldtech/tfchain",children:"Threefold Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Apron-Network/apron-node",children:"Apron"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/TDSoftware/substrate-ipfs",children:"IPFS Utilities"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/dinfra/dinfra",children:"DINFRA"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Name Service"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/xaya/substrate-names",children:"Substrate Names"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hskang9/substrate-name-service",children:"ENS on Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/pnsproject/pns-pallets",children:"PNS-Pallets"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/HeisenbergLin22/Faceless_milestone2_delivery",children:"Faceless"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ff13dfly/Anchor",children:"Anchor"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Gaming"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/bit-country/Bit-Country-Blockchain",children:"Bit.country"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SubGame-Network/subgame-network",children:"SubGame"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/playzero/subzero",children:"subzero"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/web3gamesofficial/web3games-blockchain",children:"Web3Games"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ajuna-network/ajuna-pallets",children:"Ajuna Pallets"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/cryptoviet/gafi",children:"Gafi Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://gitlab.com/asylum-space/asylum-item-nft",children:"Asylum"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/3Dpass/3DP",children:"3DPass"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polketio/toearnfun_flutter_app",children:"Polket"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Computation/AI"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Deitos-Network/deitos-ip",children:"Deitos Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DeepBrainChain/DeepBrainChain-MainChain",children:"DeepBrain Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/anudit/cerebrum",children:"AI Infrastructure on Blockchain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OriginTrail/neuroweb",children:"NeuroWeb"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Enable specific use-cases"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/deep-ink-ventures/pallet_hookpoints",children:"pallet-hookpoints"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/substrate-node-robonomics",children:"Robonomics"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/UniversalDot/pallets",children:"UniversalDOT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/EvercityEcosystem/evercity-chain",children:"Evercity Sustainable Finance Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/logion-network/logion-node",children:"logion"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Me-Protocol/rusty-protocol-v0.1/",children:"Me Protocol"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/QSTN-US/Polkadot-QSTN-v1/",children:"QSTN"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/subcoin-project/subcoin",children:"Subcoin"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AventusProtocolFoundation/avn-parachain",children:"Aventus"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"NFT"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/capsule-corp-ternoa/chain",children:"ternoa"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/danforbes/pallet-nft",children:"FRAME Pallet: NFTs for Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/UniqueNetwork/unique-chain",children:"Unique NFT Parachain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets",children:"DNFT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rmrk-team/rmrk-substrate",children:"RMRK-Substrate"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Popular-Coding/nt-nft",children:"NT-NFTs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/GreenLemonProtocol/dksap-polkadot",children:"Green Lemon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/Basilisk-node",children:"Basilisk"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/freeverseio/laos",children:"LAOS"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Randomness"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/substrate/tree/randomness-beacon",children:"DKG and Randomness Beacon"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/random-meat/drand-substrate-client",children:"drand-substrate-client"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Licensing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/anagolay/anagolay-chain",children:"Anagolay Network"})," ","\u2754"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Banking Integration"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/element36-io/ebics-java-service",children:"FIAT on-off-ramp"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Crowdfunding"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ImbueNetwork/imbue",children:"Imbue Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/zhangjiannan/QFgrant",children:"Quadratic Funding pallet by Dora"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/OAK-Foundation/quadratic-funding-pallet/tree/master",children:"Quadratic Funding pallet by OAK"})," \u26aa"]}),(0,h.jsx)(e.td,{children:(0,h.jsx)(e.a,{href:"https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413",children:"Minimum Anti-Collusion Infrastructure (MACI)"})})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Collection of Pallets"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/open-web3-stack/open-runtime-module-library",children:"Substrate Open Runtime Module Library"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/warehouse",children:"warehouse"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/InvArch/InvArch-Frames",children:"InvArch FRAME Pallet Library"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Marketplaces"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/WowLabz/dot-marketplace-v2/tree/Phase3_Milestone3",children:"Dot Marketplace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/hashed-io/hashed-substrate/tree/main/pallets/gated-marketplace",children:"Gated Marketplace"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Popular-Coding/ventur",children:"Ventur"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/RELAI-Network/futur-protocol",children:"Futur Protocol"})," ","\u2754"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Carbon Credits"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/bitgreen/bitg-node",children:"BitGreen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/EvercityEcosystem/carbon-assets",children:"Carbon Assets Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/SequesterChain/pallets",children:"Sequester Pallets"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"UTXO"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Off-Narrative-Labs/Tuxedo",children:"Tuxedo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Moonsong-Labs/moonkit",children:"Moonkit"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/substrate-account-filter",children:"Substrate Account Filter"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/opentensor/subtensor",children:"Subtensor"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/AdMetaNetwork/admeta",children:"AdMeta"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/chocolatenetwork/chocolate-node",children:"Chocolate Node"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/virto-network/virto-node",children:"Virto Network"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/substrate-validator-set",children:"Substrate Validator Set"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/DEIPworld/deip-node",children:"DEIP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/debionetwork/debio-node",children:"DeBio"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/mathwallet/MathChain",children:"MathChain"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/encointer/encointer-node",children:"encointer"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/grasslandnetwork/substrate_node",children:"Grassland"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/rusty-crewmates/substrate-tutorials",children:"Substrate-Tutorials"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Fair-Squares/fair-squares",children:"Fair Squares"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/totem-tech/totem",children:"Totem Live Accounting"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/herou/EscrowPallet",children:"Escrow Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/NexTokenTech/TREX",children:"TREX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/relationlabs/Relation-Graph",children:"Relation Graph"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gertt/Invoice",children:"Decentralized Invoice"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/redstone-network/redstone-node",children:"Redstone Network"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/WunderbarNetwork/access-control",children:"Access Control Pallet"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant",children:"Omniverse DLT"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/substrate-ismp",children:"ISMP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/xcmp_prototype_playground",children:"XCMP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/dhiway/cord",children:"CORD Chain"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/educhain",children:"Educhain"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{children:"Decentralized review/reputation system"})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"host",children:"Host"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Rust"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate",children:"Substrate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/cumulus",children:"Cumulus"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"C++"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/kagome",children:"Kagome"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Zondax/mayon",children:"Mayon"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Go"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/gossamer",children:"Gossamer"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Java"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/Fruzhin",children:"Fruzhin"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/java-host-research",children:"Java Host Research"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"AssemblyScript"}),(0,h.jsx)(e.td,{}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Light Client"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/smol-dot/smoldot",children:"smoldot"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/substrate-connect",children:"Substrate Connect"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/eqlabs/polkadot-light-client",children:"C++ Polkadot Light Client"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Testing"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/polkadot-conformance",children:"Polkadot Conformance"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sigp/polkafuzz",children:"Polkafuzz"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"network-maintenance-tools",children:"Network Maintenance Tools"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Secure validator setup"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polkachu/polkadot-validator",children:"Polkadot Validation Node Ansible Setup"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-validator-setup",children:"W3F Polkadot Validator Setup"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Nexus2k/polkadot-ansible",children:"polkadot-ansible"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"High availability setup"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/luguslabs/archipel",children:"Archipel"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/protofire/polkadot-failover-mechanism",children:"Polkadot Failover Mechanism"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Datagen-Project/Datagen-Substrate-Grant",children:"Datagen"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/bright/substrate-raft",children:"High Availability Validator Setup"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Load Balanced Endpoints"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/insight-w3f/terragrunt-polkadot",children:"terragrunt-polkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sudoblockio/substrate-meta",children:"Geometry Labs' Substrate Meta repo"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Deployment Tools"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Blockdaemon/bpm-sdk",children:"Polkadot Package Manager"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/akropolisio/polkahub-monorepo",children:"PolkaHub"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/AvadoDServer/AVADO-DNP-Polkadot-custom",children:"Avado"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-deployer",children:"Polkadot Deployer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/for-parity-with-love/unified-collator-node-deployment",children:"Unified Collator Deployment"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator monitoring"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/turboflakes/one-t",children:"ONE-T"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/subvt-backend",children:"SubVT"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/SimplyVC/panic",children:"P.A.N.I.C."})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/galacticcouncil/polkalert",children:"Polkalert"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3",children:"B-Harvest"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/stakezone/nmonpolkadot",children:"nmonpolkadot"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ironoa/polkadot-k8s-monitor",children:"Polkadot-K8s-Monitor"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-watcher",children:"Polkadot-Watcher"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot",children:"1KV Telegram Bot"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator payout management"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Colm3na/substrate-auto-payout",children:"Substrate validator auto payout"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f/polkadot-payouts",children:"Polkadot Payouts"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/emostov/staking-payouts",children:"staking-payouts CLI"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/stakelink/substrate-payctl",children:"Payctl"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/turboflakes/crunch",children:"crunch"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Staking Miner"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/staking-miner-v2",children:"Staking Miner v2"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Nominator Tools"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/miepsik/validators_selection",children:"Validator Selection"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/filippoweb3/polkanalyzer",children:"Polkanalyzer"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/filippoweb3/polkanalyzer-app",children:"Polkanalyzer-app"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"signatures",children:"Signatures"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"SR25519"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/schnorrkel",children:"rust"})," \u26aa(contains partial bindings for C, JavaScript, and Python), ",(0,h.jsx)(e.a,{href:"https://github.com/gautamdhameja/sr25519-dotnet",children:".Net bindings"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/sr25519",children:"C"})," \u26aa",(0,h.jsx)(e.em,{children:"(old)"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/TerenceGe/sr25519-donna",children:"C"})," \u26aa",(0,h.jsx)(e.em,{children:"(new)"}),", ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/soramitsu-sr25519-crust",children:"C/C++"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/usetech-llc/sr25519_dotnet",children:"C#"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/go-schnorrkel",children:"Go"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/debuggor/schnorrkel-java",children:"java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/sr25519-bindings",children:"PHP"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Signature Aggregation"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/w3f/apk-proofs",children:"apk-proofs"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Distributed key generation (DKG) or management"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/isislovecruft/frost-dalek",children:"keygen.rs"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/w3f-grants-archive/sword",children:"Secure Wallet Origin Distribution (SWORD)"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Validator HSMs"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Zondax/buildroot-zondax",children:"Zondax Remote Signer"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"MPC"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/orochi-network/orochi-network.github.io",children:"Orochi Network"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"consensus",children:"Consensus"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"PoC"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/subspace/substrate",children:"Spartan"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"PoW"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/pow",children:"PoW consensus for Substrate"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/kulupu/kulupu/tree/master/pow",children:"RandomX"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow",children:"Sha3 PoW"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Block production"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/babe",children:"BABE"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/aura",children:"Aura"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Finality"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/grandpa",children:"GRANDPA"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/Cardinal-Cryptography/AlephBFT",children:"AlephBFT"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Other"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/PureStake/nimbus",children:"Nimbus: Upgradeable consensus framework"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"networking",children:"Networking"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"SCALE Codec"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-scale-codec",children:"Rust"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/paritytech/parity-scale-codec-ts",children:"TypeScript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/polkascan/py-scale-codec",children:"Python"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/ChainSafe/gossamer/tree/development/pkg/scale/",children:"Golang Chainsafe"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/scale.go",children:"Golang Itering"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/MatthewDarnell/cScale",children:"C"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/scale-codec-cpp",children:"C++"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/polkadot-js/api",children:"JavaScript"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/LimeChain/as-scale-codec",children:"AssemblyScript"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/airalab/hs-web3/tree/master/packages/scale/src/Codec",children:"Haskell"})," \ud83d\udfe1, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkaj",children:"Java"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/itering/scale.rb",children:"Ruby"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/nbltrust/dart-scale-codec",children:"Dart"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/tesseract-one/swift-scale-codec",children:"Swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/scale-codec-swift",children:"scale-codec-swift"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/sublabdev/scale-codec-kotlin",children:"scale-codec-kotlin"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/php-scale-codec",children:"PHP"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/soramitsu/scale-codec-js-library",children:"JavaScript by Soramitsu"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/gmajor-encrypt/scale-codec-comparator",children:"Scale Codec Comparator"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/darwinia-network/darwinia-messages-sol/blob/master/contracts/utils/contracts/ScaleCodec.sol",children:"ScaleCodec.sol by Darwinia"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/Snowfork/snowbridge/blob/main/core/packages/contracts/contracts/ScaleCodec.sol",children:"ScaleCodec.sol by Snowfork"})," \ud83d\udfe2, ",(0,h.jsx)(e.a,{href:"https://github.com/arijitAD/dotscale",children:"Dotscale"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Networking Framework"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/libp2p/libp2p",children:"libp2p"})," \u26aa",(0,h.jsx)(e.a,{href:"https://github.com/algorealmInc/SwarmNL",children:"SwarmNL"})," \ud83d\udfe2"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"DHT Crawler"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/atredispartners/dht-crawler-polkadot",children:"Go"})," \u26aa, ",(0,h.jsx)(e.a,{href:"https://github.com/emeraldpay/polkabot",children:"Kotlin"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"RPC Tor-like access"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/Evanesco-Labs/WhiteNoise.rs",children:"WhiteNoise"})," \u26aa"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h3,{id:"primitives",children:"Primitives"}),"\n",(0,h.jsxs)(e.table,{children:[(0,h.jsx)(e.thead,{children:(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.th,{children:"Components"}),(0,h.jsx)(e.th,{children:"Existing projects"}),(0,h.jsx)(e.th,{children:"Potentially interesting projects"})]})}),(0,h.jsxs)(e.tbody,{children:[(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Storage"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/frisitano/merkle-tree-db",children:"Merkle Tree DB"})," \u26aa"]}),(0,h.jsx)(e.td,{})]}),(0,h.jsxs)(e.tr,{children:[(0,h.jsx)(e.td,{children:"Merkle Proofs"}),(0,h.jsxs)(e.td,{children:[(0,h.jsx)(e.a,{href:"https://github.com/polytope-labs/solidity-merkle-trees",children:"Solidity Trie Verifier"})," \ud83d\udfe1"]}),(0,h.jsx)(e.td,{})]})]})]}),"\n",(0,h.jsx)(e.h2,{id:"contributing",children:"Contributing"}),"\n",(0,h.jsx)(e.p,{children:"Pull requests, issues, or other contributions from the community are encouraged! You can not only\nadd specific projects, but also potentially interesting fields/areas which are currently missing in\nthe tech stack."}),"\n",(0,h.jsx)(e.p,{children:":heavy_exclamation_mark: All technologies listed above need to be open-source. Ideally, the links\nlead directly to the code."}),"\n",(0,h.jsx)(e.p,{children:(0,h.jsxs)(e.em,{children:["Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you\nmay ",(0,h.jsx)(e.a,{href:"https://github.com/join",children:"sign up for free"}),"."]})})]})}function d(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,h.jsx)(e,{...t,children:(0,h.jsx)(l,{...t})}):l(t)}},28453:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>n});var r=s(96540);const h={},i=r.createContext(h);function a(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function n(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(h):t.components||h:a(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.ef943a05.js b/assets/js/main.1cbb1a84.js similarity index 99% rename from assets/js/main.ef943a05.js rename to assets/js/main.1cbb1a84.js index 7506e224cc10..8e59eb2ccf4c 100644 --- a/assets/js/main.ef943a05.js +++ b/assets/js/main.1cbb1a84.js @@ -1,2 +1,2 @@ -/*! For license information please see main.ef943a05.js.LICENSE.txt */ -(self.webpackChunk=self.webpackChunk||[]).push([[8792],{55600:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>A,E8:()=>Zn,a1:()=>Yn});var r=n(96540);n(40961);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(c&&l){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;P(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),b}},t}function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,s=[],c=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return s}}(e,t)||k(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function _(e){var t="function"==typeof Map?new Map:void 0;return _=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(m())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var a=new(e.bind.apply(e,r));return n&&v(a,n.prototype),a}(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),v(n,e)},_(e)}function S(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function E(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var j=["translations"],O="Ctrl",A=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=g(e,j),i=a.buttonText,s=void 0===i?"Search":i,c=a.buttonAriaLabel,l=void 0===c?"Search":c,u=x((0,r.useState)(null),2),p=u[0],f=u[1];(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(O))}),[]);var m=x(p===O?[O,"Ctrl",r.createElement(S,null)]:["Meta","Command",p],3),h=m[0],b=m[1],y=m[2];return r.createElement("button",d({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(l," (").concat(b,"+K)")},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(E,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==p&&r.createElement(r.Fragment,null,r.createElement(C,{reactsToKey:h},y),r.createElement(C,{reactsToKey:"k"},"K"))))}));function C(e){var t=e.reactsToKey,n=e.children,a=x((0,r.useState)(!1),2),o=a[0],i=a[1];return(0,r.useEffect)((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),r.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}function P(e,t){var n=void 0;return function(){for(var r=arguments.length,a=new Array(r),o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t=3||2===n&&r>=4||1===n&&r>=10);function o(t,n,r){if(a&&void 0!==r){var o=r[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":o.appId,"X-Algolia-API-Key":o.apiKey};e.apply(void 0,[t].concat($(n),[{headers:i}]))}else e.apply(void 0,[t].concat($(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("clickedObjectIDsAfterSearch",Q(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("clickedObjectIDs",Q(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("convertedObjectIDsAfterSearch",Q(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&o("convertedObjectIDs",Q(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=V(t,U);return[].concat($(e),$(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function Z(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function X(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function J(e){return J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},J(e)}function ee(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&se({onItemsChange:a,items:n,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive,a=!1;function u(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:re(re({},s?{clickAnalytics:!0}:{}),e?{userToken:ue(e)}:{}),insights:l}})}c("addAlgoliaAgent","insights-plugin"),u(),c("onUserTokenChange",(function(e){a||u(e)})),c("getUserToken",null,(function(e,t){a||u(t)})),c("onAuthenticatedUserTokenChange",(function(e){e?(a=!0,u(e)):(a=!1,c("getUserToken",null,(function(e,t){return u(t)})))})),c("getAuthenticatedUserToken",null,(function(e,t){t&&(a=!0,u(t))})),n((function(e){var t=e.item,n=e.state,r=e.event,a=e.source;X(t)&&o({state:n,event:r,insights:l,item:t,insightsEvents:[re({eventName:"Item Selected"},F({item:t,items:a.getItems().filter(X)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,a=e.event;X(t)&&i({state:r,event:a,insights:l,item:t,insightsEvents:[re({eventName:"Item Active"},F({item:t,items:n.getItems().filter(X)}))]})}))},onStateChange:function(e){var t=e.state;d({state:t})},__autocomplete_pluginOptions:e}}function le(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(ee(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],ee(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function ue(e){return"number"==typeof e?e.toString():e}function de(e,t){var n=t;return{then:function(t,r){return de(e.then(fe(t,n,e),fe(r,n,e)),n)},catch:function(t){return de(e.catch(fe(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),de(e.finally(fe(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function pe(e){return de(e,{isCanceled:!1,onCancelList:[]})}function fe(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function me(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var a=(null===t?-1:t)+e;return a<=-1||a>=n?null===r?null:0:a}function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(I++),plugins:a,initialState:Ne({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(function(e){return function(e){if(Array.isArray(e))return Te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Te(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(a.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:D,onResolve:D};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=be(be({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return T(e)})).then((function(e){return e.map((function(e){return Ne(Ne({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Ne({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fe(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,Qe);nt&&a.environment.clearTimeout(nt);var l=c.setCollections,u=c.setIsOpen,d=c.setQuery,p=c.setActiveItemId,f=c.setStatus,m=c.setContext;if(d(o),p(a.defaultActiveItemId),!o&&!1===a.openOnFocus){var h,b=s.getState().collections.map((function(e){return Ze(Ze({},e),{},{items:[]})}));f("idle"),l(b),u(null!==(h=r.isOpen)&&void 0!==h?h:a.shouldPanelOpen({state:s.getState()}));var g=pe(rt(b).then((function(){return Promise.resolve()})));return s.pendingRequests.add(g)}f("loading"),nt=a.environment.setTimeout((function(){f("stalled")}),a.stallThreshold);var y=pe(rt(a.getSources(Ze({query:o,refresh:i,state:s.getState()},c)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Ze({query:o,refresh:i,state:s.getState()},c))).then((function(t){return function(e,t,n){if(a=e,Boolean(null==a?void 0:a.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(He(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return qe(qe({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?qe(qe({},n),{},{params:qe(qe({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var a;return{items:e,sourceId:t}}(t,e.sourceId,s.getState())}))}))).then(Ke).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));return r&&m({algoliaInsightsPlugin:Ze(Ze({},(null===(n=s.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})}),function(e,t,n){return t.map((function(t){var r,a=e.filter((function(e){return e.sourceId===t.sourceId})),o=a.map((function(e){return e.items})),i=a[0].transformResponse,s=i?i({results:r=o,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):o;return t.onResolve({source:t,results:o,items:s,state:n.getState()}),s.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:s}}))}(t,e,s)})).then((function(e){return function(e){var t=e.props,n=e.state,r=e.collections.reduce((function(e,t){return Fe(Fe({},e),{},Be({},t.source.sourceId,Fe(Fe({},t.source),{},{getItems:function(){return T(t.items)}})))}),{}),a=t.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:r,state:n}).sourcesBySourceId;return T(t.reshape({sourcesBySourceId:a,sources:Object.values(a),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:a,state:s.getState()})}))})))).then((function(e){var n;f("idle"),l(e);var d=a.shouldPanelOpen({state:s.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:a.openOnFocus&&!o&&d||d);var p=ve(s.getState());if(null!==s.getState().activeItemId&&p){var m=p.item,h=p.itemInputValue,b=p.itemUrl,g=p.source;g.onActive(Ze({event:t,item:m,itemInputValue:h,itemUrl:b,refresh:i,source:g,state:s.getState()},c))}})).finally((function(){f("idle"),nt&&a.environment.clearTimeout(nt)}));return s.pendingRequests.add(y)}function ot(e){return ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ot(e)}var it=["event","props","refresh","store"];function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function wt(e){var t=e.props,n=e.refresh,r=e.store,a=xt(e,dt);return{getEnvironmentProps:function(e){var n=e.inputElement,a=e.formElement,o=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[a,o].some((function(t){return(n=t)===(r=e.target)||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return yt({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},xt(e,pt))},getRootProps:function(e){return yt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return xe(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":xe(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,yt({action:"",noValidate:!0,role:"search",onSubmit:function(o){var i;o.preventDefault(),t.onSubmit(yt({event:o,refresh:n,state:r.getState()},a)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(o){var i;o.preventDefault(),t.onReset(yt({event:o,refresh:n,state:r.getState()},a)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},xt(e,ft))},getLabelProps:function(e){return yt({htmlFor:xe(t.id,"input"),id:xe(t.id,"label")},e)},getInputProps:function(e){var o;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&at(yt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},a)),r.dispatch("focus",null)}var s=e||{};s.inputElement;var c=s.maxLength,l=void 0===c?512:c,u=xt(s,mt),d=ve(r.getState()),p=function(e){return Boolean(e&&e.match(we))}((null===(o=t.environment.navigator)||void 0===o?void 0:o.userAgent)||""),f=t.enterKeyHint||(null!=d&&d.itemUrl&&!p?"go":"search");return yt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?xe(t.id,"item-".concat(r.getState().activeItemId),null==d?void 0:d.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return xe(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":xe(t.id,"label"),value:r.getState().completion||r.getState().query,id:xe(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){var o=e.currentTarget.value;t.ignoreCompositionEvents&&ke(e).isComposing?a.setQuery(o):at(yt({event:e,props:t,query:o.slice(0,l),refresh:n,store:r},a))},onCompositionEnd:function(e){at(yt({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},a))},onKeyDown:function(e){ke(e).isComposing||function(e){var t=e.event,n=e.props,r=e.refresh,a=e.store,o=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,it);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=ve(a.getState()),t=n.environment.document.getElementById(xe(n.id,"item-".concat(a.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},s=function(){var e=ve(a.getState());if(null!==a.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,s=e.itemUrl,c=e.source;c.onActive(ct({event:t,item:n,itemInputValue:i,itemUrl:s,refresh:r,source:c,state:a.getState()},o))}};t.preventDefault(),!1===a.getState().isOpen&&(n.openOnFocus||Boolean(a.getState().query))?at(ct({event:t,props:n,query:a.getState().query,refresh:r,store:a},o)).then((function(){a.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(i,0)})):(a.dispatch(t.key,{}),s(),i())}else if("Escape"===t.key)t.preventDefault(),a.dispatch(t.key,null),a.pendingRequests.cancelAll();else if("Tab"===t.key)a.dispatch("blur",null),a.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===a.getState().activeItemId||a.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||a.pendingRequests.cancelAll());t.preventDefault();var c=ve(a.getState()),l=c.item,u=c.itemInputValue,d=c.itemUrl,p=c.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(ct({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),n.navigator.navigateNewTab({itemUrl:d,item:l,state:a.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(ct({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),n.navigator.navigateNewWindow({itemUrl:d,item:l,state:a.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(ct({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o)),void n.navigator.navigate({itemUrl:d,item:l,state:a.getState()});at(ct({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:a},o)).then((function(){p.onSelect(ct({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:p,state:a.getState()},o))}))}}}(yt({event:e,props:t,refresh:n,store:r},a))},onFocus:i,onBlur:D,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},u)},getPanelProps:function(e){return yt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,a=xt(n,ht);return yt({role:"listbox","aria-labelledby":xe(t.id,"label"),id:xe(t.id,"list",r)},a)},getItemProps:function(e){var o=e.item,i=e.source,s=xt(e,bt);return yt({id:xe(t.id,"item-".concat(o.__autocomplete_id),i),role:"option","aria-selected":r.getState().activeItemId===o.__autocomplete_id,onMouseMove:function(e){if(o.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",o.__autocomplete_id);var t=ve(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,s=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(yt({event:e,item:i,itemInputValue:s,itemUrl:c,refresh:n,source:l,state:r.getState()},a))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var s=i.getItemInputValue({item:o,state:r.getState()}),c=i.getItemUrl({item:o,state:r.getState()});(c?Promise.resolve():at(yt({event:e,nextState:{isOpen:!1},props:t,query:s,refresh:n,store:r},a))).then((function(){i.onSelect(yt({event:e,item:o,itemInputValue:s,itemUrl:c,refresh:n,source:i,state:r.getState()},a))}))}},s)}}}function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function _t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function St(e){for(var t=1;t0&&r.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},r.createElement("p",{className:"DocSearch-Help"},c,":"),r.createElement("ul",null,f.slice(0,3).reduce((function(e,t){return[].concat(w(e),[r.createElement("li",{key:t},r.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){a.setQuery(t.toLowerCase()+" "),a.refresh(),a.inputRef.current.focus()}},t))])}),[]))),a.getMissingResultsUrl&&r.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),r.createElement("a",{href:a.getMissingResultsUrl({query:a.state.query}),target:"_blank",rel:"noopener noreferrer"},p)))}var nn=["hit","attribute","tagName"];function rn(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function an(e){var t=e.hit,n=e.attribute,a=e.tagName,o=void 0===a?"span":a,i=g(e,nn);return(0,r.createElement)(o,b(b({},i),{},{dangerouslySetInnerHTML:{__html:rn(t,"_snippetResult.".concat(n,".value"))||rn(t,n)}}))}function on(e){return e.collection&&0!==e.collection.items.length?r.createElement("section",{className:"DocSearch-Hits"},r.createElement("div",{className:"DocSearch-Hit-source"},e.title),r.createElement("ul",e.getListProps(),e.collection.items.map((function(t,n){return r.createElement(sn,d({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function sn(e){var t=e.item,n=e.index,a=e.renderIcon,o=e.renderAction,i=e.getItemProps,s=e.onItemClick,c=e.collection,l=e.hitComponent,u=x(r.useState(!1),2),p=u[0],f=u[1],m=x(r.useState(!1),2),h=m[0],b=m[1],g=r.useRef(null),y=l;return r.createElement("li",d({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",p&&"DocSearch-Hit--deleting",h&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){g.current&&g.current()}},i({item:t,source:c.source,onClick:function(e){s(t,e)}})),r.createElement(y,{hit:t},r.createElement("div",{className:"DocSearch-Hit-Container"},a({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement(an,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),r.createElement(an,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),g.current=e},runFavoriteTransition:function(e){b(!0),g.current=e}}))))}function cn(e,t,n){return e.reduce((function(e,r){var a=t(r);return e.hasOwnProperty(a)||(e[a]=[]),e[a].length<(n||5)&&e[a].push(r),e}),{})}function ln(e){return e}function un(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function dn(){}var pn=/(|<\/mark>)/g,fn=RegExp(pn.source);function mn(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var a=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return a?a.value&&fn.test(a.value)?a.value.replace(pn,""):a.value:e.hierarchy.lvl0}function hn(e){return r.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var n=mn(t.items[0]);return r.createElement(on,d({},e,{key:t.source.sourceId,title:n,collection:t,renderIcon:function(e){var n,a=e.item,o=e.index;return r.createElement(r.Fragment,null,a.__docsearch_parent&&r.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.__docsearch_parent!==(null===(n=t.items[o+1])||void 0===n?void 0:n.__docsearch_parent)?r.createElement("path",{d:"M8 6v21M20 27H8.3"}):r.createElement("path",{d:"M8 6v42M20 27H8.3"}))),r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Kt,{type:a.type})))},renderAction:function(){return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement(Vt,null))}}))})),e.resultsFooterComponent&&r.createElement("section",{className:"DocSearch-HitsFooter"},r.createElement(e.resultsFooterComponent,{state:e.state})))}var bn=["translations"];function gn(e){var t=e.translations,n=void 0===t?{}:t,a=g(e,bn),o=n.recentSearchesTitle,i=void 0===o?"Recent":o,s=n.noRecentSearchesText,c=void 0===s?"No recent searches":s,l=n.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,p=n.removeRecentSearchButtonTitle,f=void 0===p?"Remove this search from history":p,m=n.favoriteSearchesTitle,h=void 0===m?"Favorite":m,b=n.removeFavoriteSearchButtonTitle,y=void 0===b?"Remove this search from favorites":b;return"idle"===a.state.status&&!1===a.hasCollections?a.disableUserPersonalization?null:r.createElement("div",{className:"DocSearch-StartScreen"},r.createElement("p",{className:"DocSearch-Help"},c)):!1===a.hasCollections?null:r.createElement("div",{className:"DocSearch-Dropdown-Container"},r.createElement(on,d({},a,{title:i,collection:a.state.collections[0],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement($t,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,o=e.runDeleteTransition;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){a.favoriteSearches.add(t),a.recentSearches.remove(t),a.refresh()}))}},r.createElement(Yt,null))),r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){a.recentSearches.remove(t),a.refresh()}))}},r.createElement(Ht,null))))}})),r.createElement(on,d({},a,{title:h,collection:a.state.collections[1],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Yt,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:y,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){a.favoriteSearches.remove(t),a.refresh()}))}},r.createElement(Ht,null)))}})))}var yn=["translations"],vn=r.memo((function(e){var t=e.translations,n=void 0===t?{}:t,a=g(e,yn);if("error"===a.state.status)return r.createElement(Jt,{translations:null==n?void 0:n.errorScreen});var o=a.state.collections.some((function(e){return e.items.length>0}));return a.state.query?!1===o?r.createElement(tn,d({},a,{translations:null==n?void 0:n.noResultsScreen})):r.createElement(hn,a):r.createElement(gn,d({},a,{hasCollections:o,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),xn=["translations"];function wn(e){var t=e.translations,n=void 0===t?{}:t,a=g(e,xn),o=n.resetButtonTitle,i=void 0===o?"Clear the query":o,s=n.resetButtonAriaLabel,c=void 0===s?"Clear the query":s,l=n.cancelButtonText,u=void 0===l?"Cancel":l,p=n.cancelButtonAriaLabel,f=void 0===p?"Cancel":p,m=n.searchInputLabel,h=void 0===m?"Search":m,b=a.getFormProps({inputElement:a.inputRef.current}).onReset;return r.useEffect((function(){a.autoFocus&&a.inputRef.current&&a.inputRef.current.focus()}),[a.autoFocus,a.inputRef]),r.useEffect((function(){a.isFromSelection&&a.inputRef.current&&a.inputRef.current.select()}),[a.isFromSelection,a.inputRef]),r.createElement(r.Fragment,null,r.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:b},r.createElement("label",d({className:"DocSearch-MagnifierLabel"},a.getLabelProps()),r.createElement(E,null),r.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},h)),r.createElement("div",{className:"DocSearch-LoadingIndicator"},r.createElement(qt,null)),r.createElement("input",d({className:"DocSearch-Input",ref:a.inputRef},a.getInputProps({inputElement:a.inputRef.current,autoFocus:a.autoFocus,maxLength:64}))),r.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!a.state.query},r.createElement(Ht,null))),r.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:a.onClose},u))}var kn=["_highlightResult","_snippetResult"];function _n(e){var t=e.key,n=e.limit,r=void 0===n?5:n,a=function(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}(t),o=a.getItem().slice(0,r);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var n=g(t,kn),i=o.findIndex((function(e){return e.objectID===n.objectID}));i>-1&&o.splice(i,1),o.unshift(n),o=o.slice(0,r),a.setItem(o)},remove:function(e){o=o.filter((function(t){return t.objectID!==e.objectID})),a.setItem(o)},getAll:function(){return o}}}function Sn(e){var t,n="algolia-client-js-".concat(e.key);function r(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function a(){return JSON.parse(r().getItem(n)||"{}")}function o(e){r().setItem(n,JSON.stringify(e))}return{get:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var n,r,i;return n=e.timeToLive?1e3*e.timeToLive:null,r=a(),o(i=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==x(e,2)[1].timestamp})))),n&&o(Object.fromEntries(Object.entries(i).filter((function(e){var t=x(e,2)[1],r=(new Date).getTime();return!(t.timestamp+n2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return x(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,a).catch((function(){return En({caches:t}).get(e,r,a)}))},set:function(e,r){return n.set(e,r).catch((function(){return En({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return En({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return En({caches:t}).clear()}))}}}function jn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(n);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);var i=r();return i.then((function(e){return a.miss(e)})).then((function(){return i}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function On(e){var t=e.algoliaAgents,n=e.client,r=e.version,a=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}(r).add({segment:n,version:r});return t.forEach((function(e){return a.add(e)})),a}var An=12e4;function Cn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",n=Date.now();return b(b({},e),{},{status:t,lastUpdate:n,isUp:function(){return"up"===t||Date.now()-n>An},isTimedOut:function(){return"timed out"===t&&Date.now()-n<=An}})}var Pn=function(){function e(t,n){var r;return c(this,e),u(r=s(this,e,[t]),"name","AlgoliaError"),n&&(r.name=n),r}return f(e,_(Error)),l(e)}(),Tn=function(){function e(t,n,r){var a;return c(this,e),u(a=s(this,e,[t,r]),"stackTrace",void 0),a.stackTrace=n,a}return f(e,Pn),l(e)}(),In=function(){function e(t){return c(this,e),s(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return f(e,Tn),l(e)}(),Nn=function(){function e(t,n,r){var a,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return c(this,e),u(a=s(this,e,[t,r,o]),"status",void 0),a.status=n,a}return f(e,Tn),l(e)}(),Ln=function(){function e(t,n){var r;return c(this,e),u(r=s(this,e,[t,"DeserializationError"]),"response",void 0),r.response=n,r}return f(e,Pn),l(e)}(),Rn=function(){function e(t,n,r,a){var o;return c(this,e),u(o=s(this,e,[t,n,a,"DetailedApiError"]),"error",void 0),o.error=r,o}return f(e,Nn),l(e)}();function Dn(e,t,n){var r,a=(r=n,Object.keys(r).filter((function(e){return void 0!==r[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(r[e])?r[e].join(","):r[e]).replace(/\+/g,"%20"))})).join("&")),o="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return a.length&&(o+="?".concat(a)),o}function Mn(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:b(b({},e.data),t.data);return JSON.stringify(n)}}function Fn(e,t,n){var r=b(b(b({Accept:"application/json"},e),t),n),a={};return Object.keys(r).forEach((function(e){var t=r[e];a[e.toLowerCase()]=t})),a}function Bn(e){try{return JSON.parse(e.content)}catch(t){throw new Ln(t.message,e)}}function zn(e,t){var n=e.content,r=e.status;try{var a=JSON.parse(n);return"error"in a?new Rn(a.message,r,a.error,t):new Nn(a.message,r,t)}catch(e){}return new Nn(n,r,t)}function Un(e){return e.map((function(e){return qn(e)}))}function qn(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return b(b({},e),{},{request:b(b({},e.request),{},{headers:b(b({},e.request.headers),t)})})}var $n=["appId","apiKey","authMode","algoliaAgents"],Hn=["params"],Vn="5.12.0";function Wn(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),a=e[n];t[n]=e[r],t[r]=a}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var Kn="3.8.0";function Gn(e,t,n){return r.useMemo((function(){var r=function(e,t){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return function(e){var t=e.appId,n=e.apiKey,r=e.authMode,a=e.algoliaAgents,o=g(e,$n),s=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",r={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===n?r:{}},queryParameters:function(){return"WithinQueryParameters"===n?r:{}}}}(t,n,r),c=function(e){var t=e.hosts,n=e.hostsCache,r=e.baseHeaders,a=e.logger,o=e.baseQueryParameters,s=e.algoliaAgent,c=e.timeouts,l=e.requester,u=e.requestsCache,d=e.responsesCache;function p(e){return f.apply(this,arguments)}function f(){return(f=i(y().mark((function e(t){var r,a,o,i,s;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return n.get(e,(function(){return Promise.resolve(Cn(e))}))})));case 2:return r=e.sent,a=r.filter((function(e){return e.isUp()})),o=r.filter((function(e){return e.isTimedOut()})),i=[].concat(w(a),w(o)),s=i.length>0?i:t,e.abrupt("return",{hosts:s,getTimeout:function(e,t){return(0===o.length&&0===e?1:o.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function m(e,t){return h.apply(this,arguments)}function h(){return h=i(y().mark((function e(u,d){var f,m,h,g,v,x,k,_,S,E,j,O,A,C=arguments;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=!(C.length>2&&void 0!==C[2])||C[2],m=[],h=Mn(u,d),g=Fn(r,u.headers,d.headers),v="GET"===u.method?b(b({},u.data),d.data):{},x=b(b(b({},o),u.queryParameters),v),s.value&&(x["x-algolia-agent"]=s.value),d&&d.queryParameters)for(k=0,_=Object.keys(d.queryParameters);k<_.length;k++)S=_[k],d.queryParameters[S]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[S])?x[S]=d.queryParameters[S].toString():x[S]=d.queryParameters[S];return E=0,j=function(){var e=i(y().mark((function e(t,r){var o,i,s,p,v,w;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==(o=t.pop())){e.next=3;break}throw new In(Un(m));case 3:return i=b(b({},c),d.timeouts),s={data:h,headers:g,method:u.method,url:Dn(o,u.path,x),connectTimeout:r(E,i.connect),responseTimeout:r(E,f?i.read:i.write)},p=function(e){var n={request:s,response:e,host:o,triesLeft:t.length};return m.push(n),n},e.next=8,l.send(s);case 8:if(k=(y=v=e.sent).isTimedOut,_=y.status,!(k||function(e){return!e.isTimedOut&&!~~e.status}({isTimedOut:k,status:_})||2!=~~(_/100)&&4!=~~(_/100))){e.next=16;break}return w=p(v),v.isTimedOut&&E++,a.info("Retryable failure",qn(w)),e.next=15,n.set(o,Cn(o,v.isTimedOut?"timed out":"down"));case 15:return e.abrupt("return",j(t,r));case 16:if(2!=~~(v.status/100)){e.next=18;break}return e.abrupt("return",Bn(v));case 18:throw p(v),zn(v,m);case 20:case"end":return e.stop()}var y,k,_}),e)})));return function(t,n){return e.apply(this,arguments)}}(),O=t.filter((function(e){return"readWrite"===e.accept||(f?"read"===e.accept:"write"===e.accept)})),e.next=13,p(O);case 13:return A=e.sent,e.abrupt("return",j(w(A.hosts).reverse(),A.getTimeout));case 15:case"end":return e.stop()}}),e)}))),h.apply(this,arguments)}return{hostsCache:n,requester:l,timeouts:c,logger:a,algoliaAgent:s,baseHeaders:r,baseQueryParameters:o,hosts:t,request:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.useReadTransporter||"GET"===e.method;if(!n)return m(e,t,n);var a=function(){return m(e,t)};if(!0!==(t.cacheable||e.cacheable))return a();var i={request:e,requestOptions:t,transporter:{queryParameters:o,headers:r}};return d.get(i,(function(){return u.get(i,(function(){return u.set(i,a()).then((function(e){return Promise.all([u.delete(i),e])}),(function(e){return Promise.all([u.delete(i),Promise.reject(e)])})).then((function(e){var t=x(e,2);return t[0],t[1]}))}))}),{miss:function(e){return d.set(i,e)}})},requestsCache:u,responsesCache:d}}(b(b({hosts:Wn(t)},o),{},{algoliaAgent:On({algoliaAgents:a,client:"Lite",version:Vn}),baseHeaders:b(b({"content-type":"text/plain"},s.headers()),o.baseHeaders),baseQueryParameters:b(b({},s.queryParameters()),o.baseQueryParameters)}));return{transporter:c,appId:t,clearCache:function(){return Promise.all([c.requestsCache.clear(),c.responsesCache.clear()]).then((function(){}))},get _ua(){return c.algoliaAgent.value},addAlgoliaAgent:function(e,t){c.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;r&&"WithinHeaders"!==r?c.baseQueryParameters["x-algolia-api-key"]=t:c.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var n=e.path,r=e.parameters,a=e.body;if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");var o={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:r||{},headers:{},data:a||{}};return c.request(o,t)},getRecommendations:function(e,t){if(e&&Array.isArray(e)&&(e={requests:e}),!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var n={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return c.request(n,t)},search:function(e,t){if(e&&Array.isArray(e)){var n={requests:e.map((function(e){var t=e.params,n=g(e,Hn);return"facet"===n.type?b(b(b({},n),t),{},{type:"facet"}):b(b(b({},n),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=n}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return c.request(r,t)}}}(b({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,a=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),e)},o=a(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(o),r=a(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(o),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(o),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:jn(),requestsCache:jn({serializable:!1}),hostsCache:En({caches:[Sn({key:"".concat(Vn,"-").concat(e)}),jn()]})},void 0))}(e,t);return r.addAlgoliaAgent("docsearch",Kn),!1===/docsearch.js \(.*\)/.test(r.transporter.algoliaAgent.value)&&r.addAlgoliaAgent("docsearch-react",Kn),n(r)}),[e,t,n])}var Qn=["footer","searchBox"];function Yn(e){var t=e.appId,n=e.apiKey,a=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,s=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?dn:l,p=e.transformItems,f=void 0===p?ln:p,m=e.hitComponent,h=void 0===m?Ut:m,y=e.resultsFooterComponent,v=void 0===y?function(){return null}:y,w=e.navigator,k=e.initialScrollY,_=void 0===k?0:k,S=e.transformSearchClient,E=void 0===S?ln:S,j=e.disableUserPersonalization,O=void 0!==j&&j,A=e.initialQuery,C=void 0===A?"":A,P=e.translations,T=void 0===P?{}:P,I=e.getMissingResultsUrl,N=e.insights,L=void 0!==N&&N,R=T.footer,D=T.searchBox,M=g(T,Qn),F=x(r.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),B=F[0],z=F[1],U=r.useRef(null),q=r.useRef(null),$=r.useRef(null),H=r.useRef(null),V=r.useRef(null),W=r.useRef(10),K=r.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,G=r.useRef(C||K).current,Q=Gn(t,n,E),Y=r.useRef(_n({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(a),limit:10})).current,Z=r.useRef(_n({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(a),limit:0===Y.getAll().length?7:4})).current,X=r.useCallback((function(e){if(!O){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===Y.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Z.add(t)}}),[Y,Z,O]),J=r.useCallback((function(e){if(B.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};B.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[B.context.algoliaInsightsPlugin]),ee=r.useMemo((function(){return Mt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:G,context:{searchSuggestions:[]}},insights:L,navigator:w,onStateChange:function(e){z(e.state)},getSources:function(e){var r=e.query,o=e.state,i=e.setContext,l=e.setStatus;if(!r)return O?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;X(t),un(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Z.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;X(t),un(n)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}}];var d=Boolean(L);return Q.search({requests:[b({query:r,indexName:a,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(W.current),"hierarchy.lvl2:".concat(W.current),"hierarchy.lvl3:".concat(W.current),"hierarchy.lvl4:".concat(W.current),"hierarchy.lvl5:".concat(W.current),"hierarchy.lvl6:".concat(W.current),"content:".concat(W.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:d},s)]}).catch((function(e){throw"RetryError"===e.name&&l("error"),e})).then((function(e){var r=e.results[0],s=r.hits,l=r.nbHits,p=cn(s,(function(e){return mn(e)}),c);o.context.searchSuggestions.length0&&(re(),V.current&&V.current.focus())}),[G,re]),r.useEffect((function(){function e(){if(q.current){var e=.01*window.innerHeight;q.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),r.createElement("div",d({ref:U},ne({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===B.status&&"DocSearch-Container--Stalled","error"===B.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),r.createElement("div",{className:"DocSearch-Modal",ref:q},r.createElement("header",{className:"DocSearch-SearchBar",ref:$},r.createElement(wn,d({},ee,{state:B,autoFocus:0===G.length,inputRef:V,isFromSelection:Boolean(G)&&G===K,translations:D,onClose:u}))),r.createElement("div",{className:"DocSearch-Dropdown",ref:H},r.createElement(vn,d({},ee,{indexName:a,state:B,hitComponent:h,resultsFooterComponent:v,disableUserPersonalization:O,recentSearches:Z,favoriteSearches:Y,inputRef:V,translations:M,getMissingResultsUrl:I,onItemClick:function(e,t){J(e),X(e),un(t)||u()}}))),r.createElement("footer",{className:"DocSearch-Footer"},r.createElement(zt,{translations:R}))))}function Zn(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;if("Escape"===e.code&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)return e.preventDefault(),void(t?a():document.body.classList.contains("DocSearch--active")||n());i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(96540),a=n(74848),o=r.createContext(!1);function i(e){var t=e.children,n=(0,r.useState)(!1),i=n[0],s=n[1];return(0,r.useEffect)((function(){s(!0)}),[]),(0,a.jsx)(o.Provider,{value:i,children:t})}},81316:(e,t,n)=>{"use strict";var r=n(96540),a=n(5338),o=n(80545),i=n(54625),s=n(85290),c=n(38193);const l=[n(10119),n(26134),n(76294),n(35697),n(74100),n(95728)];var u=n(97671),d=n(56347),p=n(22831),f=n(74848);function m(e){var t=e.children;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5260),b=n(44586),g=n(86025),y=n(6342),v=n(69024),x=n(32131),w=n(14090),k=n(2967),_=n(70440),S=n(41463);function E(){var e=(0,b.A)().i18n,t=e.currentLocale,n=e.defaultLocale,r=e.localeConfigs,a=(0,x.o)(),o=r[t].htmlLang,i=function(e){return e.replace("-","_")};return(0,f.jsxs)(h.A,{children:[Object.entries(r).map((function(e){var t=e[0],n=e[1].htmlLang;return(0,f.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:a.createUrl({locale:n,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:i(o)}),Object.values(r).filter((function(e){return o!==e.htmlLang})).map((function(e){return(0,f.jsx)("meta",{property:"og:locale:alternate",content:i(e.htmlLang)},"meta-og-"+e.htmlLang)}))]})}function j(e){var t=e.permalink,n=(0,b.A)().siteConfig.url,r=function(){var e=(0,b.A)().siteConfig,t=e.url,n=e.baseUrl,r=e.trailingSlash,a=(0,d.zy)().pathname;return t+(0,_.Ks)((0,g.Ay)(a),{trailingSlash:r,baseUrl:n})}(),a=t?""+n+t:r;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function O(){var e=(0,b.A)().i18n.currentLocale,t=(0,y.p)(),n=t.metadata,r=t.image;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.w})]}),r&&(0,f.jsx)(v.be,{image:r}),(0,f.jsx)(j,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.A,{tag:k.C,locale:e}),(0,f.jsx)(h.A,{children:n.map((function(e,t){return(0,f.jsx)("meta",Object.assign({},e),t)}))})]})}var A=new Map;var C=n(6125),P=n(73348),T=n(77387),I=n(205);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(96540),a=n(85290);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"general/getting-started","docs":[{"id":"build/build-client-side","path":"/docs/build-client-side","sidebar":"docs"},{"id":"build/build-dapp","path":"/docs/build-dapp"},{"id":"build/build-data","path":"/docs/build-data","sidebar":"docs"},{"id":"build/build-guide","path":"/docs/build-guide","sidebar":"docs"},{"id":"build/build-guides-coretime-start","path":"/docs/build-guides-coretime-start","sidebar":"docs"},{"id":"build/build-guides-coretime-troubleshoot","path":"/docs/build-guides-coretime-troubleshoot","sidebar":"docs"},{"id":"build/build-guides-install-deps","path":"/docs/build-guides-install-deps","sidebar":"docs"},{"id":"build/build-guides-template-basic","path":"/docs/build-guides-template-basic","sidebar":"docs"},{"id":"build/build-hackathon","path":"/docs/build-hackathon","sidebar":"docs"},{"id":"build/build-hrmp-channels","path":"/docs/build-hrmp-channels","sidebar":"docs"},{"id":"build/build-index","path":"/docs/build-index"},{"id":"build/build-integrate-assets","path":"/docs/build-integrate-assets","sidebar":"docs"},{"id":"build/build-integration","path":"/docs/build-integration","sidebar":"docs"},{"id":"build/build-light-clients","path":"/docs/build-light-clients","sidebar":"docs"},{"id":"build/build-network-overview","path":"/docs/build-network-overview","sidebar":"docs"},{"id":"build/build-node-interaction","path":"/docs/build-node-interaction","sidebar":"docs"},{"id":"build/build-node-management","path":"/docs/build-node-management","sidebar":"docs"},{"id":"build/build-open-source","path":"/docs/build-open-source","sidebar":"docs"},{"id":"build/build-oracle","path":"/docs/build-oracle"},{"id":"build/build-parachains","path":"/docs/build-pdk","sidebar":"docs"},{"id":"build/build-protocol-info","path":"/docs/build-protocol-info","sidebar":"docs"},{"id":"build/build-smart-contracts","path":"/docs/build-smart-contracts","sidebar":"docs"},{"id":"build/build-storage","path":"/docs/build-storage"},{"id":"build/build-tools-index","path":"/docs/build-tools-index","sidebar":"docs"},{"id":"build/build-transaction-construction","path":"/docs/build-transaction-construction","sidebar":"docs"},{"id":"general/alpha-program","path":"/docs/alpha-program","sidebar":"docs"},{"id":"general/ambassadors","path":"/docs/ambassadors","sidebar":"docs"},{"id":"general/bug-bounty","path":"/docs/bug-bounty","sidebar":"docs"},{"id":"general/chain-state-values","path":"/docs/chain-state-values","sidebar":"docs"},{"id":"general/community","path":"/docs/community","sidebar":"docs"},{"id":"general/contributing","path":"/docs/contributing","sidebar":"docs"},{"id":"general/contributors","path":"/docs/contributors","sidebar":"docs"},{"id":"general/decentralized-futures","path":"/docs/decentralized-futures","sidebar":"docs"},{"id":"general/decentralized-voices","path":"/docs/decentralized-voices","sidebar":"docs"},{"id":"general/dev-heroes","path":"/docs/dev-heroes","sidebar":"docs"},{"id":"general/doc-thousand-contributors","path":"/docs/thousand-contributors","sidebar":"docs"},{"id":"general/dune-analytics/dunesql-cheatsheet","path":"/docs/general/dunesql-cheatsheet","sidebar":"docs"},{"id":"general/dune-analytics/onboarding-status-and-key-dashboards","path":"/docs/general/onboarding-status-and-key-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/acala-dashboards","path":"/docs/general/dune-analytics/acala-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/assethub-dashboards","path":"/docs/general/dune-analytics/assethub-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/astar-dashboards","path":"/docs/general/dune-analytics/astar-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/bifrost-dashboards","path":"/docs/general/dune-analytics/bifrost-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/bridgehub-dashboards","path":"/docs/general/dune-analytics/bridgehub-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/centrifuge-dashboards","path":"/docs/general/dune-analytics/centrifuge-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/collectives-dashboards","path":"/docs/general/dune-analytics/collectives-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/coretime-dashboards","path":"/docs/general/dune-analytics/coretime-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/energywebx-dashboards","path":"/docs/general/dune-analytics/energywebx-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/frequency-dashboards","path":"/docs/general/dune-analytics/frequency-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/hydration-dashboards","path":"/docs/general/dune-analytics/hydration-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/interlay-dashboards","path":"/docs/general/dune-analytics/interlay-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/invarch-dashboards","path":"/docs/general/dune-analytics/invarch-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/litentry-dashboards","path":"/docs/general/dune-analytics/litentry-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/manta-dashboards","path":"/docs/general/dune-analytics/manta-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/moonbeam-dashboards","path":"/docs/general/dune-analytics/moonbeam-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/neuroweb-dashboards","path":"/docs/general/dune-analytics/neuroweb-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/nodle-dashboards","path":"/docs/general/dune-analytics/nodle-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/pendulum-dashboards","path":"/docs/general/dune-analytics/pendulum-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/people-dashboards","path":"/docs/general/dune-analytics/people-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/phala-dashboards","path":"/docs/general/dune-analytics/phala-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/polimec-dashboards","path":"/docs/general/dune-analytics/polimec-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/polkadex-dashboards","path":"/docs/general/dune-analytics/polkadex-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/snowbridge-dashboards","path":"/docs/general/dune-analytics/snowbridge-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/stellaswap-dashboards","path":"/docs/general/dune-analytics/stellaswap-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards/unique-dashboards","path":"/docs/general/dune-analytics/unique-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-dot-ordinals","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-governance-dashboard","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-opengov-referenda-home","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-opengov-referendum-voting-analysis","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-nomination-pool","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-nominators","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-pool-member","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member"},{"id":"general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-validators","path":"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators"},{"id":"general/dune-analytics/polkadot-dashboards/polkadot-dashboards-governance","path":"/docs/general/dune-analytics/polkadot-dashboards-governance","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-dashboards/polkadot-dashboards-network","path":"/docs/general/dune-analytics/polkadot-dashboards-network","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-dashboards/polkadot-dashboards-overview","path":"/docs/general/dune-analytics/polkadot-dashboards-overview","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-dashboards/polkadot-dashboards-staking","path":"/docs/general/dune-analytics/polkadot-dashboards-staking","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-ecosystem-overview","path":"/docs/general/polkadot-ecosystem-overview","sidebar":"docs"},{"id":"general/dune-analytics/project-dashboards","path":"/docs/general/project-dashboards","sidebar":"docs"},{"id":"general/ecosystem-funds","path":"/docs/ecosystem-funds","sidebar":"docs"},{"id":"general/faq","path":"/docs/faq","sidebar":"docs"},{"id":"general/funding","path":"/docs/funding","sidebar":"docs"},{"id":"general/getting-started","path":"/docs/getting-started","sidebar":"docs"},{"id":"general/glossary","path":"/docs/glossary","sidebar":"docs"},{"id":"general/governance-apps","path":"/docs/governance-apps","sidebar":"docs"},{"id":"general/grants","path":"/docs/grants","sidebar":"docs"},{"id":"general/how-to-dyor","path":"/docs/how-to-dyor","sidebar":"docs"},{"id":"general/kusama/kusama-adversarial-cheatsheet","path":"/docs/kusama-adversarial-cheatsheet","sidebar":"docs"},{"id":"general/kusama/kusama-bug-bounty","path":"/docs/kusama-bug-bounty","sidebar":"docs"},{"id":"general/kusama/kusama-coc","path":"/docs/kusama-coc","sidebar":"docs"},{"id":"general/kusama/kusama-getting-started","path":"/docs/kusama-getting-started","sidebar":"docs"},{"id":"general/kusama/kusama-social-recovery","path":"/docs/kusama-social-recovery","sidebar":"docs"},{"id":"general/kusama/kusama-timeline","path":"/docs/kusama-timeline","sidebar":"docs"},{"id":"general/ledger","path":"/docs/ledger","sidebar":"docs"},{"id":"general/metadata","path":"/docs/metadata","sidebar":"docs"},{"id":"general/multisig-apps","path":"/docs/multisig-apps","sidebar":"docs"},{"id":"general/parachains-apps","path":"/docs/parachains-apps","sidebar":"docs"},{"id":"general/parity-data-dashboards","path":"/docs/parity-data-dashboards","sidebar":"docs"},{"id":"general/polkadot-community-foundation","path":"/docs/polkadot-community-foundation","sidebar":"docs"},{"id":"general/polkadot-direction","path":"/docs/polkadot-direction","sidebar":"docs"},{"id":"general/polkadot-v1","path":"/docs/polkadot-v1","sidebar":"docs"},{"id":"general/polkadot-vault","path":"/docs/polkadot-vault","sidebar":"docs"},{"id":"general/polkadotjs","path":"/docs/polkadotjs","sidebar":"docs"},{"id":"general/polkadotjs-ui","path":"/docs/polkadotjs-ui","sidebar":"docs"},{"id":"general/scams","path":"/docs/learn-scams","sidebar":"docs"},{"id":"general/staking-apps","path":"/docs/staking-apps","sidebar":"docs"},{"id":"general/staking-dashboard","path":"/docs/staking-dashboard","sidebar":"docs"},{"id":"general/start-building","path":"/docs/start-building","sidebar":"docs"},{"id":"general/transaction-attacks","path":"/docs/transaction-attacks","sidebar":"docs"},{"id":"general/wallets-and-extensions","path":"/docs/wallets-and-extensions","sidebar":"docs"},{"id":"general/web3-and-polkadot","path":"/docs/web3-and-polkadot","sidebar":"docs"},{"id":"learn/archive/learn-auction","path":"/docs/learn/learn-auction","sidebar":"docs"},{"id":"learn/archive/learn-controller","path":"/docs/learn/learn-controller","sidebar":"docs"},{"id":"learn/archive/learn-crowdloans","path":"/docs/learn/learn-crowdloans","sidebar":"docs"},{"id":"learn/archive/learn-governance","path":"/docs/learn/learn-governance","sidebar":"docs"},{"id":"learn/archive/learn-launch","path":"/docs/learn/learn-launch","sidebar":"docs"},{"id":"learn/archive/learn-redenomination","path":"/docs/learn/learn-redenomination","sidebar":"docs"},{"id":"learn/archive/learn-treasury","path":"/docs/learn/learn-treasury","sidebar":"docs"},{"id":"learn/archive/thousand-validators","path":"/docs/learn/thousand-validators","sidebar":"docs"},{"id":"learn/learn-account-abstraction","path":"/docs/learn-account-abstraction","sidebar":"docs"},{"id":"learn/learn-account-advanced","path":"/docs/learn-account-advanced","sidebar":"docs"},{"id":"learn/learn-account-balances","path":"/docs/learn-account-balances","sidebar":"docs"},{"id":"learn/learn-account-multisig","path":"/docs/learn-account-multisig","sidebar":"docs"},{"id":"learn/learn-accounts","path":"/docs/learn-accounts","sidebar":"docs"},{"id":"learn/learn-agile-coretime","path":"/docs/learn-agile-coretime","sidebar":"docs"},{"id":"learn/learn-architecture","path":"/docs/learn-architecture","sidebar":"docs"},{"id":"learn/learn-archive","path":"/docs/learn-archive","sidebar":"docs"},{"id":"learn/learn-asset-conversion-assethub","path":"/docs/learn-asset-conversion-assethub","sidebar":"docs"},{"id":"learn/learn-assets","path":"/docs/learn-assets","sidebar":"docs"},{"id":"learn/learn-async-backing","path":"/docs/learn-async-backing","sidebar":"docs"},{"id":"learn/learn-bridges","path":"/docs/learn-bridges","sidebar":"docs"},{"id":"learn/learn-collator","path":"/docs/learn-collator","sidebar":"docs"},{"id":"learn/learn-comparisons","path":"/docs/learn-comparisons","sidebar":"docs"},{"id":"learn/learn-comparisons-avalanche","path":"/docs/learn-comparisons-avalanche","sidebar":"docs"},{"id":"learn/learn-comparisons-cosmos","path":"/docs/learn-comparisons-cosmos","sidebar":"docs"},{"id":"learn/learn-comparisons-ethereum-2","path":"/docs/learn-comparisons-ethereum-2","sidebar":"docs"},{"id":"learn/learn-comparisons-kusama","path":"/docs/learn-comparisons-kusama","sidebar":"docs"},{"id":"learn/learn-comparisons-rollups","path":"/docs/learn-comparisons-rollups","sidebar":"docs"},{"id":"learn/learn-consensus","path":"/docs/learn-consensus","sidebar":"docs"},{"id":"learn/learn-cryptography","path":"/docs/learn-cryptography","sidebar":"docs"},{"id":"learn/learn-DOT","path":"/docs/learn-DOT","sidebar":"docs"},{"id":"learn/learn-dot-ksm-bridge","path":"/docs/learn-dot-ksm-bridge","sidebar":"docs"},{"id":"learn/learn-elastic-scaling","path":"/docs/learn-elastic-scaling","sidebar":"docs"},{"id":"learn/learn-guides-accounts","path":"/docs/learn-guides-accounts","sidebar":"docs"},{"id":"learn/learn-guides-accounts-multisig","path":"/docs/learn-guides-accounts-multisig","sidebar":"docs"},{"id":"learn/learn-guides-accounts-proxy","path":"/docs/learn-guides-accounts-proxy","sidebar":"docs"},{"id":"learn/learn-guides-accounts-proxy-pure","path":"/docs/learn-guides-accounts-proxy-pure","sidebar":"docs"},{"id":"learn/learn-guides-asset-conversion","path":"/docs/learn-guides-asset-conversion","sidebar":"docs"},{"id":"learn/learn-guides-assets","path":"/docs/learn-guides-assets","sidebar":"docs"},{"id":"learn/learn-guides-assets-create","path":"/docs/learn-guides-assets-create","sidebar":"docs"},{"id":"learn/learn-guides-bounties","path":"/docs/learn-guides-bounties","sidebar":"docs"},{"id":"learn/learn-guides-bridges","path":"/docs/learn-guides-bridges","sidebar":"docs"},{"id":"learn/learn-guides-claims","path":"/docs/learn-guides-claims","sidebar":"docs"},{"id":"learn/learn-guides-coretime-marketplaces","path":"/docs/learn-guides-coretime-marketplaces","sidebar":"docs"},{"id":"learn/learn-guides-coretime-parachains","path":"/docs/learn-guides-coretime-parachains","sidebar":"docs"},{"id":"learn/learn-guides-coretime-swap","path":"/docs/learn-guides-coretime-swap","sidebar":"docs"},{"id":"learn/learn-guides-dot-ksm-bridge","path":"/docs/learn-guides-dot-ksm-bridge","sidebar":"docs"},{"id":"learn/learn-guides-identity","path":"/docs/learn-guides-identity","sidebar":"docs"},{"id":"learn/learn-guides-ledger","path":"/docs/learn-guides-ledger","sidebar":"docs"},{"id":"learn/learn-guides-nominator","path":"/docs/learn-guides-nominator","sidebar":"docs"},{"id":"learn/learn-guides-polkadot-opengov","path":"/docs/learn-guides-polkadot-opengov","sidebar":"docs"},{"id":"learn/learn-guides-staking","path":"/docs/learn-guides-staking","sidebar":"docs"},{"id":"learn/learn-guides-staking-pools","path":"/docs/learn-guides-staking-pools","sidebar":"docs"},{"id":"learn/learn-guides-test-opengov-proposals","path":"/docs/learn-guides-test-opengov-proposals","sidebar":"docs"},{"id":"learn/learn-guides-transfers","path":"/docs/learn-guides-transfers","sidebar":"docs"},{"id":"learn/learn-guides-treasury","path":"/docs/learn-guides-treasury","sidebar":"docs"},{"id":"learn/learn-guides-vault","path":"/docs/learn-guides-vault","sidebar":"docs"},{"id":"learn/learn-hyperbridge","path":"/docs/learn-hyperbridge","sidebar":"docs"},{"id":"learn/learn-identity","path":"/docs/learn-identity","sidebar":"docs"},{"id":"learn/learn-implementations","path":"/docs/learn-implementations"},{"id":"learn/learn-inflation","path":"/docs/learn-inflation","sidebar":"docs"},{"id":"learn/learn-jam-chain","path":"/docs/learn-jam-chain","sidebar":"docs"},{"id":"learn/learn-jam-faq","path":"/docs/learn-jam-faq","sidebar":"docs"},{"id":"learn/learn-kusama-inflation","path":"/docs/learn-kusama-inflation","sidebar":"docs"},{"id":"learn/learn-nft","path":"/docs/learn-nft","sidebar":"docs"},{"id":"learn/learn-nft-pallets","path":"/docs/learn-nft-pallets","sidebar":"docs"},{"id":"learn/learn-nft-projects","path":"/docs/learn-nft-projects","sidebar":"docs"},{"id":"learn/learn-nomination-pools","path":"/docs/learn-nomination-pools","sidebar":"docs"},{"id":"learn/learn-nominator","path":"/docs/learn-nominator","sidebar":"docs"},{"id":"learn/learn-offenses","path":"/docs/learn-offenses","sidebar":"docs"},{"id":"learn/learn-parachains","path":"/docs/learn-parachains","sidebar":"docs"},{"id":"learn/learn-parachains-faq","path":"/docs/learn-parachains-faq","sidebar":"docs"},{"id":"learn/learn-parachains-protocol","path":"/docs/learn-parachains-protocol","sidebar":"docs"},{"id":"learn/learn-phragmen","path":"/docs/learn-phragmen","sidebar":"docs"},{"id":"learn/learn-polkadot-host","path":"/docs/learn-polkadot-host","sidebar":"docs"},{"id":"learn/learn-polkadot-js-guides","path":"/docs/learn-polkadot-js-guides","sidebar":"docs"},{"id":"learn/learn-polkadot-opengov","path":"/docs/learn-polkadot-opengov","sidebar":"docs"},{"id":"learn/learn-polkadot-opengov-origins","path":"/docs/learn-polkadot-opengov-origins","sidebar":"docs"},{"id":"learn/learn-polkadot-opengov-treasury","path":"/docs/learn-polkadot-opengov-treasury","sidebar":"docs"},{"id":"learn/learn-polkadot-technical-fellowship","path":"/docs/learn-polkadot-technical-fellowship","sidebar":"docs"},{"id":"learn/learn-polkadotjs","path":"/docs/learn-polkadotjs","sidebar":"docs"},{"id":"learn/learn-proxies","path":"/docs/learn-proxies","sidebar":"docs"},{"id":"learn/learn-proxies-pure","path":"/docs/learn-proxies-pure","sidebar":"docs"},{"id":"learn/learn-runtime-upgrades","path":"/docs/learn-runtime-upgrades","sidebar":"docs"},{"id":"learn/learn-safrole","path":"/docs/learn-safrole","sidebar":"docs"},{"id":"learn/learn-snowbridge","path":"/docs/learn-snowbridge","sidebar":"docs"},{"id":"learn/learn-spree","path":"/docs/learn-spree","sidebar":"docs"},{"id":"learn/learn-staking","path":"/docs/learn-staking","sidebar":"docs"},{"id":"learn/learn-staking-advanced","path":"/docs/learn-staking-advanced","sidebar":"docs"},{"id":"learn/learn-system-chains","path":"/docs/learn-system-chains","sidebar":"docs"},{"id":"learn/learn-teleport","path":"/docs/learn-teleport","sidebar":"docs"},{"id":"learn/learn-transactions","path":"/docs/learn-transactions","sidebar":"docs"},{"id":"learn/learn-validator","path":"/docs/learn-validator","sidebar":"docs"},{"id":"learn/learn-video-tutorials","path":"/docs/learn-video-tutorials","sidebar":"docs"},{"id":"learn/learn-wasm","path":"/docs/learn-wasm","sidebar":"docs"},{"id":"learn/learn-xcm","path":"/docs/learn-xcm","sidebar":"docs"},{"id":"learn/learn-xcm-instructions","path":"/docs/learn-xcm-instructions","sidebar":"docs"},{"id":"learn/learn-xcm-pallet","path":"/docs/learn-xcm-pallet","sidebar":"docs"},{"id":"learn/learn-xcm-transport","path":"/docs/learn-xcm-transport","sidebar":"docs"},{"id":"learn/learn-xcm-usecases","path":"/docs/learn-xcm-usecases","sidebar":"docs"},{"id":"learn/learn-xcvm","path":"/docs/learn-xcvm","sidebar":"docs"},{"id":"learn/xcm/executor_config/learn-xcm-docs-config-deep-dive","path":"/docs/learn/xcm/config-deep-dive","sidebar":"docs"},{"id":"learn/xcm/fundamentals/learn-xcm-docs-fundamentals-fees","path":"/docs/learn/xcm/fundamentals-fees","sidebar":"docs"},{"id":"learn/xcm/fundamentals/learn-xcm-docs-fundamentals-multiasset","path":"/docs/learn/xcm/fundamentals-multiasset","sidebar":"docs"},{"id":"learn/xcm/fundamentals/learn-xcm-docs-fundamentals-summary","path":"/docs/learn/xcm/fundamentals-summary","sidebar":"docs"},{"id":"learn/xcm/fundamentals/learn-xcm-docs-fundamentals-xcvm","path":"/docs/learn/xcm/fundamentals-xcvm","sidebar":"docs"},{"id":"learn/xcm/fundamentals/multilocation/learn-xcm-docs-multilocation-example","path":"/docs/learn/xcm/fundamentals/multilocation-example","sidebar":"docs"},{"id":"learn/xcm/fundamentals/multilocation/learn-xcm-docs-multilocation-junctions","path":"/docs/learn/xcm/fundamentals/multilocation-junctions","sidebar":"docs"},{"id":"learn/xcm/fundamentals/multilocation/learn-xcm-docs-multilocation-summary","path":"/docs/learn/xcm/fundamentals/multilocation-summary","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-assets","path":"/docs/learn/xcm/journey-assets","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-channels","path":"/docs/learn/xcm/journey-channels","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-expectations","path":"/docs/learn/xcm/journey-expectations","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-fees","path":"/docs/learn/xcm/journey-fees","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-holding","path":"/docs/learn/xcm/journey-holding","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-origin","path":"/docs/learn/xcm/journey-origin","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-queries","path":"/docs/learn/xcm/journey-queries","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-register","path":"/docs/learn/xcm/journey-register","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-summary","path":"/docs/learn/xcm/journey-summary","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-transact","path":"/docs/learn/xcm/journey-transact","sidebar":"docs"},{"id":"learn/xcm/journey/learn-xcm-docs-journey-version","path":"/docs/learn/xcm/journey-version","sidebar":"docs"},{"id":"learn/xcm/journey/locks/learn-xcm-docs-journey-locks","path":"/docs/learn/xcm/journey-locks","sidebar":"docs"},{"id":"learn/xcm/journey/transfers/learn-xcm-docs-transfers-reserve","path":"/docs/learn/xcm/journey/transfers-reserve","sidebar":"docs"},{"id":"learn/xcm/journey/transfers/learn-xcm-docs-transfers-summary","path":"/docs/learn/xcm/journey/transfers-summary","sidebar":"docs"},{"id":"learn/xcm/journey/transfers/learn-xcm-docs-transfers-teleport","path":"/docs/learn/xcm/journey/transfers-teleport","sidebar":"docs"},{"id":"learn/xcm/learn-xcm-docs-intro","path":"/docs/learn/xcm/introduction","sidebar":"docs"},{"id":"learn/xcm/learn-xcm-docs-testing","path":"/docs/learn/xcm/testing","sidebar":"docs"},{"id":"learn/xcm/overview/learn-xcm-docs-overview-architecture","path":"/docs/learn/xcm/overview-architecture","sidebar":"docs"},{"id":"learn/xcm/overview/learn-xcm-docs-overview-format","path":"/docs/learn/xcm/overview-format","sidebar":"docs"},{"id":"learn/xcm/overview/learn-xcm-docs-overview-intro","path":"/docs/learn/xcm/overview-intro","sidebar":"docs"},{"id":"learn/xcm/overview/learn-xcm-docs-overview-summary","path":"/docs/learn/xcm/overview-summary","sidebar":"docs"},{"id":"learn/xcm/overview/learn-xcm-docs-overview-xcvm","path":"/docs/learn/xcm/overview-xcvm","sidebar":"docs"},{"id":"learn/xcm/quickstart/learn-xcm-docs-quickstart-first-look","path":"/docs/learn/xcm/quickstart-first-look","sidebar":"docs"},{"id":"learn/xcm/quickstart/learn-xcm-docs-quickstart-simulator","path":"/docs/learn/xcm/quickstart-simulator","sidebar":"docs"},{"id":"learn/xcm/quickstart/learn-xcm-docs-quickstart-summary","path":"/docs/learn/xcm/quickstart-summary","sidebar":"docs"},{"id":"learn/xcm/reference/learn-xcm-docs-reference-glossary","path":"/docs/learn/xcm/reference-glossary","sidebar":"docs"},{"id":"learn/xcm/reference/learn-xcm-docs-reference-xcvm-registers","path":"/docs/learn/xcm/reference-xcvm-registers","sidebar":"docs"},{"id":"maintain/archive/maintain-guides-democracy","path":"/docs/maintain/maintain-guides-democracy","sidebar":"docs"},{"id":"maintain/archive/maintain-guides-how-to-join-council","path":"/docs/maintain/maintain-guides-how-to-join-council","sidebar":"docs"},{"id":"maintain/archive/maintain-guides-how-to-vote-councillor","path":"/docs/maintain/maintain-guides-how-to-vote-councillor","sidebar":"docs"},{"id":"maintain/doc-maintain-guides-validator-community","path":"/docs/maintain-guides-validator-community","sidebar":"docs"},{"id":"maintain/kusama/maintain-guides-how-to-validate-kusama","path":"/docs/maintain-guides-how-to-validate-kusama","sidebar":"docs"},{"id":"maintain/kusama/maintain-guides-society-kusama","path":"/docs/maintain-guides-society-kusama","sidebar":"docs"},{"id":"maintain/maintain-archive","path":"/docs/maintain-archive","sidebar":"docs"},{"id":"maintain/maintain-bootnode","path":"/docs/maintain-bootnode","sidebar":"docs"},{"id":"maintain/maintain-endpoints","path":"/docs/maintain-endpoints","sidebar":"docs"},{"id":"maintain/maintain-errors","path":"/docs/maintain-errors","sidebar":"docs"},{"id":"maintain/maintain-guides-async-backing","path":"/docs/maintain-guides-async-backing","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-chill","path":"/docs/maintain-guides-how-to-chill","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-monitor-your-node","path":"/docs/maintain-guides-how-to-monitor-your-node","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-stop-validating","path":"/docs/maintain-guides-how-to-stop-validating","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-systemd","path":"/docs/maintain-guides-how-to-systemd","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-upgrade","path":"/docs/maintain-guides-how-to-upgrade","sidebar":"docs"},{"id":"maintain/maintain-guides-how-to-validate-polkadot","path":"/docs/maintain-guides-how-to-validate-polkadot","sidebar":"docs"},{"id":"maintain/maintain-guides-secure-validator","path":"/docs/maintain-guides-secure-validator","sidebar":"docs"},{"id":"maintain/maintain-guides-validator-payout","path":"/docs/maintain-guides-validator-payout","sidebar":"docs"},{"id":"maintain/maintain-index","path":"/docs/maintain-index","sidebar":"docs"},{"id":"maintain/maintain-networks","path":"/docs/maintain-networks","sidebar":"docs"},{"id":"maintain/maintain-polkadot-parameters","path":"/docs/maintain-polkadot-parameters","sidebar":"docs"},{"id":"maintain/maintain-rpc","path":"/docs/maintain-rpc","sidebar":"docs"},{"id":"maintain/maintain-sync","path":"/docs/maintain-sync","sidebar":"docs"},{"id":"maintain/maintain-wss","path":"/docs/maintain-wss","sidebar":"docs"},{"id":"/explore-index","path":"/docs/explore-index","sidebar":"docs"},{"id":"/wallets-index","path":"/docs/wallets-index","sidebar":"docs"},{"id":"/apps-index","path":"/docs/apps-index","sidebar":"docs"},{"id":"/dashboards-index","path":"/docs/dashboards-index","sidebar":"docs"},{"id":"general/dune-analytics","path":"/docs/general/dune-analytics","sidebar":"docs"},{"id":"general/dune-analytics/polkadot-dashboards","path":"/docs/general/dune-analytics/polkadot-dashboards","sidebar":"docs"},{"id":"general/dune-analytics/parachain-dashboards","path":"/docs/general/dune-analytics/parachain-dashboards","sidebar":"docs"},{"id":"/community-index","path":"/docs/community-index","sidebar":"docs"},{"id":"/programs-index","path":"/docs/programs-index","sidebar":"docs"},{"id":"/learn-index","path":"/docs/learn-index","sidebar":"docs"},{"id":"/general-index","path":"/docs/general-index","sidebar":"docs"},{"id":"/polkadot-vision-index","path":"/docs/polkadot-vision-index","sidebar":"docs"},{"id":"/stay-safe-index","path":"/docs/stay-safe-index","sidebar":"docs"},{"id":"/learn-basics-index","path":"/docs/learn-basics-index","sidebar":"docs"},{"id":"/learn-staking-index","path":"/docs/learn-staking-index","sidebar":"docs"},{"id":"/learn-polkadot-opengov-index","path":"/docs/learn-polkadot-opengov-index","sidebar":"docs"},{"id":"/learn-assets-index","path":"/docs/learn-assets-index","sidebar":"docs"},{"id":"/learn-participants-index","path":"/docs/learn-participants-index","sidebar":"docs"},{"id":"/learn-components-index","path":"/docs/learn-components-index","sidebar":"docs"},{"id":"/learn-advanced-index","path":"/docs/learn-advanced-index","sidebar":"docs"},{"id":"/learn-parachains-index","path":"/docs/learn-parachains-index","sidebar":"docs"},{"id":"/learn-xcm-index","path":"/docs/learn-xcm-index","sidebar":"docs"},{"id":"learn/xcm","path":"/docs/learn/xcm","sidebar":"docs"},{"id":"/learn/xcm/overview","path":"/docs/learn/xcm/overview","sidebar":"docs"},{"id":"/learn/xcm/quickstart","path":"/docs/learn/xcm/quickstart","sidebar":"docs"},{"id":"/learn/xcm/fundamentals","path":"/docs/learn/xcm/fundamentals","sidebar":"docs"},{"id":"/learn/xcm/fundamentals/multilocation","path":"/docs/learn/xcm/fundamentals/multilocation","sidebar":"docs"},{"id":"/learn/xcm/journey","path":"/docs/learn/xcm/journey","sidebar":"docs"},{"id":"/learn/xcm/journey/transfers","path":"/docs/learn/xcm/journey/transfers","sidebar":"docs"},{"id":"/learn/xcm/references","path":"/docs/learn/xcm/references","sidebar":"docs"},{"id":"/learn-comparisons-index","path":"/docs/learn-comparisons-index","sidebar":"docs"},{"id":"/learn-future-implementations-index","path":"/docs/learn-future-implementations-index","sidebar":"docs"},{"id":"/learn-jam","path":"/docs/learn-jam","sidebar":"docs"},{"id":"/build-client-index","path":"/docs/build-client-index","sidebar":"docs"},{"id":"/build-protocol-index","path":"/docs/build-protocol-index","sidebar":"docs"},{"id":"/build-archive-index","path":"/docs/build-archive-index","sidebar":"docs"},{"id":"/maintain-node-index","path":"/docs/maintain-node-index","sidebar":"docs"},{"id":"/maintain-collator-index","path":"/docs/maintain-collator-index","sidebar":"docs"},{"id":"/maintain-validator-index","path":"/docs/maintain-validator-index","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/explore-index","label":"Explore"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(59940);const c=JSON.parse('{"docusaurusVersion":"3.6.3","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.6.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.6.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.6.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.6.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.6.3"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.6.3"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.6.3"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.6.3"}}}');var l=n(74848),u={siteConfig:a.default,siteMetadata:c,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){var t=e.children;return(0,l.jsx)(d.Provider,{value:u,children:t})}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(77387),a=n(96540),o=n(38193),i=n(5260),s=n(70440),c=n(96300),l=n(53102),u=n(74848);function d(e){var t=e.error,n=e.tryAgain;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(p,{error:t})]})}function p(e){var t=e.error,n=(0,s.rA)(t).map((function(e){return e.message})).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function f(e){var t=e.children;return(0,u.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function m(e){var t=e.error,n=e.tryAgain;return(0,u.jsx)(f,{children:(0,u.jsxs)(b,{fallback:function(){return(0,u.jsx)(d,{error:t,tryAgain:n})},children:[(0,u.jsx)(i.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(c.A,{children:(0,u.jsx)(d,{error:t,tryAgain:n})})]})})}var h=function(e){return(0,u.jsx)(m,Object.assign({},e))},b=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){o.A.canUseDOM&&this.setState({error:e})},n.render=function(){var e=this,t=this.props.children,n=this.state.error;if(n){var r,a={error:n,tryAgain:function(){return e.setState({error:null})}};return(null!=(r=this.props.fallback)?r:h)(a)}return null!=t?t:null},t}(a.Component)},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document;const a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(80545),a=n(74848);function o(e){return(0,a.jsx)(r.mg,Object.assign({},e))}},28774:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(98587),a=n(96540),o=n(54625),i=n(70440),s=n(44586),c=n(16654),l=n(38193),u=n(63427),d=n(86025),p=n(74848),f=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h,b=e.isNavLink,g=e.to,y=e.href,v=e.activeClassName,x=e.isActive,w=e["data-noBrokenLinkCheck"],k=e.autoAddBaseUrl,_=void 0===k||k,S=(0,r.A)(e,f),E=(0,s.A)().siteConfig,j=E.trailingSlash,O=E.baseUrl,A=E.future.experimental_router,C=(0,d.hH)().withBaseUrl,P=(0,u.A)(),T=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(function(){return T.current}));var I=g||y;var N,L,R=(0,c.A)(I),D=null==I?void 0:I.replace("pathname://",""),M=void 0!==D?(N=D,_&&function(e){return e.startsWith("/")}(N)?C(N):N):void 0;"hash"===A&&null!=(n=M)&&n.startsWith("./")&&(M=null==(L=M)?void 0:L.slice(1));M&&R&&(M=(0,i.Ks)(M,{trailingSlash:j,baseUrl:O}));var F=(0,a.useRef)(!1),B=b?o.k2:o.N_,z=l.A.canUseIntersectionObserver,U=(0,a.useRef)(),q=function(){F.current||null==M||(window.docusaurus.preload(M),F.current=!0)};(0,a.useEffect)((function(){return!z&&R&&l.A.canUseDOM&&null!=M&&window.docusaurus.prefetch(M),function(){z&&U.current&&U.current.disconnect()}}),[U,M,z,R]);var $=null!=(m=null==(h=M)?void 0:h.startsWith("#"))&&m,H=!S.target||"_self"===S.target,V=!M||!R||!H||$&&"hash"!==A;w||!$&&V||P.collectLink(M),S.id&&P.collectAnchor(S.id);var W={};return V?(0,p.jsx)("a",Object.assign({ref:T,href:M},I&&!R&&{target:"_blank",rel:"noopener noreferrer"},S,W)):(0,p.jsx)(B,Object.assign({},S,{onMouseEnter:q,onTouchStart:q,innerRef:function(e){T.current=e,z&&e&&R&&(U.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(U.current.unobserve(e),U.current.disconnect(),null!=M&&window.docusaurus.prefetch(M))}))})),U.current.observe(e))},to:M},b&&{isActive:x,activeClassName:v},W))}const h=a.forwardRef(m)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,T:()=>c});var r=n(96540),a=n(74848);function o(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var i=n(59940);function s(e){var t,n,r=e.id,a=e.message;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=i[null!=r?r:a])?n:a)?t:r}function c(e,t){return o(s({message:e.message,id:e.id}),t)}function l(e){var t=e.children,n=e.id,r=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});var r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>i});var r=n(96540),a=n(44586),o=n(16654);function i(){var e=(0,a.A)().siteConfig,t=e.baseUrl,n=e.url,i=e.future.experimental_router,s=(0,r.useCallback)((function(e,r){return function(e){var t=e.siteUrl,n=e.baseUrl,r=e.url,a=e.options,i=void 0===a?{}:a,s=i.forcePrependBaseUrl,c=void 0!==s&&s,l=i.absolute,u=void 0!==l&&l,d=e.router;if(!r||r.startsWith("#")||(0,o.z)(r))return r;if("hash"===d)return r.startsWith("/")?"."+r:"./"+r;if(c)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;var p=r.startsWith(n)?r:n+r.replace(/^\//,"");return u?t+p:p}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})}),[n,t,i]);return{withBaseUrl:s}}function s(e,t){return void 0===t&&(t={}),(0,i().withBaseUrl)(e,t)}},63427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),a=(n(74848),r.createContext({collectAnchor:function(){},collectLink:function(){}})),o=function(){return(0,r.useContext)(a)};function i(){return o()}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(73348);function o(){return(0,r.useContext)(a.o)}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const a=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=function(e){return"object"==typeof e&&!!e&&Object.keys(e).length>0};function a(e){var t={};return function e(n,a){Object.entries(n).forEach((function(n){var o=n[0],i=n[1],s=a?a+"."+o:o;r(i)?e(i,s):t[s]=i}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(96540),a=n(74848),o=r.createContext(null);function i(e){var t=e.children,n=e.value,i=r.useContext(o),s=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:i,value:n})}),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},53886:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>v,g1:()=>y});var r=n(96540),a=n(44070),o=n(17065),i=n(6342),s=n(75376),c=n(43807),l=n(74848),u=function(e){return"docs-preferred-version-"+e},d={save:function(e,t,n){(0,s.Wf)(u(e),{persistence:t}).set(n)},read:function(e,t){return(0,s.Wf)(u(e),{persistence:t}).get()},clear:function(e,t){(0,s.Wf)(u(e),{persistence:t}).del()}},p=function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))};var f=r.createContext(null);function m(){var e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return p(n)})),s=o[0],c=o[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,a=d.read(t,n),r[t].versions.some((function(e){return e.name===a}))?{preferredVersionName:a}:(d.clear(t,n),{preferredVersionName:null}))];var t,a})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d.save(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=m();return(0,l.jsx)(f.Provider,{value:n,children:t})}function b(e){var t=e.children;return(0,l.jsx)(h,{children:t})}function g(){var e=(0,r.useContext)(f);if(!e)throw new c.dV("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=o.W);var n=(0,a.ht)(e),i=g(),s=i[0],c=i[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}function v(){var e=(0,a.Gy)(),t=g()[0];var n=Object.keys(e);return Object.fromEntries(n.map((function(n){return[n,(r=n,o=e[r],i=t[r].preferredVersionName,null!=(a=o.versions.find((function(e){return e.name===i})))?a:null)];var r,a,o,i})))}},82565:(e,t,n)=>{"use strict";n.d(t,{k:()=>o,v:()=>i});var r=n(44070),a=n(53886);function o(e,t){return"docs-"+e+"-"+t}function i(){var e=(0,r.Gy)(),t=(0,r.gk)(),n=(0,a.XK)();return[].concat(Object.keys(e).map((function(r){var a,i=(null==t?void 0:t.activePlugin.pluginId)===r?t.activeVersion:void 0,s=n[r],c=e[r].versions.find((function(e){return e.isLast}));return o(r,(null!=(a=null!=i?i:s)?a:c).name)})))}},60609:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,t:()=>l});var r=n(96540),a=n(43807),o=n(74848),i=Symbol("EmptyContext"),s=r.createContext(i);function c(e){var t=e.children,n=e.name,a=e.items,i=(0,r.useMemo)((function(){return n&&a?{name:n,items:a}:null}),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function l(){var e=(0,r.useContext)(s);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},26972:(e,t,n)=>{"use strict";n.d(t,{$S:()=>h,B5:()=>j,Nr:()=>m,OF:()=>k,QB:()=>E,Vd:()=>_,Y:()=>x,cC:()=>f,d1:()=>O,fW:()=>S,w8:()=>y});var r=n(43845),a=n(96540),o=n(56347),i=n(22831),s=n(44070),c=n(99169),l=n(31682),u=n(53886),d=n(23025),p=n(60609);function f(e){var t=(0,d.r)();if(e){var n=t.docs[e];if(!n)throw new Error("no version doc found by id="+e);return n}}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(var t,n=(0,r.A)(e.items);!(t=n()).done;){var a=m(t.value);if(a)return a}}(e):void 0:e.href}function h(){var e=(0,o.zy)().pathname,t=(0,p.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");var n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(e+" is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.");return n}var b=function(e,t){return void 0!==e&&(0,c.ys)(e,t)},g=function(e,t){return e.some((function(e){return y(e,t)}))};function y(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||g(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((function(e){return v(e,t)}));case"link":return!e.unlisted||y(e,t);default:return!0}}function x(e,t){return(0,a.useMemo)((function(){return e.filter((function(e){return v(e,t)}))}),[e,t])}function w(e){var t=e.sidebarItems,n=e.pathname,a=e.onlyCategories,o=void 0!==a&&a,i=[];return function e(t){for(var a,s=(0,r.A)(t);!(a=s()).done;){var l=a.value;if("category"===l.type&&((0,c.ys)(l.href,n)||e(l.items))||"link"===l.type&&(0,c.ys)(l.href,n))return o&&"category"!==l.type||i.unshift(l),!0}return!1}(t),i}function k(){var e,t=(0,p.t)(),n=(0,o.zy)().pathname;return!1!==(null==(e=(0,s.vT)())?void 0:e.pluginData.breadcrumbs)&&t?w({sidebarItems:t.items,pathname:n}):null}function _(e){var t=(0,s.zK)(e).activeVersion,n=(0,u.g1)(e).preferredVersion,r=(0,s.r7)(e);return(0,a.useMemo)((function(){return(0,l.sb)([t,n,r].filter(Boolean))}),[t,n,r])}function S(e,t){var n=_(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function E(e,t){var n=_(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,l.sb)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function j(e){var t=e.route,n=(0,o.zy)(),r=(0,d.r)(),a=t.routes,s=a.find((function(e){return(0,o.B6)(n.pathname,e)}));if(!s)return null;var c=s.sidebar,l=c?r.docsSidebars[c]:void 0;return{docElement:(0,i.v)(a),sidebarName:c,sidebarItems:l}}function O(e){return e.filter((function(e){return!("category"===e.type||"link"===e.type)||!!m(e)}))}},23025:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>c});var r=n(96540),a=n(43807),o=n(74848),i=r.createContext(null);function s(e){var t=e.children,n=e.version;return(0,o.jsx)(i.Provider,{value:n,children:t})}function c(){var e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},44070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>f,gk:()=>m,Gy:()=>d,HW:()=>y,ht:()=>p,r7:()=>b,jh:()=>h});var r=n(56347),a=n(44586),o=n(17065);function i(e,t){void 0===t&&(t={});var n=(0,a.A)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}var s=function(e){return e.versions.find((function(e){return e.isLast}))};function c(e,t){return[].concat(e.versions).sort((function(e,t){return e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0})).find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})}))}function l(e,t){var n,a,o=c(e,t),i=null==o?void 0:o.docs.find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:o,activeDoc:i,alternateDocVersions:i?(n=i.id,a={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(a[e.name]=t)}))})),a):{}}}var u={},d=function(){var e;return null!=(e=i("docusaurus-plugin-content-docs"))?e:u},p=function(e){try{return function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});var r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":" (pluginId="+e),{cause:t})}};function f(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var a=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o}(d(),(0,r.zy)().pathname,e)}function m(e){void 0===e&&(e={});var t=f(e),n=(0,r.zy)().pathname;if(t)return{activePlugin:t,activeVersion:c(t.pluginData,n)}}function h(e){return p(e).versions}function b(e){var t=p(e);return s(t)}function g(e){return l(p(e),(0,r.zy)().pathname)}function y(e){return function(e,t){var n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(p(e),(0,r.zy)().pathname)}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){a().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){a().done()}}},26134:(e,t,n)=>{"use strict";var r,a,o,i=n(71765),s=n(85290);r=i.My,a=s.default.themeConfig.prism.additionalLanguages,o=globalThis.Prism,globalThis.Prism=r,a.forEach((function(e){"php"===e&&n(19700),n(91830)("./prism-"+e)})),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=r)},51107:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(98587),a=(n(96540),n(34164)),o=n(21312),i=n(6342),s=n(28774),c=n(63427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(74848),d=["as","id"];function p(e){var t=e.as,n=e.id,p=(0,r.A)(e,d),f=(0,c.A)(),m=(0,i.p)().navbar.hideOnScroll;if("h1"===t||!n)return(0,u.jsx)(t,Object.assign({},p,{id:void 0}));f.collectAnchor(n);var h=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof p.children?p.children:n});return(0,u.jsxs)(t,Object.assign({},p,{className:(0,a.A)("anchor",m?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,p.className),id:n,children:[p.children,(0,u.jsx)(s.A,{className:"hash-link",to:"#"+n,"aria-label":h,title:h,children:"\u200b"})]}))}},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(74848);function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,i=void 0===o?13.5:o;return(0,a.jsx)("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},96300:(e,t,n)=>{"use strict";n.d(t,{A:()=>Bt});var r=n(96540),a=n(34164),o=n(67489),i=n(69024),s=n(56347),c=n(21312),l=n(75062),u=n(74848),d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){var e=(0,r.useRef)(null),t=(0,s.W6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&p(n)}),[]);return(0,l.$)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}var m=(0,c.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t,n=null!=(t=e.children)?t:m,r=f(),a=r.containerRef,o=r.onClick;return(0,u.jsx)("div",{ref:a,role:"region","aria-label":m,children:(0,u.jsx)("a",Object.assign({},e,{href:"#"+d,onClick:o,children:n}))})}var b=n(17559),g=n(14090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var x=n(6342),w=n(65041),k=n(98587),_=["width","height","color","strokeWidth","className"];function S(e){var t=e.width,n=void 0===t?21:t,r=e.height,a=void 0===r?21:r,o=e.color,i=void 0===o?"currentColor":o,s=e.strokeWidth,c=void 0===s?1.2:s,l=(e.className,(0,k.A)(e,_));return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 15 15",width:n,height:a},l,{children:(0,u.jsx)("g",{stroke:i,strokeWidth:c,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})}))}const E={closeButton:"closeButton_CVFx"};function j(e){return(0,u.jsx)("button",Object.assign({type:"button","aria-label":(0,c.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.A)("clean-btn close",E.closeButton,e.className),children:(0,u.jsx)(S,{width:14,height:14,strokeWidth:3.1})}))}const O={content:"content_knG7"};function A(e){var t=(0,x.p)().announcementBar.content;return(0,u.jsx)("div",Object.assign({},e,{className:(0,a.A)(O.content,e.className),dangerouslySetInnerHTML:{__html:t}}))}const C={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function P(){var e=(0,x.p)().announcementBar,t=(0,w.M)(),n=t.isActive,r=t.close;if(!n)return null;var a=e.backgroundColor,o=e.textColor,i=e.isCloseable;return(0,u.jsxs)("div",{className:C.announcementBar,style:{backgroundColor:a,color:o},role:"banner",children:[i&&(0,u.jsx)("div",{className:C.announcementBarPlaceholder}),(0,u.jsx)(A,{className:C.announcementBarContent}),i&&(0,u.jsx)(j,{onClick:r,className:C.announcementBarClose})]})}var T=n(22069),I=n(23104);var N=n(43807),L=n(75600),R=r.createContext(null);function D(e){var t,n,a,o,i,s,c,l=e.children,d=(t=(0,T.M)(),n=(0,L.YL)(),a=(0,r.useState)(!1),o=a[0],i=a[1],s=null!==n.component,c=(0,N.ZC)(s),(0,r.useEffect)((function(){s&&!c&&i(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||i(!0):i(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[o,i]}),[o]));return(0,u.jsx)(R.Provider,{value:d,children:l})}function M(e){if(e.component){var t=e.component;return(0,u.jsx)(t,Object.assign({},e.props))}}function F(){var e=(0,r.useContext)(R);if(!e)throw new N.dV("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],a=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,L.YL)();return(0,r.useMemo)((function(){return{shown:t,hide:a,content:M(o)}}),[a,o,t])}function B(e){var t=e.header,n=e.primaryMenu,r=e.secondaryMenu,o=F().shown;return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var z=n(95293),U=n(92303);function q(e){return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:24,height:24},e,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})}))}function $(e){return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:24,height:24},e,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})}))}const H={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function V(e){var t=e.className,n=e.buttonClassName,r=e.value,o=e.onChange,i=(0,U.A)(),s=(0,c.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,c.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.A)(H.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.A)("clean-btn",H.toggleButton,!i&&H.toggleButtonDisabled,n),type:"button",onClick:function(){return o("dark"===r?"light":"dark")},disabled:!i,title:s,"aria-label":s,"aria-live":"polite","aria-pressed":"dark"===r?"true":"false",children:[(0,u.jsx)(q,{className:(0,a.A)(H.toggleIcon,H.lightToggleIcon)}),(0,u.jsx)($,{className:(0,a.A)(H.toggleIcon,H.darkToggleIcon)})]})})}const W=r.memo(V),K={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){var t=e.className,n=(0,x.p)().navbar.style,r=(0,x.p)().colorMode.disableSwitch,a=(0,z.G)(),o=a.colorMode,i=a.setColorMode;return r?null:(0,u.jsx)(W,{className:t,buttonClassName:"dark"===n?K.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var Q=n(39529);function Y(){return(0,u.jsx)(Q.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Z(){var e=(0,T.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,c.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()},children:(0,u.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function X(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Y,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Z,{})]})}var J=n(28774),ee=n(86025),te=n(16654),ne=n(91252),re=n(43186),ae=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function oe(e){var t=e.activeBasePath,n=e.activeBaseRegex,r=e.to,a=e.href,o=e.label,i=e.html,s=e.isDropdownLink,c=e.prependBaseUrlToHref,l=(0,k.A)(e,ae),d=(0,ee.Ay)(r),p=(0,ee.Ay)(t),f=(0,ee.Ay)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,te.A)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,m&&(0,u.jsx)(re.A,Object.assign({},s&&{width:12,height:12}))]})};return a?(0,u.jsx)(J.A,Object.assign({href:c?f:a},l,h)):(0,u.jsx)(J.A,Object.assign({to:d,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?(0,ne.G)(n,t.pathname):t.pathname.startsWith(p)}},l,h))}var ie=["className","isDropdownItem"],se=["className","isDropdownItem"],ce=["mobile","position"];function le(e){var t=e.className,n=e.isDropdownItem,r=void 0!==n&&n,o=(0,k.A)(e,ie),i=(0,u.jsx)(oe,Object.assign({className:(0,a.A)(r?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:r},o));return r?(0,u.jsx)("li",{children:i}):i}function ue(e){var t=e.className,n=(e.isDropdownItem,(0,k.A)(e,se));return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(oe,Object.assign({className:(0,a.A)("menu__link",t)},n))})}function de(e){var t,n=e.mobile,r=void 0!==n&&n,a=(e.position,(0,k.A)(e,ce)),o=r?ue:le;return(0,u.jsx)(o,Object.assign({},a,{activeClassName:null!=(t=a.activeClassName)?t:r?"menu__link--active":"navbar__link--active"}))}var pe=n(41422),fe=n(99169),me=n(44586);const he="dropdownNavbarItemMobile_S0Fm";var be=["items","position","className","onClick"],ge=["items","className","position","onClick"],ye=["mobile"];function ve(e,t){return e.some((function(e){return function(e,t){return!!(0,fe.ys)(e.to,t)||!!(0,ne.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function xe(e){var t,n=e.items,o=e.position,i=e.className,s=(e.onClick,(0,k.A)(e,be)),c=(0,r.useRef)(null),l=(0,r.useState)(!1),d=l[0],p=l[1];return(0,r.useEffect)((function(){var e=function(e){c.current&&!c.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),(0,u.jsxs)("div",{ref:c,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":d}),children:[(0,u.jsx)(oe,Object.assign({"aria-haspopup":"true","aria-expanded":d,role:"button",href:s.to?void 0:"#",className:(0,a.A)("navbar__link",i)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),p(!d))},children:null!=(t=s.children)?t:s.label})),(0,u.jsx)("ul",{className:"dropdown__menu",children:n.map((function(e,t){return(0,r.createElement)(tt,Object.assign({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))})]})}function we(e){var t,n,o=e.items,i=e.className,c=(e.position,e.onClick),l=(0,k.A)(e,ge),d=(n=(0,me.A)().siteConfig.baseUrl,(0,s.zy)().pathname.replace(n,"/")),p=ve(o,d),f=(0,pe.u)({initialState:function(){return!p}}),m=f.collapsed,h=f.toggleCollapsed,b=f.setCollapsed;return(0,r.useEffect)((function(){p&&b(!p)}),[d,p,b]),(0,u.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":m}),children:[(0,u.jsx)(oe,Object.assign({role:"button",className:(0,a.A)(he,"menu__link menu__link--sublist menu__link--sublist-caret",i)},l,{onClick:function(e){e.preventDefault(),h()},children:null!=(t=l.children)?t:l.label})),(0,u.jsx)(pe.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:m,children:o.map((function(e,t){return(0,r.createElement)(tt,Object.assign({mobile:!0,isDropdownItem:!0,onClick:c,activeClassName:"menu__link--active"},e,{key:t}))}))})]})}function ke(e){var t=e.mobile,n=void 0!==t&&t,r=(0,k.A)(e,ye),a=n?we:xe;return(0,u.jsx)(a,Object.assign({},r))}var _e=n(32131),Se=["width","height"];function Ee(e){var t=e.width,n=void 0===t?20:t,r=e.height,a=void 0===r?20:r,o=(0,k.A)(e,Se);return(0,u.jsx)("svg",Object.assign({viewBox:"0 0 24 24",width:n,height:a,"aria-hidden":!0},o,{children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})}))}const je="iconLanguage_nlXk";var Oe=["mobile","dropdownItemsBefore","dropdownItemsAfter","queryString"];var Ae=n(40961),Ce=n(55600),Pe=n(5260),Te=n(24255),Ie=n(51062),Ne=n(2967),Le=n(82565);function Re(){var e;return["language:"+(0,me.A)().i18n.currentLocale,(e=(0,Le.v)(),[Ne.C].concat(e)).map((function(e){return"docusaurus_tag:"+e}))]}const De={button:{buttonText:(0,c.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,c.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,c.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,c.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,c.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,c.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,c.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,c.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,c.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,c.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,c.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,c.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,c.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,c.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,c.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,c.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,c.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,c.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,c.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,c.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,c.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,c.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,c.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,c.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,c.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,c.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,c.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};var Me=["contextualSearch","externalUrlRegex"],Fe=null;function Be(e){var t=e.hit,n=e.children;return(0,u.jsx)(J.A,{to:t.url,children:n})}function ze(e){var t=e.state,n=e.onClose,r=(0,Te.w)();return(0,u.jsx)(J.A,{to:r(t.query),onClick:n,children:(0,u.jsx)(c.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Ue(e){var t,a,o,i,c=e.contextualSearch,l=e.externalUrlRegex,d=(0,k.A)(e,Me),p=(0,me.A)().siteMetadata,f=(0,Ie.C)(),m=Re(),h=null!=(t=null==(a=d.searchParameters)?void 0:a.facetFilters)?t:[],b=c?(o=h,[].concat((i=function(e){return"string"==typeof e?[e]:e})(m),i(o))):h,g=Object.assign({},d.searchParameters,{facetFilters:b}),y=(0,s.W6)(),v=(0,r.useRef)(null),x=(0,r.useRef)(null),w=(0,r.useState)(!1),_=w[0],S=w[1],E=(0,r.useState)(void 0),j=E[0],O=E[1],A=(0,r.useCallback)((function(){return Fe?Promise.resolve():Promise.all([n.e(8158).then(n.bind(n,48158)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,90416))]).then((function(e){var t=e[0].DocSearchModal;Fe=t}))}),[]),C=(0,r.useCallback)((function(){if(!v.current){var e=document.createElement("div");v.current=e,document.body.insertBefore(e,document.body.firstChild)}}),[]),P=(0,r.useCallback)((function(){C(),A().then((function(){return S(!0)}))}),[A,C]),T=(0,r.useCallback)((function(){var e;S(!1),null==(e=x.current)||e.focus()}),[]),I=(0,r.useCallback)((function(e){"f"===e.key&&(e.metaKey||e.ctrlKey)||(e.preventDefault(),O(e.key),P())}),[P]),N=(0,r.useRef)({navigate:function(e){var t=e.itemUrl;(0,ne.G)(l,t)?window.location.href=t:y.push(t)}}).current,L=(0,r.useRef)((function(e){return d.transformItems?d.transformItems(e):e.map((function(e){return Object.assign({},e,{url:f(e.url)})}))})).current,R=(0,r.useMemo)((function(){return function(e){return(0,u.jsx)(ze,Object.assign({},e,{onClose:T}))}}),[T]),D=(0,r.useCallback)((function(e){return e.addAlgoliaAgent("docusaurus",p.docusaurusVersion),e}),[p.docusaurusVersion]);return(0,Ce.E8)({isOpen:_,onOpen:P,onClose:T,onInput:I,searchButtonRef:x}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Pe.A,{children:(0,u.jsx)("link",{rel:"preconnect",href:"https://"+d.appId+"-dsn.algolia.net",crossOrigin:"anonymous"})}),(0,u.jsx)(Ce.Bc,{onTouchStart:A,onFocus:A,onMouseOver:A,onClick:P,ref:x,translations:De.button}),_&&Fe&&v.current&&(0,Ae.createPortal)((0,u.jsx)(Fe,Object.assign({onClose:T,initialScrollY:window.scrollY,initialQuery:j,navigator:N,transformItems:L,hitComponent:Be,transformSearchClient:D},d.searchPagePath&&{resultsFooterComponent:R},d,{searchParameters:g,placeholder:De.placeholder,translations:De.modal})),v.current)]})}function qe(){var e=(0,me.A)().siteConfig;return(0,u.jsx)(Ue,Object.assign({},e.themeConfig.algolia))}const $e={navbarSearchContainer:"navbarSearchContainer_Bca1"};function He(e){var t=e.children,n=e.className;return(0,u.jsx)("div",{className:(0,a.A)(n,$e.navbarSearchContainer),children:t})}var Ve=n(44070),We=n(26972),Ke=["docId","label","docsPluginId"];var Ge=["sidebarId","label","docsPluginId"];var Qe=["label","to","docsPluginId"];var Ye=n(53886),Ze=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"];function Xe(e,t){var n;return null!=(n=t.alternateDocVersions[e.name])?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(e)}const Je={default:de,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,r=e.dropdownItemsAfter,a=e.queryString,o=void 0===a?"":a,i=(0,k.A)(e,Oe),l=(0,me.A)().i18n,d=l.currentLocale,p=l.locales,f=l.localeConfigs,m=(0,_e.o)(),h=(0,s.zy)(),b=h.search,g=h.hash,y=p.map((function(e){var n=""+("pathname://"+m.createUrl({locale:e,fullyQualified:!1}))+b+g+o;return{label:f[e].label,lang:f[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),v=[].concat(n,y,r),x=t?(0,c.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):f[d].label;return(0,u.jsx)(ke,Object.assign({},i,{mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ee,{className:je}),x]}),items:v}))},search:function(e){var t=e.mobile,n=e.className;return t?null:(0,u.jsx)(He,{className:n,children:(0,u.jsx)(qe,{})})},dropdown:ke,html:function(e){var t=e.value,n=e.className,r=e.mobile,o=void 0!==r&&r,i=e.isDropdownItem,s=void 0!==i&&i,c=s?"li":"div";return(0,u.jsx)(c,{className:(0,a.A)({navbar__item:!o&&!s,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,r=e.docsPluginId,a=(0,k.A)(e,Ke),o=(0,Ve.zK)(r).activeDoc,i=(0,We.QB)(t,r),s=(null==o?void 0:o.path)===(null==i?void 0:i.path);return null===i||i.unlisted&&!s?null:(0,u.jsx)(de,Object.assign({exact:!0},a,{isActive:function(){return s||!(null==o||!o.sidebar)&&o.sidebar===i.sidebar},label:null!=n?n:i.id,to:i.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,r=e.docsPluginId,a=(0,k.A)(e,Ge),o=(0,Ve.zK)(r).activeDoc,i=(0,We.fW)(t,r).link;if(!i)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return(0,u.jsx)(de,Object.assign({exact:!0},a,{isActive:function(){return(null==o?void 0:o.sidebar)===t},label:null!=n?n:i.label,to:i.path}))},docsVersion:function(e){var t=e.label,n=e.to,r=e.docsPluginId,a=(0,k.A)(e,Qe),o=(0,We.Vd)(r)[0],i=null!=t?t:o.label,s=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(o).path;return(0,u.jsx)(de,Object.assign({},a,{label:i,to:s}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,r=e.dropdownActiveClassDisabled,a=e.dropdownItemsBefore,o=e.dropdownItemsAfter,i=(0,k.A)(e,Ze),l=(0,s.zy)(),d=l.search,p=l.hash,f=(0,Ve.zK)(n),m=(0,Ve.jh)(n),h=(0,Ye.g1)(n).savePreferredVersionName,b=[].concat(a,m.map((function(e){var t=Xe(e,f);return{label:e.label,to:""+t.path+d+p,isActive:function(){return e===f.activeVersion},onClick:function(){return h(e.name)}}})),o),g=(0,We.Vd)(n)[0],y=t&&b.length>1?(0,c.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&b.length>1?void 0:Xe(g,f).path;return b.length<=1?(0,u.jsx)(de,Object.assign({},i,{mobile:t,label:y,to:v,isActive:r?function(){return!1}:void 0})):(0,u.jsx)(ke,Object.assign({},i,{mobile:t,label:y,to:v,items:b,isActive:r?function(){return!1}:void 0}))}};var et=["type"];function tt(e){var t=e.type,n=(0,k.A)(e,et),r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Je[r];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return(0,u.jsx)(a,Object.assign({},n))}function nt(){var e=(0,T.M)(),t=(0,x.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map((function(t,n){return(0,r.createElement)(tt,Object.assign({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))}))})}function rt(e){return(0,u.jsx)("button",Object.assign({},e,{type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(c.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})}))}function at(){var e=0===(0,x.p)().navbar.items.length,t=F();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(rt,{onClick:function(){return t.hide()}}),t.content]})}function ot(){var e,t=(0,T.M)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?(0,u.jsx)(B,{header:(0,u.jsx)(X,{}),primaryMenu:(0,u.jsx)(nt,{}),secondaryMenu:(0,u.jsx)(at,{})}):null}const it={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function st(e){return(0,u.jsx)("div",Object.assign({role:"presentation"},e,{className:(0,a.A)("navbar-sidebar__backdrop",e.className)}))}function ct(e){var t=e.children,n=(0,x.p)().navbar,o=n.hideOnScroll,i=n.style,s=(0,T.M)(),d=function(e){var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useRef)(!1),i=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,I.Mq)((function(t,n){var r=t.scrollY;if(e)if(r=s?a(!1):r+l{"use strict";n.d(t,{A:()=>v});var r=n(98587),a=n(96540),o=n(28774),i=n(86025),s=n(44586),c=n(6342),l=n(34164),u=n(92303),d=n(95293);const p={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var f=n(74848);function m(e){var t=e.className,n=e.children,r=(0,u.A)(),o=(0,d.G)().colorMode;return(0,f.jsx)(f.Fragment,{children:(r?"dark"===o?["dark"]:["light"]:["light","dark"]).map((function(e){var r=n({theme:e,className:(0,l.A)(t,p.themedComponent,p["themedComponent--"+e])});return(0,f.jsx)(a.Fragment,{children:r},e)}))})}var h=["sources","className","alt"];function b(e){var t=e.sources,n=e.className,a=e.alt,o=(0,r.A)(e,h);return(0,f.jsx)(m,{className:n,children:function(e){var n=e.theme,r=e.className;return(0,f.jsx)("img",Object.assign({src:t[n],alt:a,className:r},o))}})}var g=["imageClassName","titleClassName"];function y(e){var t=e.logo,n=e.alt,r=e.imageClassName,a={light:(0,i.Ay)(t.src),dark:(0,i.Ay)(t.srcDark||t.src)},o=(0,f.jsx)(b,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,f.jsx)("div",{className:r,children:o}):o}function v(e){var t,n=(0,s.A)().siteConfig.title,a=(0,c.p)().navbar,l=a.title,u=a.logo,d=e.imageClassName,p=e.titleClassName,m=(0,r.A)(e,g),h=(0,i.Ay)((null==u?void 0:u.href)||"/"),b=l?"":n,v=null!=(t=null==u?void 0:u.alt)?t:b;return(0,f.jsxs)(o.A,Object.assign({to:h},m,(null==u?void 0:u.target)&&{target:u.target},{children:[u&&(0,f.jsx)(y,{logo:u,alt:v,imageClassName:d}),null!=l&&(0,f.jsx)("b",{className:p,children:l})]}))}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(5260),a=n(74848);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>x,u:()=>p});var r=n(98587),a=n(96540),o=n(38193),i=n(205),s=n(53109),c=n(74848),l=["collapsed"],u=["lazy"],d="ease-in-out";function p(e){var t=e.initialState,n=(0,a.useState)(null!=t&&t),r=n[0],o=n[1],i=(0,a.useCallback)((function(){o((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:o,toggleCollapsed:i}}var f={display:"none",overflow:"hidden",height:"0px"},m={display:"block",overflow:"visible",height:"auto"};function h(e,t){var n=t?f:m;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function b(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,o=(0,a.useRef)(!1);(0,a.useEffect)((function(){var e,a=t.current;function i(){var e,t,n=a.scrollHeight,o=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.O)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+o+"ms "+(null!=(t=null==r?void 0:r.easing)?t:d),height:n+"px"}}function c(){var e=i();a.style.transition=e.transition,a.style.height=e.height}if(!o.current)return h(a,n),void(o.current=!0);return a.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){a.style.height=f.height,a.style.overflow=f.overflow}))):(a.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function g(e){if(!o.A.canUseDOM)return e?f:m}function y(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,o=e.children,i=e.animation,s=e.onCollapseTransitionEnd,l=e.className,u=e.disableSSRStyle,d=(0,a.useRef)(null);return b({collapsibleRef:d,collapsed:r,animation:i}),(0,c.jsx)(n,{ref:d,style:u?void 0:g(r),onTransitionEnd:function(e){"height"===e.propertyName&&(h(d.current,r),null==s||s(r))},className:l,children:o})}function v(e){var t=e.collapsed,n=(0,r.A)(e,l),o=(0,a.useState)(!t),s=o[0],u=o[1],d=(0,a.useState)(t),p=d[0],f=d[1];return(0,i.A)((function(){t||u(!0)}),[t]),(0,i.A)((function(){s&&f(t)}),[s,t]),s?(0,c.jsx)(y,Object.assign({},n,{collapsed:p})):null}function x(e){var t=e.lazy,n=(0,r.A)(e,u),a=t?v:y;return(0,c.jsx)(a,Object.assign({},n))}},65041:(e,t,n)=>{"use strict";n.d(t,{M:()=>h,o:()=>m});var r=n(96540),a=n(92303),o=n(75376),i=n(43807),s=n(6342),c=n(74848),l=(0,o.Wf)("docusaurus.announcement.dismiss"),u=(0,o.Wf)("docusaurus.announcement.id"),d=function(){return"true"===l.get()},p=function(e){return l.set(String(e))},f=r.createContext(null);function m(e){var t=e.children,n=function(){var e=(0,s.p)().announcementBar,t=(0,a.A)(),n=(0,r.useState)((function(){return!!t&&d()})),o=n[0],i=n[1];(0,r.useEffect)((function(){i(d())}),[]);var c=(0,r.useCallback)((function(){p(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=u.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;u.set(t),r&&p(!1),!r&&d()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:c}}),[e,o,c])}();return(0,c.jsx)(f.Provider,{value:n,children:t})}function h(){var e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>b});var r=n(96540),a=n(38193),o=n(43807),i=n(75376),s=n(6342),c=n(74848),l=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=function(e){return e===p.dark?p.dark:p.light},m=function(e){return a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e)},h=function(e){d.set(f(e))};function b(e){var t=e.children,n=function(){var e=(0,s.p)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,o=(0,r.useState)(m(t)),i=o[0],c=o[1];(0,r.useEffect)((function(){n&&d.del()}),[n]);var l=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,o=void 0===r||r;e?(c(e),o&&h(e)):(c(a?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:t),d.del())}),[a,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",f(i))}),[i]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===u){var t=d.get();null!==t&&l(f(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,l]);var b=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||a){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||b.current?b.current=window.matchMedia("print").matches:l(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[l,n,a]),(0,r.useMemo)((function(){return{colorMode:i,setColorMode:l,get isDarkTheme(){return i===p.dark},setLightTheme:function(){l(p.light)},setDarkTheme:function(){l(p.dark)}}}),[i,l])}();return(0,c.jsx)(l.Provider,{value:n,children:t})}function g(){var e=(0,r.useContext)(l);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(96540),a=n(75600),o=n(24581),i=n(57485),s=n(6342),c=n(43807),l=n(74848),u=r.createContext(void 0);function d(){var e,t=(e=(0,a.YL)(),0===(0,s.p)().navbar.items.length&&!e.component),n=(0,o.l)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,i.$Z)((function(){if(u)return d(!1),!1}));var p=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:p,shown:u}}),[t,c,p,u])}function p(e){var t=e.children,n=d();return(0,l.jsx)(u.Provider,{value:n,children:t})}function f(){var e=r.useContext(u);if(void 0===e)throw new c.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>l,YL:()=>c,y_:()=>s});var r=n(96540),a=n(43807),o=n(74848),i=r.createContext(null);function s(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function c(){var e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){var t=e.component,n=e.props,o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");var s=o[1],c=(0,a.Be)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(96540),a="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24255:(e,t,n)=>{"use strict";n.d(t,{b:()=>s,w:()=>c});var r=n(96540),a=n(44586),o=n(57485),i="q";function s(){return(0,o.l)(i)}function c(){var e=(0,a.A)().siteConfig,t=e.baseUrl,n=e.themeConfig.algolia.searchPagePath;return(0,r.useCallback)((function(e){return""+t+n+"?"+i+"="+encodeURIComponent(e)}),[t,n])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(96540),a=n(38193),o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){var t=(void 0===e?{}:e).desktopBreakpoint,n=void 0===t?i:t,s=(0,r.useState)((function(){return"ssr"})),c=s[0],l=s[1];return(0,r.useEffect)((function(){function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(n))}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[n]),c}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},12181:(e,t,n)=>{"use strict";n.d(t,{bq:()=>d,MN:()=>u,a2:()=>l,k2:()=>p});var r=n(77387),a=n(96540),o=n(21312),i=n(70440);const s={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var c=n(74848);function l(e){return(0,c.jsx)("button",Object.assign({type:"button"},e,{children:(0,c.jsx)(o.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})}))}function u(e){var t=e.error,n=e.tryAgain;return(0,c.jsxs)("div",{className:s.errorBoundaryFallback,children:[(0,c.jsx)("p",{children:t.message}),(0,c.jsx)(l,{onClick:n})]})}function d(e){var t=e.error,n=(0,i.rA)(t).map((function(e){return e.message})).join("\n\nCause:\n");return(0,c.jsx)("p",{className:s.errorBoundaryError,children:n})}var p=function(e){function t(){return e.apply(this,arguments)||this}(0,r.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e,t){throw this.props.onError(e,t)},n.render=function(){return this.props.children},t}(a.Component)},20481:(e,t,n)=>{"use strict";n.d(t,{s:()=>a});var r=n(44586);function a(e){var t=(0,r.A)().siteConfig,n=t.title,a=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+a+" "+n:n}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,aZ:()=>c,l:()=>l});var r=n(96540),a=n(56347),o=n(43807);function i(e){!function(e){var t=(0,a.W6)(),n=(0,o._q)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function s(e){var t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,(function(){return e(t)}),(function(){return e(t)}))}function c(e){return s((function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)}))}function l(e){var t,n=null!=(t=c(e))?t:"",o=function(e){var t=(0,a.W6)();return(0,r.useCallback)((function(n,r){var a=new URLSearchParams(t.location.search);n?a.set(e,n):a.delete(e),(null!=r&&r.push?t.push:t.replace)({search:a.toString()})}),[e,t])}(e);return[n,o]}},31682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function a(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>a})},69024:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(96540),a=n(34164),o=n(5260),i=n(53102);function s(){var e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(86025),l=n(20481),u=n(74848);function d(e){var t=e.title,n=e.description,r=e.keywords,a=e.image,i=e.children,s=(0,l.s)(t),d=(0,c.hH)().withBaseUrl,p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}var p=r.createContext(void 0);function f(e){var t=e.className,n=e.children,i=r.useContext(p),s=(0,a.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){var t=e.children,n=s(),r="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),o="plugin-id-"+n.plugin.id;return(0,u.jsx)(f,{className:(0,a.A)(r,o),children:t})}},43807:(e,t,n)=>{"use strict";n.d(t,{dV:()=>m,fM:()=>b,_q:()=>p,ZC:()=>f,Be:()=>h});var r=n(3909),a=n(77387);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var i=n(63662);function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(s=function(){return!!e})()}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(s())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var a=new(e.bind.apply(e,r));return n&&(0,i.A)(a,n.prototype),a}(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,i.A)(n,e)},c(e)}var l=n(96540),u=n(205),d=n(74848);function p(e){var t=(0,l.useRef)(e);return(0,u.A)((function(){t.current=e}),[e]),(0,l.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function f(e){var t=(0,l.useRef)();return(0,u.A)((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var a,o,i;return(i=e.call(this)||this).name="ReactContextError",i.message="Hook "+(null!=(a=null==(o=i.stack)||null==(o=o.split("\n")[1])||null==(o=o.match((0,r.A)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:o.groups.name)?a:"")+" is called outside the <"+t+">. "+(null!=n?n:""),i}return(0,a.A)(t,e),t}(c(Error));function h(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,l.useMemo)((function(){return e}),t.flat())}function b(e){return function(t){var n=t.children;return(0,d.jsx)(d.Fragment,{children:e.reduceRight((function(e,t){return(0,d.jsx)(t,{children:e})}),n)})}}},91252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(96540),a=n(97671),o=n(44586);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,o.A)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:a.A,baseUrl:e})}),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,a_:()=>m,gk:()=>h});var r=n(96540),a=n(38193),o=n(92303),i=n(205),s=n(43807),c=n(74848);var l=r.createContext(void 0);function u(e){var t,n=e.children,a=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return(0,c.jsx)(l.Provider,{value:a,children:n})}function d(){var e=(0,r.useContext)(l);if(null==e)throw new s.dV("ScrollControllerProvider");return e}var p=function(){return a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function f(e,t){void 0===t&&(t=[]);var n=d().scrollEventsEnabledRef,a=(0,r.useRef)(p()),o=(0,s._q)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=p();o(e,a.current),a.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[o,n].concat(t))}function m(){var e,t,n,a=d(),o=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var a=n.getBoundingClientRect().top-r;return a&&window.scrollBy({left:0,top:a}),e.current={elem:null,top:0},{restored:0!==a}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),s=(0,r.useRef)(void 0),c=(0,r.useCallback)((function(e){o.save(e),a.disableScrollEvents(),s.current=function(){var e=o.restore().restored;if(s.current=void 0,e){var t=function(){a.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else a.enableScrollEvents()}}),[a,o]);return(0,i.A)((function(){queueMicrotask((function(){return null==s.current?void 0:s.current()}))})),{blockElementScrollPositionUntilNextRender:c}}function h(){var e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var a=document.documentElement.scrollTop;(n&&a>e||!n&&a{"use strict";n.d(t,{C:()=>r});var r="default"},75376:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u,Dv:()=>d});var r=n(96540);const a=JSON.parse('{"N":"localStorage","M":""}');var o=a.N;function i(e){var t=e.key,n=e.oldValue,r=e.newValue,a=e.storage;if(n!==r){var o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}}function s(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,c||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),c=!0),null}var t}var c=!1;var l={get:function(){return null},set:function(){},del:function(){},listen:function(){return function(){}}};function u(e,t){var n=""+e+a.M;if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(n);var r=s(null==t?void 0:t.persistence);return null===r?l:{get:function(){try{return r.getItem(n)}catch(e){return console.error("Docusaurus storage error, can't get key="+n,e),null}},set:function(e){try{var t=r.getItem(n);r.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:r})}catch(a){console.error("Docusaurus storage error, can't set "+n+"="+e,a)}},del:function(){try{var e=r.getItem(n);r.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:r})}catch(t){console.error("Docusaurus storage error, can't delete key="+n,t)}},listen:function(e){try{var t=function(t){t.storageArea===r&&t.key===n&&e(t)};return window.addEventListener("storage",t),function(){return window.removeEventListener("storage",t)}}catch(a){return console.error("Docusaurus storage error, can't listen for changes of key="+n,a),function(){}}}}}function d(e,t){var n=(0,r.useRef)((function(){return null===e?l:u(e,t)})).current(),a=(0,r.useCallback)((function(e){return"undefined"==typeof window?function(){}:n.listen(e)}),[n]);return[(0,r.useSyncExternalStore)(a,(function(){return"undefined"==typeof window?null:n.get()}),(function(){return null})),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(44586),a=n(56347),o=n(70440);function i(){var e=(0,r.A)(),t=e.siteConfig,n=t.baseUrl,i=t.url,s=t.trailingSlash,c=e.i18n,l=c.defaultLocale,u=c.currentLocale,d=(0,a.zy)().pathname,p=(0,o.Ks)(d,{trailingSlash:s,baseUrl:n}),f=u===l?n:n.replace("/"+u+"/","/"),m=p.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?i:"")+function(e){return e===l?""+f:""+f+e+"/"}(t)+m}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),a=n(56347),o=n(43807);function i(e){var t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(44586);function a(){return(0,r.A)().siteConfig.themeConfig}},38126:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(44586);function a(){return(0,r.A)().siteConfig.themeConfig}},51062:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(96540),a=n(91252),o=n(86025),i=n(38126);function s(){var e=(0,o.hH)().withBaseUrl,t=(0,i.c)().algolia,n=t.externalUrlRegex,s=t.replaceSearchResultPathname;return(0,r.useCallback)((function(t){var r=new URL(t);if((0,a.G)(n,r.href))return t;var o=""+(r.pathname+r.hash);return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(o,s))}),[e,n,s])}},12983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var i=e.split(/[#?]/)[0],s="/"===i||i===r?i:(c=i,l=n,l?a(c):o(c));var c,l;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;var r=n(42566);function a(e){return e.endsWith("/")?e:e+"/"}function o(e){return(0,r.removeSuffix)(e,"/")}},80253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){if(t.cause)return[t].concat(e(t.cause));return[t]}},70440:(e,t,n)=>{"use strict";t.rA=t.Ks=void 0;var r=n(31635);var a=n(12983);Object.defineProperty(t,"Ks",{enumerable:!0,get:function(){return r.__importDefault(a).default}});var o=n(42566);var i=n(80253);Object.defineProperty(t,"rA",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},42566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:""+t+e},t.removeSuffix=function(e,t){if(""===t)return e;return e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:""+e+t},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},97671:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(96540);var r=n(53259),a=n.n(r),o=n(91964);const i={"0058b4c6":[function(){return n.e(849).then(n.t.bind(n,9302,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-175.json",9302],"06597bc8":[function(){return Promise.all([n.e(1869),n.e(6417)]).then(n.bind(n,67526))},"@site/../docs/learn/archive/learn-treasury.md",67526],"078895e8":[function(){return Promise.all([n.e(1869),n.e(9909)]).then(n.bind(n,13995))},"@site/../docs/learn/archive/learn-controller.md",13995],"08c12c3a":[function(){return n.e(5630).then(n.bind(n,84110))},"@site/../docs/general/dune-analytics/parachain-dashboards/polimec-dashboards.md",84110],"09dda9ae":[function(){return n.e(2598).then(n.bind(n,26438))},"@site/../docs/general/dune-analytics/parachain-dashboards/polkadex-dashboards.md",26438],"0a3f0c9b":[function(){return Promise.all([n.e(1869),n.e(6555)]).then(n.bind(n,96475))},"@site/../docs/general/ledger.md",96475],"0b1a788a":[function(){return n.e(3395).then(n.t.bind(n,62508,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-jam-fed.json",62508],"0b632434":[function(){return n.e(4739).then(n.bind(n,69188))},"@site/../docs/general/parachains-apps.md",69188],"0df78d26":[function(){return n.e(782).then(n.bind(n,79411))},"@site/../docs/maintain/maintain-guides-secure-validator.md",79411],"0eeb7a68":[function(){return Promise.all([n.e(1869),n.e(6869)]).then(n.bind(n,503))},"@site/../docs/learn/learn-guides-DOT-KSM-bridge.md",503],"113faa87":[function(){return Promise.all([n.e(1869),n.e(6011)]).then(n.bind(n,74860))},"@site/../docs/learn/learn-guides-assets.md",74860],"12331e8b":[function(){return Promise.all([n.e(1869),n.e(2244)]).then(n.bind(n,38517))},"@site/../docs/general/polkadotjs.md",38517],"1283e352":[function(){return n.e(1396).then(n.t.bind(n,72140,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-01f.json",72140],"131c7f55":[function(){return Promise.all([n.e(1869),n.e(2298)]).then(n.bind(n,97029))},"@site/../docs/learn/learn-architecture.md",97029],"145746f5":[function(){return Promise.all([n.e(1869),n.e(6789)]).then(n.bind(n,61050))},"@site/../docs/maintain/maintain-polkadot-parameters.md",61050],"14eb3368":[function(){return Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,65847))},"@theme/DocCategoryGeneratedIndexPage",65847],15985664:[function(){return n.e(5881).then(n.bind(n,40393))},"@site/../docs/learn/xcm/journey/summary.md",40393],"1646726c":[function(){return Promise.all([n.e(1869),n.e(3266)]).then(n.bind(n,7244))},"@site/../docs/learn/learn-staking.md",7244],"17541cf3":[function(){return Promise.all([n.e(1869),n.e(2273)]).then(n.bind(n,33986))},"@site/../docs/learn/learn-kusama-inflation.md",33986],17896441:[function(){return Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,48220))},"@theme/DocItem",48220],"196e07e8":[function(){return n.e(3602).then(n.bind(n,77858))},"@site/../docs/general/dune-analytics/parachain-dashboards/interlay-dashboards.md",77858],"19ed4d4c":[function(){return n.e(4661).then(n.bind(n,69037))},"@site/../docs/learn/learn-comparisons-cosmos.md",69037],"1a4e3797":[function(){return Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,74604))},"@theme/SearchPage",74604],"1ae2b102":[function(){return n.e(8121).then(n.bind(n,56195))},"@site/../docs/build/build-protocol-info.md",56195],"1d6d4797":[function(){return n.e(3477).then(n.bind(n,49012))},"@site/../docs/learn/xcm/journey/transact.md",49012],"1de1f488":[function(){return n.e(1240).then(n.t.bind(n,72680,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-parachains-index-132.json",72680],"1e051548":[function(){return n.e(3598).then(n.t.bind(n,45621,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-index-c1b.json",45621],"1e15616a":[function(){return n.e(3751).then(n.bind(n,20526))},"@site/../docs/learn/learn-wasm.md",20526],"1ed3671a":[function(){return n.e(3377).then(n.bind(n,4730))},"@site/../docs/learn/xcm/journey/trap-and-claim.md",4730],"1f8e8ebd":[function(){return n.e(5592).then(n.t.bind(n,77299,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-general-dune-analytics-dfe.json",77299],"21877fa5":[function(){return Promise.all([n.e(1869),n.e(6466)]).then(n.bind(n,84746))},"@site/../docs/learn/learn-system-chains.md",84746],"21899dd2":[function(){return Promise.all([n.e(1869),n.e(5168)]).then(n.bind(n,55009))},"@site/../docs/learn/learn-parachains.md",55009],"23210cde":[function(){return Promise.all([n.e(1869),n.e(3482),n.e(499)]).then(n.bind(n,98236))},"@site/../docs/general/chain-state-values.md",98236],"23498fd5":[function(){return n.e(7276).then(n.bind(n,23474))},"@site/../docs/build/build-integrate-assets.md",23474],"240a6b01":[function(){return n.e(9633).then(n.bind(n,11140))},"@site/../docs/general/dune-analytics/parachain-dashboards/nodle-dashboards.md",11140],"2462cc91":[function(){return n.e(9141).then(n.bind(n,10196))},"@site/../docs/general/multisig-apps.md",10196],"25f2bd2a":[function(){return n.e(885).then(n.bind(n,62965))},"@site/../docs/maintain/maintain-guides-how-to-stop-validating.md",62965],"269b78ec":[function(){return n.e(1191).then(n.t.bind(n,76722,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-build-protocol-index-9e0.json",76722],"269bc3bb":[function(){return n.e(1968).then(n.bind(n,48374))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-nominators.md",48374],"26dc7bd1":[function(){return n.e(166).then(n.bind(n,56624))},"@site/../docs/general/dune-analytics/parachain-dashboards/invarch-dashboards.md",56624],"279fb1d6":[function(){return Promise.all([n.e(1869),n.e(4994)]).then(n.bind(n,70134))},"@site/../docs/general/kusama/kusama-getting-started.md",70134],"28b84bbb":[function(){return n.e(9385).then(n.bind(n,11662))},"@site/../docs/build/build-network-overview.md",11662],"2be0d940":[function(){return Promise.all([n.e(1869),n.e(4537)]).then(n.bind(n,23169))},"@site/../docs/learn/learn-guides-identity.md",23169],"2d34559d":[function(){return n.e(7893).then(n.bind(n,95754))},"@site/../docs/learn/learn-jam-chain.md",95754],"2d429218":[function(){return n.e(6361).then(n.bind(n,58267))},"@site/../docs/learn/learn-consensus.md",58267],"2e0c35d5":[function(){return n.e(2698).then(n.bind(n,4057))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-governance-dashboard.md",4057],"2e944e01":[function(){return n.e(4231).then(n.bind(n,13186))},"@site/../docs/general/dune-analytics/parachain-dashboards/manta-dashboards.md",13186],"2ea50c63":[function(){return n.e(1560).then(n.bind(n,6859))},"@site/../docs/learn/learn-xcm-usecases.md",6859],"2f3b630e":[function(){return Promise.all([n.e(1869),n.e(2584)]).then(n.bind(n,59327))},"@site/../docs/learn/learn-polkadot-opengov.md",59327],"3002ebf4":[function(){return Promise.all([n.e(1869),n.e(3423)]).then(n.bind(n,19639))},"@site/../docs/build/build-dapp.md",19639],"3184af97":[function(){return Promise.all([n.e(1869),n.e(5362)]).then(n.bind(n,93313))},"@site/../docs/maintain/archive/maintain-guides-how-to-vote-councillor.md",93313],"31bd35e0":[function(){return n.e(1042).then(n.bind(n,75535))},"@site/../docs/learn/xcm/overview/summary.md",75535],"320c8a05":[function(){return n.e(4479).then(n.bind(n,35689))},"@site/../docs/maintain/maintain-networks.md",35689],"32c9742a":[function(){return n.e(9682).then(n.bind(n,37608))},"@site/../docs/learn/xcm/fundamentals/summary.md",37608],"33b0bcab":[function(){return n.e(1519).then(n.bind(n,15958))},"@site/../docs/learn/xcm/reference/xcvm-registers.md",15958],"33bbe353":[function(){return n.e(5033).then(n.bind(n,35831))},"@site/../docs/maintain/kusama/maintain-guides-society-kusama.md",35831],"34b0fecb":[function(){return n.e(1024).then(n.t.bind(n,22e3,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-references-e58.json",22e3],"3521cab9":[function(){return n.e(3827).then(n.t.bind(n,69073,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-staking-index-244.json",69073],"36051dfe":[function(){return n.e(3949).then(n.bind(n,78579))},"@site/../docs/general/dune-analytics/parachain-dashboards/unique-dashboards.md",78579],"3611be04":[function(){return Promise.all([n.e(1869),n.e(5761)]).then(n.bind(n,46182))},"@site/../docs/learn/learn-offenses.md",46182],"36b7ae49":[function(){return n.e(1914).then(n.bind(n,31184))},"@site/../docs/learn/learn-snowbridge.md",31184],"3829cf1d":[function(){return n.e(5249).then(n.bind(n,56435))},"@site/../docs/maintain/maintain-guides-validator-community.md",56435],"386099fc":[function(){return n.e(3091).then(n.bind(n,18137))},"@site/../docs/learn/learn-polkadot-opengov-treasury.md",18137],"386bfe51":[function(){return n.e(6319).then(n.bind(n,48480))},"@site/../docs/general/contributing.md",48480],"387813b8":[function(){return n.e(2409).then(n.bind(n,91313))},"@site/../docs/learn/learn-guides-coretime-parachains.md",91313],"390ca211":[function(){return Promise.all([n.e(1869),n.e(2623)]).then(n.bind(n,86374))},"@site/../docs/learn/archive/learn-launch.md",86374],"3bd77df4":[function(){return Promise.all([n.e(1869),n.e(3976)]).then(n.bind(n,50628))},"@site/../docs/learn/learn-bridges.md",50628],"3bd87233":[function(){return n.e(8309).then(n.t.bind(n,36278,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-maintain-validator-index-997.json",36278],"3d1bf5db":[function(){return n.e(4190).then(n.bind(n,3413))},"@site/../docs/maintain/maintain-guides-async-backing.md",3413],"3e56470e":[function(){return n.e(1608).then(n.bind(n,97325))},"@site/../docs/maintain/maintain-wss.md",97325],"41b7b3e8":[function(){return n.e(577).then(n.bind(n,16044))},"@site/../docs/learn/learn-staking-advanced.md",16044],"41f7224c":[function(){return Promise.all([n.e(1869),n.e(7376)]).then(n.bind(n,90853))},"@site/../docs/learn/learn-archive.md",90853],"437b4e16":[function(){return n.e(8647).then(n.bind(n,37328))},"@site/../docs/general/dune-analytics/parachain-dashboards/snowbridge-dashboards.md",37328],"43ee4f22":[function(){return Promise.all([n.e(1869),n.e(876)]).then(n.bind(n,95536))},"@site/../docs/build/build-guide.md",95536],"4403bb94":[function(){return n.e(3735).then(n.bind(n,73338))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-dot-ordinals.md",73338],"452ad91d":[function(){return n.e(6195).then(n.bind(n,85671))},"@site/../docs/learn/xcm/overview/intro.md",85671],"4642ab5c":[function(){return n.e(4434).then(n.bind(n,23213))},"@site/../docs/learn/learn-cryptography.md",23213],"46c5b6d8":[function(){return n.e(1905).then(n.t.bind(n,42578,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-comparisons-index-3c0.json",42578],"48d75399":[function(){return n.e(230).then(n.bind(n,76984))},"@site/../docs/general/faq.md",76984],"493c7fdf":[function(){return n.e(5053).then(n.bind(n,22798))},"@site/../docs/general/glossary.md",22798],"497334c4":[function(){return n.e(6736).then(n.bind(n,39084))},"@site/../docs/general/dune-analytics/project-dashboards.md",39084],"49ea81bb":[function(){return n.e(9233).then(n.bind(n,91758))},"@site/../docs/general/dune-analytics/polkadot-dashboards/polkadot-dashboards-staking.md",91758],"4a8eb552":[function(){return n.e(1949).then(n.bind(n,67589))},"@site/../docs/learn/learn-comparisons-kusama.md",67589],"4d76887f":[function(){return n.e(6235).then(n.bind(n,97441))},"@site/../docs/build/build-hackathon.md",97441],"4d9b9869":[function(){return n.e(9550).then(n.bind(n,90986))},"@site/../docs/learn/learn-parachains-protocol.md",90986],"4f031749":[function(){return Promise.all([n.e(1869),n.e(1699)]).then(n.bind(n,50762))},"@site/../docs/learn/learn-guides-staking-pools.md",50762],"4f6f3f96":[function(){return n.e(1531).then(n.t.bind(n,56253,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-overview-d82.json",56253],"5136ee31":[function(){return n.e(4632).then(n.bind(n,56710))},"@site/../docs/learn/xcm/journey/expects.md",56710],"5193d8a9":[function(){return n.e(1511).then(n.bind(n,6513))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-opengov-referenda-home.md",6513],"51fbc2c9":[function(){return n.e(2706).then(n.bind(n,15727))},"@site/../docs/learn/learn-comparisons.md",15727],"5355b952":[function(){return Promise.all([n.e(1869),n.e(3482),n.e(2580),n.e(1003)]).then(n.bind(n,30866))},"@site/../docs/learn/learn-polkadot-opengov-origins.md",30866],"54338ffb":[function(){return n.e(8112).then(n.bind(n,69870))},"@site/../docs/learn/learn-account-multisig.md",69870],"543c9f0a":[function(){return n.e(566).then(n.bind(n,19668))},"@site/../docs/build/build-guides-coretime-troubleshoot.md",19668],"556d3f96":[function(){return n.e(1241).then(n.bind(n,90731))},"@site/../docs/general/dune-analytics/parachain-dashboards/astar-dashboards.md",90731],"571c8793":[function(){return n.e(3984).then(n.bind(n,71701))},"@site/../docs/general/dune-analytics/parachain-dashboards/moonbeam-dashboards.md",71701],"57d69936":[function(){return n.e(8736).then(n.t.bind(n,34309,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-programs-index-225.json",34309],"591eca19":[function(){return n.e(2493).then(n.bind(n,54758))},"@site/../docs/general/polkadot-direction.md",54758],"5c6a20c2":[function(){return n.e(9349).then(n.bind(n,97771))},"@site/../docs/learn/learn-safrole.md",97771],"5c90fc9b":[function(){return n.e(3708).then(n.bind(n,91519))},"@site/../docs/learn/xcm/executor_config/config.md",91519],"5d5db6f5":[function(){return n.e(3200).then(n.t.bind(n,56965,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-advanced-index-8e8.json",56965],"5d69d9d4":[function(){return n.e(1658).then(n.bind(n,23071))},"@site/../docs/maintain/maintain-guides-how-to-upgrade.md",23071],"5db34cd0":[function(){return n.e(8058).then(n.bind(n,21507))},"@site/../docs/general/decentralized-voices.md",21507],"5dfc1fb1":[function(){return n.e(1187).then(n.bind(n,27150))},"@site/../docs/general/pcf.md",27150],"5e1f281f":[function(){return n.e(6835).then(n.t.bind(n,33254,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-stay-safe-index-fb6.json",33254],"5e95c892":[function(){return n.e(9647).then(n.bind(n,7121))},"@theme/DocsRoot",7121],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,85290))},"@generated/docusaurus.config",85290],"5f2beba5":[function(){return n.e(7405).then(n.t.bind(n,39196,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-participants-index-530.json",39196],"60738e36":[function(){return Promise.all([n.e(3482),n.e(7777)]).then(n.bind(n,513))},"@site/../docs/general/metadata.md",513],"6116139f":[function(){return Promise.all([n.e(1869),n.e(4840)]).then(n.bind(n,4908))},"@site/../docs/learn/learn-elastic-scaling.md",4908],"643a7bcf":[function(){return n.e(3345).then(n.t.bind(n,51948,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-wallets-index-9b6.json",51948],"64947d47":[function(){return n.e(8688).then(n.t.bind(n,27375,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-polkadot-vision-index-148.json",27375],"64c7e1cc":[function(){return n.e(8727).then(n.bind(n,13907))},"@site/../docs/build/build-integration.md",13907],"6544ec02":[function(){return n.e(9786).then(n.bind(n,88232))},"@site/../docs/general/alpha-program.md",88232],"6822f432":[function(){return n.e(2356).then(n.t.bind(n,50306,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-community-index-a87.json",50306],"694672cd":[function(){return Promise.all([n.e(1869),n.e(1004)]).then(n.bind(n,29488))},"@site/../docs/learn/learn-guides-staking.md",29488],"69b97ecd":[function(){return n.e(866).then(n.bind(n,75429))},"@site/../docs/learn/learn-implementations.md",75429],"6bfbfa77":[function(){return Promise.all([n.e(1869),n.e(2858)]).then(n.bind(n,94133))},"@site/../docs/learn/archive/learn-auction.md",94133],"6d2ffbf3":[function(){return n.e(4168).then(n.bind(n,53158))},"@site/../docs/learn/xcm/quickstart/first-look.md",53158],"6d423296":[function(){return n.e(9521).then(n.t.bind(n,12483,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-assets-index-7cb.json",12483],"6d5c9a28":[function(){return n.e(417).then(n.bind(n,82315))},"@site/../docs/general/staking-apps.md",82315],"6f1a81b8":[function(){return n.e(2802).then(n.bind(n,73534))},"@site/../docs/maintain/maintain-guides-how-to-chill.md",73534],"700d39cd":[function(){return n.e(5647).then(n.t.bind(n,39389,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-polkadot-opengov-index-246.json",39389],"706277b1":[function(){return n.e(3487).then(n.bind(n,1731))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-validators.md",1731],"71ed82b9":[function(){return n.e(1369).then(n.bind(n,61987))},"@site/../docs/general/start-building.md",61987],"72b78d4a":[function(){return n.e(1772).then(n.bind(n,9627))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-opengov-referendum-voting-analysis.md",9627],73617284:[function(){return n.e(981).then(n.bind(n,76231))},"@site/../docs/learn/learn-hyperbridge.md",76231],"73a7060c":[function(){return n.e(5208).then(n.bind(n,46406))},"@site/../docs/learn/learn-polkadot-technical-fellowship.md",46406],"73d1b372":[function(){return Promise.all([n.e(1869),n.e(1498)]).then(n.bind(n,15735))},"@site/../docs/learn/learn-agile-coretime.md",15735],"74df6a22":[function(){return n.e(7227).then(n.bind(n,77408))},"@site/../docs/maintain/maintain-rpc.md",77408],"766a10e1":[function(){return n.e(6118).then(n.bind(n,16078))},"@site/../docs/learn/learn-comparisons-avalanche.md",16078],"767dd344":[function(){return Promise.all([n.e(1869),n.e(7734)]).then(n.bind(n,28853))},"@site/../docs/learn/archive/thousand-validators.md",28853],"77c23c97":[function(){return Promise.all([n.e(1869),n.e(5555),n.e(3536)]).then(n.bind(n,73554))},"@site/../docs/learn/learn-transactions.md",73554],"78868b16":[function(){return n.e(1539).then(n.bind(n,48626))},"@site/../docs/general/kusama/kusama-social-recovery.md",48626],"78e1e977":[function(){return n.e(5884).then(n.bind(n,97501))},"@site/../docs/learn/xcm/journey/holding-modifiers.md",97501],"7be75fa6":[function(){return n.e(220).then(n.bind(n,29022))},"@site/../docs/learn/learn-guides-test-opengov-proposals.md",29022],"7c138549":[function(){return n.e(7473).then(n.bind(n,24358))},"@site/../docs/general/dune-analytics/parachain-dashboards/neuroweb-dashboards.md",24358],"7c43c534":[function(){return n.e(9787).then(n.t.bind(n,71769,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-fundamentals-multilocation-cfc.json",71769],"7dcec981":[function(){return Promise.all([n.e(1869),n.e(4271)]).then(n.bind(n,37304))},"@site/../docs/build/build-client-side.md",37304],"7fbac68a":[function(){return n.e(2757).then(n.bind(n,98939))},"@site/../docs/general/ambassadors.md",98939],"7ffd66a6":[function(){return n.e(6547).then(n.bind(n,49263))},"@site/../docs/general/dune-analytics/parachain-dashboards/acala-dashboards.md",49263],"804b1e9f":[function(){return Promise.all([n.e(1869),n.e(1062)]).then(n.bind(n,7210))},"@site/../docs/learn/learn-guides-nominator.md",7210],"8081c0c6":[function(){return n.e(8568).then(n.bind(n,90339))},"@site/../docs/general/parity-data-dashboards.md",90339],"824749c6":[function(){return n.e(8800).then(n.bind(n,84316))},"@site/../docs/build/build-node-interaction.md",84316],"8247eba8":[function(){return n.e(7044).then(n.bind(n,8380))},"@site/../docs/learn/xcm/journey/transfers/teleports.md",8380],"83d4859f":[function(){return n.e(2808).then(n.bind(n,84890))},"@site/../docs/learn/xcm/journey/transfers/summary.md",84890],"84ede15a":[function(){return Promise.all([n.e(1869),n.e(6124)]).then(n.bind(n,41209))},"@site/../docs/learn/learn-guides-transfers.md",41209],"85afe03a":[function(){return n.e(1628).then(n.bind(n,42692))},"@site/../docs/maintain/maintain-errors.md",42692],"863c4753":[function(){return n.e(6076).then(n.bind(n,95697))},"@site/../docs/learn/xcm/journey/register-modifiers.md",95697],"879e564b":[function(){return n.e(8789).then(n.bind(n,73538))},"@site/../docs/general/dune-analytics/onboarding-status-and-key-dashboards.md",73538],"899aadcc":[function(){return n.e(6993).then(n.bind(n,53044))},"@site/../docs/learn/xcm/overview/architecture.md",53044],"89a76fd2":[function(){return Promise.all([n.e(1869),n.e(2204)]).then(n.bind(n,78076))},"@site/../docs/learn/archive/learn-redenomination.md",78076],"8a8a7d05":[function(){return n.e(4791).then(n.bind(n,11659))},"@site/../docs/build/build-parachains.md",11659],"8b670b2b":[function(){return n.e(954).then(n.bind(n,6705))},"@site/../docs/build/build-index.md",6705],"8d3a1bf8":[function(){return Promise.all([n.e(1869),n.e(5588)]).then(n.bind(n,2203))},"@site/../docs/learn/learn-inflation.md",2203],"8d48ec84":[function(){return n.e(2615).then(n.bind(n,43996))},"@site/../docs/general/dune-analytics/parachain-dashboards/frequency-dashboards.md",43996],"8fadc1f3":[function(){return n.e(2191).then(n.t.bind(n,98303,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-index-b78.json",98303],"90a09ad1":[function(){return n.e(8768).then(n.bind(n,10775))},"@site/../docs/general/dune-analytics/dunesql-cheatsheet.md",10775],"918b38b6":[function(){return Promise.all([n.e(1869),n.e(6930)]).then(n.bind(n,61900))},"@site/../docs/learn/learn-async-backing.md",61900],"93953b85":[function(){return n.e(6247).then(n.t.bind(n,48324,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-journey-f1c.json",48324],"943aba4c":[function(){return Promise.all([n.e(1869),n.e(1112)]).then(n.bind(n,94436))},"@site/../docs/learn/learn-guides-claims.md",94436],"9528ac88":[function(){return n.e(1379).then(n.bind(n,88693))},"@site/../docs/learn/learn-xcm-transport.md",88693],"95aedc42":[function(){return n.e(6842).then(n.t.bind(n,49664,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-journey-transfers-540.json",49664],"9662c81e":[function(){return Promise.all([n.e(1869),n.e(7809)]).then(n.bind(n,69959))},"@site/../docs/maintain/archive/maintain-guides-how-to-join-council.md",69959],"967fa6d4":[function(){return Promise.all([n.e(1869),n.e(7876)]).then(n.bind(n,48660))},"@site/../docs/learn/learn-guides-accounts-multisig.md",48660],"979a04e7":[function(){return n.e(3705).then(n.bind(n,15554))},"@site/../docs/general/dune-analytics/parachain-dashboards/bifrost-dashboards.md",15554],"987d08ef":[function(){return n.e(6496).then(n.bind(n,14954))},"@site/../docs/build/build-smart-contracts.md",14954],"98a30fd8":[function(){return n.e(2950).then(n.bind(n,81151))},"@site/../docs/learn/xcm/fundamentals/multiasset.md",81151],"98a431f4":[function(){return n.e(8005).then(n.bind(n,34760))},"@site/../docs/general/transaction-attacks.md",34760],"9913464d":[function(){return Promise.all([n.e(1869),n.e(5883)]).then(n.bind(n,93563))},"@site/../docs/learn/archive/learn-governance.md",93563],"9e2042f5":[function(){return n.e(3086).then(n.bind(n,79554))},"@site/../docs/learn/learn-collator.md",79554],"9e3f6a8a":[function(){return n.e(8108).then(n.bind(n,44533))},"@site/../docs/learn/learn-comparison-ethereum-2.md",44533],"9e6341e5":[function(){return n.e(8431).then(n.bind(n,82057))},"@site/../docs/learn/xcm/journey/transfers/reserve.md",82057],"9e76b49d":[function(){return n.e(6775).then(n.bind(n,1399))},"@site/../docs/learn/xcm/testing.md",1399],"9f319605":[function(){return n.e(834).then(n.bind(n,1567))},"@site/../docs/learn/xcm/journey/fees.md",1567],"9f804621":[function(){return Promise.all([n.e(1869),n.e(5555),n.e(1431)]).then(n.bind(n,68448))},"@site/../docs/learn/learn-guides-accounts.md",68448],a2800a5b:[function(){return n.e(3234).then(n.bind(n,52350))},"@site/../docs/build/build-transaction-construction.md",52350],a29dc56e:[function(){return n.e(7554).then(n.bind(n,55221))},"@site/../docs/maintain/maintain-guides-how-to-monitor-your-node.md",55221],a2d5a6d8:[function(){return n.e(6622).then(n.bind(n,68962))},"@site/../docs/general/dune-analytics/parachain-dashboards/collectives-dashboards.md",68962],a44b8423:[function(){return n.e(319).then(n.bind(n,71484))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-pool-member.md",71484],a5002e4a:[function(){return n.e(1067).then(n.bind(n,13094))},"@site/../docs/build/build-oracle.md",13094],a5b3561d:[function(){return n.e(2226).then(n.bind(n,49538))},"@site/../docs/general/kusama/kusama-coc.md",49538],a6e65e5f:[function(){return n.e(7208).then(n.t.bind(n,3840,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-quickstart-1cc.json",3840],a7456010:[function(){return n.e(1235).then(n.t.bind(n,50950,19))},"@generated/docusaurus-plugin-content-pages/default/__plugin.json",50950],a74a59a0:[function(){return n.e(4975).then(n.bind(n,61861))},"@site/../docs/maintain/maintain-guides-how-to-validate-polkadot.md",61861],a7b37b86:[function(){return n.e(1447).then(n.bind(n,10958))},"@site/../docs/general/scams.md",10958],a7bd4aaa:[function(){return n.e(7098).then(n.bind(n,74532))},"@theme/DocVersionRoot",74532],a8f54fb1:[function(){return n.e(1706).then(n.bind(n,37672))},"@site/../docs/learn/learn-DOT-KSM-bridge.md",37672],a94703ab:[function(){return Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,11377))},"@theme/DocRoot",11377],a9f58d5b:[function(){return n.e(5331).then(n.bind(n,57946))},"@site/../docs/learn/learn-account-balances.md",57946],ab138bf8:[function(){return n.e(8914).then(n.bind(n,18538))},"@site/../docs/learn/learn-proxies.md",18538],aba21aa0:[function(){return n.e(5742).then(n.t.bind(n,98211,19))},"@generated/docusaurus-plugin-content-docs/default/__plugin.json",98211],ad1dd1a4:[function(){return n.e(7217).then(n.t.bind(n,86749,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-dashboards-index-254.json",86749],ad5a1373:[function(){return n.e(3656).then(n.bind(n,30091))},"@site/../docs/general/dune-analytics/parachain-dashboards/phala-dashboards.md",30091],ad762f86:[function(){return Promise.all([n.e(1869),n.e(3041)]).then(n.bind(n,6331))},"@site/../docs/learn/learn-account-advanced.md",6331],af2ff1b5:[function(){return n.e(6646).then(n.bind(n,88350))},"@site/../docs/general/dune-analytics/parachain-dashboards/hydration-dashboards.md",88350],afddde9d:[function(){return n.e(1724).then(n.bind(n,29644))},"@site/../docs/learn/learn-asset-conversion-assethub.md",29644],b0a48d97:[function(){return Promise.all([n.e(1869),n.e(1018)]).then(n.bind(n,83313))},"@site/../docs/learn/learn-guides-ledger.md",83313],b0cb055f:[function(){return n.e(9074).then(n.bind(n,35568))},"@site/../docs/learn/xcm/fundamentals/xcvm.md",35568],b0cbc1d4:[function(){return n.e(7826).then(n.bind(n,86106))},"@site/../docs/general/staking-dashboard.md",86106],b0d34550:[function(){return n.e(8660).then(n.bind(n,80338))},"@site/../docs/general/dune-analytics/polkadot-dashboards/polkadot-dashboards-network.md",80338],b1b82dcd:[function(){return Promise.all([n.e(1869),n.e(557)]).then(n.bind(n,85916))},"@site/../docs/learn/archive/learn-crowdloans.md",85916],b21dd8a7:[function(){return n.e(6024).then(n.bind(n,88617))},"@site/../docs/learn/learn-comparison-rollups.md",88617],b225a2ce:[function(){return n.e(1101).then(n.bind(n,28179))},"@site/../docs/learn/xcm/fundamentals/multilocation/summary.md",28179],b3558274:[function(){return n.e(3975).then(n.bind(n,24716))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard.md",24716],b3719d54:[function(){return n.e(8290).then(n.bind(n,61004))},"@site/../docs/general/polkadot-v1.md",61004],b38833d4:[function(){return n.e(6104).then(n.bind(n,15199))},"@site/../docs/learn/learn-phragmen.md",15199],b418feb9:[function(){return n.e(7242).then(n.bind(n,94910))},"@site/../docs/general/dune-analytics/polkadot-dashboards/polkadot-dashboards-governance.md",94910],b48c599b:[function(){return n.e(9057).then(n.bind(n,90313))},"@site/../docs/general/kusama/kusama-bug-bounty.md",90313],b7bd3ab3:[function(){return n.e(6445).then(n.bind(n,26705))},"@site/../docs/general/dune-analytics/parachain-dashboards/energywebx-dashboards.md",26705],b835d927:[function(){return n.e(1397).then(n.bind(n,66600))},"@site/../docs/general/ecosystem-funds.md",66600],b8cd9d81:[function(){return n.e(3910).then(n.t.bind(n,33716,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-general-dune-analytics-polkadot-dashboards-be4.json",33716],b906f375:[function(){return n.e(159).then(n.bind(n,91160))},"@site/../docs/build/build-light-clients.md",91160],b940de31:[function(){return n.e(4817).then(n.bind(n,21644))},"@site/../docs/learn/learn-assets.md",21644],b9b4ec9e:[function(){return n.e(3316).then(n.bind(n,8255))},"@site/../docs/learn/xcm/reference/glossary.md",8255],bb8b1738:[function(){return n.e(2916).then(n.bind(n,77348))},"@site/../docs/learn/learn-validator.md",77348],bbba852d:[function(){return n.e(9799).then(n.bind(n,17681))},"@site/../docs/general/kusama/kusama-adverserial-cheatsheet.md",17681],bd701914:[function(){return Promise.all([n.e(1869),n.e(1077)]).then(n.bind(n,4366))},"@site/../docs/learn/learn-parachains-faq.md",4366],bea375d6:[function(){return n.e(4938).then(n.bind(n,85374))},"@site/../docs/general/grants.md",85374],bf3ab9de:[function(){return Promise.all([n.e(1869),n.e(2389)]).then(n.bind(n,4543))},"@site/../docs/learn/learn-guides-bridges.md",4543],c07c2447:[function(){return Promise.all([n.e(1869),n.e(7561)]).then(n.bind(n,28794))},"@site/../docs/learn/learn-guides-polkadot-opengov.md",28794],c07ecb8b:[function(){return n.e(7371).then(n.t.bind(n,56310,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-general-dune-analytics-parachain-dashboards-671.json",56310],c110e322:[function(){return n.e(1592).then(n.bind(n,34687))},"@site/../docs/learn/learn-guides-coretime-swap.md",34687],c141421f:[function(){return n.e(957).then(n.t.bind(n,90786,19))},"@generated/docusaurus-theme-search-algolia/default/__plugin.json",90786],c1bbdb2a:[function(){return n.e(5558).then(n.bind(n,99435))},"@site/../docs/learn/learn-polkadot-host.md",99435],c2912163:[function(){return n.e(7352).then(n.t.bind(n,61910,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-components-index-c9a.json",61910],c2c6a3a6:[function(){return n.e(8506).then(n.bind(n,39323))},"@site/../docs/learn/learn-nft-projects.md",39323],c41801b5:[function(){return Promise.all([n.e(3482),n.e(9507)]).then(n.bind(n,62499))},"@site/../docs/maintain/kusama/maintain-guides-how-to-validate-kusama.md",62499],c4f5d8e4:[function(){return Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,497))},"@site/src/pages/index.js",497],c52e674c:[function(){return n.e(4466).then(n.t.bind(n,81627,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-build-archive-index-a99.json",81627],c57cca4f:[function(){return n.e(895).then(n.t.bind(n,33202,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-future-implementations-index-472.json",33202],c630d0cd:[function(){return n.e(5420).then(n.bind(n,3284))},"@site/../docs/build/build-guides-template-basic.md",3284],c662f00a:[function(){return n.e(7887).then(n.bind(n,84768))},"@site/../docs/learn/xcm/journey/queries.md",84768],c6b91cbc:[function(){return n.e(1050).then(n.t.bind(n,28239,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-basics-index-5be.json",28239],c78e4f7d:[function(){return n.e(1335).then(n.bind(n,97685))},"@site/../docs/general/dune-analytics/polkadot-dashboards/polkadot-dashboards-overview.md",97685],c7a044bb:[function(){return n.e(9110).then(n.bind(n,31189))},"@site/../docs/learn/xcm/journey/channels-and-bridges.md",31189],c7a2145e:[function(){return n.e(6277).then(n.bind(n,40319))},"@site/../docs/general/how-to-dyor.md",40319],c7c5ba1a:[function(){return Promise.all([n.e(1869),n.e(9476)]).then(n.bind(n,55927))},"@site/../docs/learn/learn-accounts.md",55927],c8dd560b:[function(){return Promise.all([n.e(1869),n.e(4293)]).then(n.bind(n,13699))},"@site/../docs/learn/learn-guides-accounts-proxy-pure.md",13699],c91a9c06:[function(){return Promise.all([n.e(1869),n.e(1019)]).then(n.bind(n,27186))},"@site/../docs/learn/learn-identity.md",27186],c977dfe8:[function(){return n.e(4024).then(n.bind(n,32690))},"@site/../docs/learn/learn-teleport.md",32690],ca45e589:[function(){return n.e(4821).then(n.t.bind(n,22754,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-explore-index-06f.json",22754],ca9fe671:[function(){return n.e(5827).then(n.bind(n,47733))},"@site/../docs/learn/xcm/overview/xcvm.md",47733],cb9afd28:[function(){return Promise.all([n.e(1869),n.e(1738)]).then(n.bind(n,58772))},"@site/../docs/learn/learn-polkadot-js-guides.md",58772],cc44e8fd:[function(){return n.e(5052).then(n.bind(n,93123))},"@site/../docs/build/build-node-management.md",93123],ccc1222e:[function(){return n.e(5702).then(n.bind(n,6295))},"@site/../docs/build/build-open-source.md",6295],cda87995:[function(){return n.e(1711).then(n.bind(n,61925))},"@site/../docs/build/build-tools-index.md",61925],cdedf67f:[function(){return n.e(8050).then(n.t.bind(n,8137,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-maintain-node-index-307.json",8137],ceaa29cb:[function(){return n.e(4841).then(n.bind(n,50965))},"@site/../docs/learn/xcm/journey/locks/locks.md",50965],cfd53ea4:[function(){return n.e(7482).then(n.bind(n,69091))},"@site/../docs/general/kusama/kusama-timeline.md",69091],cfe984ba:[function(){return n.e(8289).then(n.t.bind(n,57081,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-apps-index-b66.json",57081],d000eb73:[function(){return n.e(4228).then(n.bind(n,6124))},"@site/../docs/general/dune-analytics/parachain-dashboards/stellaswap-dashboards.md",6124],d27ae88d:[function(){return n.e(3170).then(n.bind(n,93346))},"@site/../docs/learn/learn-video-tutorials.md",93346],d3a753cf:[function(){return n.e(4191).then(n.bind(n,96737))},"@site/../docs/learn/xcm/fundamentals/multilocation/example.md",96737],d42819bc:[function(){return n.e(3306).then(n.bind(n,19238))},"@site/../docs/general/dune-analytics/parachain-dashboards/bridgehub-dashboards.md",19238],d569989b:[function(){return n.e(8255).then(n.bind(n,69864))},"@site/../docs/general/bug-bounty.md",69864],d5909206:[function(){return n.e(5434).then(n.bind(n,17287))},"@site/../docs/learn/xcm/fundamentals/multilocation/junction.md",17287],d6a97e7e:[function(){return n.e(1107).then(n.bind(n,41316))},"@site/../docs/learn/xcm/quickstart/xcm-simulator.md",41316],d6b0148d:[function(){return n.e(2980).then(n.bind(n,29811))},"@site/../docs/learn/xcm/journey/origins.md",29811],d9a69e3a:[function(){return n.e(5829).then(n.bind(n,19923))},"@site/../docs/general/dune-analytics/parachain-dashboards/people-dashboards.md",19923],d9ef69a7:[function(){return n.e(2164).then(n.bind(n,47734))},"@site/../docs/general/contributors.md",47734],da9f79cb:[function(){return Promise.all([n.e(1869),n.e(3044)]).then(n.bind(n,86708))},"@site/../docs/learn/learn-nomination-pools.md",86708],daaf1ab4:[function(){return Promise.all([n.e(1869),n.e(8215)]).then(n.bind(n,25939))},"@site/../docs/general/funding.md",25939],db039c7f:[function(){return n.e(2481).then(n.bind(n,685))},"@site/../docs/learn/xcm/overview/format.md",685],db3d6c4d:[function(){return n.e(7845).then(n.bind(n,5065))},"@site/../docs/learn/learn-account-abstraction.md",5065],db9d4dae:[function(){return n.e(8472).then(n.bind(n,17907))},"@site/../docs/general/dune-analytics/parachain-dashboards/coretime-dashboards.md",17907],dbbd9e76:[function(){return Promise.all([n.e(1869),n.e(2922)]).then(n.bind(n,97626))},"@site/../docs/learn/learn-guides-vault.md",97626],dc0f9344:[function(){return n.e(1058).then(n.bind(n,34578))},"@site/../docs/general/dune-analytics/parachain-dashboards/pendulum-dashboards.md",34578],dc36d550:[function(){return Promise.all([n.e(1869),n.e(2357)]).then(n.bind(n,5782))},"@site/../docs/maintain/maintain-archive.md",5782],dc776cbc:[function(){return n.e(4498).then(n.bind(n,2405))},"@site/../docs/general/thousand-contributors.md",2405],dd2fa029:[function(){return Promise.all([n.e(1869),n.e(2047)]).then(n.bind(n,44992))},"@site/../docs/learn/learn-polkadotjs.md",44992],dd32e389:[function(){return n.e(7781).then(n.bind(n,69175))},"@site/../docs/general/polkadot-vault.md",69175],df154d69:[function(){return n.e(3880).then(n.bind(n,79822))},"@site/../docs/learn/learn-xcm.md",79822],e00ac272:[function(){return n.e(1881).then(n.bind(n,95369))},"@site/../docs/learn/learn-guides-coretime-marketplaces.md",95369],e2e89062:[function(){return n.e(9894).then(n.bind(n,20696))},"@site/../docs/learn/learn-proxies-pure.md",20696],e31fc461:[function(){return n.e(352).then(n.bind(n,21253))},"@site/../docs/learn/xcm/learn-xcm-docs-intro.md",21253],e43aed4a:[function(){return n.e(1122).then(n.t.bind(n,95773,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-general-index-bbd.json",95773],e495ca4d:[function(){return Promise.all([n.e(1869),n.e(662)]).then(n.bind(n,74360))},"@site/../docs/maintain/archive/maintain-guides-democracy.md",74360],e4ef088f:[function(){return Promise.all([n.e(1869),n.e(3315)]).then(n.bind(n,20888))},"@site/../docs/build/build-guides-install-deps.md",20888],e77078a1:[function(){return n.e(3557).then(n.bind(n,21775))},"@site/../docs/learn/learn-jam-faq.md",21775],e8522a07:[function(){return n.e(5513).then(n.bind(n,53144))},"@site/../docs/general/dune-analytics/polkadot-dashboards/legacy/polkadot-staking-dashboard-nomination-pool.md",53144],ec3b6a32:[function(){return n.e(8832).then(n.bind(n,96287))},"@site/../docs/learn/learn-nft.md",96287],ecb495b7:[function(){return n.e(6786).then(n.bind(n,96724))},"@site/../docs/maintain/maintain-guides-how-to-systemd.md",96724],ece9fdae:[function(){return Promise.all([n.e(1869),n.e(6641)]).then(n.bind(n,2619))},"@site/../docs/general/community.md",2619],ed3409b3:[function(){return Promise.all([n.e(1869),n.e(4117)]).then(n.bind(n,8575))},"@site/../docs/learn/learn-guides-bounties.md",8575],eef3f1dd:[function(){return Promise.all([n.e(1869),n.e(7827)]).then(n.bind(n,62313))},"@site/../docs/learn/learn-guides-treasury.md",62313],efba78c5:[function(){return n.e(3368).then(n.bind(n,40162))},"@site/../docs/general/dune-analytics/polkadot-ecosystem-overview.md",40162],f0ff685a:[function(){return Promise.all([n.e(1869),n.e(2393)]).then(n.bind(n,11854))},"@site/../docs/learn/learn-guides-accounts-proxy.md",11854],f10f9928:[function(){return n.e(5534).then(n.bind(n,2475))},"@site/../docs/general/dune-analytics/parachain-dashboards/assethub-dashboards.md",2475],f137ce68:[function(){return Promise.all([n.e(1869),n.e(9188)]).then(n.bind(n,93716))},"@site/../docs/learn/learn-xcm-instructions.md",93716],f1585bfb:[function(){return n.e(3642).then(n.bind(n,53608))},"@site/../docs/learn/xcm/quickstart/summary.md",53608],f189ca9f:[function(){return n.e(5312).then(n.bind(n,18451))},"@site/../docs/learn/learn-spree.md",18451],f2521980:[function(){return n.e(3584).then(n.bind(n,55969))},"@site/../docs/general/getting-started.md",55969],f2b5c614:[function(){return n.e(4076).then(n.bind(n,15837))},"@site/../docs/general/dune-analytics/parachain-dashboards/centrifuge-dashboards.md",15837],f2c21b54:[function(){return n.e(4410).then(n.bind(n,54185))},"@site/../docs/build/build-storage.md",54185],f3027c84:[function(){return Promise.all([n.e(1869),n.e(1906)]).then(n.bind(n,98958))},"@site/../docs/general/polkadotjs-ui.md",98958],f359a251:[function(){return Promise.all([n.e(1869),n.e(4051)]).then(n.bind(n,49362))},"@site/../docs/maintain/maintain-endpoints.md",49362],f3bde756:[function(){return n.e(9625).then(n.bind(n,15197))},"@site/../docs/maintain/maintain-bootnode.md",15197],f4130007:[function(){return n.e(8582).then(n.bind(n,99149))},"@site/../docs/general/wallets-and-extensions.md",99149],f41c4e9d:[function(){return n.e(8679).then(n.bind(n,29939))},"@site/../docs/learn/learn-xcm-pallet.md",29939],f4200fe5:[function(){return Promise.all([n.e(1869),n.e(3135)]).then(n.bind(n,94445))},"@site/../docs/maintain/maintain-sync.md",94445],f44679e7:[function(){return n.e(9535).then(n.bind(n,5677))},"@site/../docs/general/governance-apps.md",5677],f44ed8f8:[function(){return n.e(2930).then(n.bind(n,64937))},"@site/../docs/build/build-hrmp-channels.md",64937],f47489cd:[function(){return n.e(4544).then(n.bind(n,39892))},"@site/../docs/learn/learn-runtime-upgrades.md",39892],f52abf29:[function(){return n.e(9116).then(n.bind(n,57401))},"@site/../docs/general/decentralized-futures.md",57401],f62dca67:[function(){return n.e(6416).then(n.t.bind(n,78697,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-learn-xcm-fundamentals-e19.json",78697],f750c690:[function(){return n.e(3261).then(n.bind(n,76825))},"@site/../docs/learn/learn-nft-pallets.md",76825],f7acb151:[function(){return Promise.all([n.e(1869),n.e(2783)]).then(n.bind(n,91689))},"@site/../docs/learn/learn-guides-assets-create.md",91689],f8518919:[function(){return n.e(4484).then(n.bind(n,11366))},"@site/../docs/general/web3-and-polkadot.md",11366],f861e7c0:[function(){return n.e(5967).then(n.bind(n,84277))},"@site/../docs/general/dune-analytics/parachain-dashboards/litentry-dashboards.md",84277],f90fa732:[function(){return n.e(8225).then(n.bind(n,47791))},"@site/../docs/build/build-data.md",47791],fa343ad1:[function(){return n.e(2368).then(n.bind(n,90355))},"@site/../docs/learn/xcm/fundamentals/weight_and_fees.md",90355],fabebe44:[function(){return n.e(9783).then(n.bind(n,58846))},"@site/../docs/general/dev-heroes.md",58846],fc0e5740:[function(){return n.e(8067).then(n.t.bind(n,32591,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-build-client-index-10e.json",32591],fda65b2b:[function(){return Promise.all([n.e(1869),n.e(6225)]).then(n.bind(n,95619))},"@site/../docs/learn/learn-guides-asset-conversion.md",95619],fea93377:[function(){return n.e(4898).then(n.bind(n,48568))},"@site/../docs/maintain/maintain-guides-validator-payout.md",48568],feadf832:[function(){return Promise.all([n.e(1869),n.e(1710)]).then(n.bind(n,33317))},"@site/../docs/build/build-guides-coretime-start.md",33317],fecdcc34:[function(){return n.e(2410).then(n.bind(n,17293))},"@site/../docs/learn/xcm/journey/version.md",17293],feea648c:[function(){return n.e(9175).then(n.bind(n,44529))},"@site/../docs/learn/learn-xcvm.md",44529],ff154173:[function(){return n.e(34).then(n.t.bind(n,88796,19))},"@generated/docusaurus-plugin-content-docs/default/p/docs-maintain-collator-index-c0b.json",88796],ff6596ea:[function(){return n.e(3507).then(n.bind(n,45909))},"@site/../docs/learn/learn-nominator.md",45909],ffd76171:[function(){return Promise.all([n.e(1869),n.e(639)]).then(n.bind(n,15038))},"@site/../docs/maintain/maintain-index.md",15038],ffe9c3c9:[function(){return n.e(1967).then(n.bind(n,47995))},"@site/../docs/learn/learn-DOT.md",47995]};var s=n(74848);function c(e){var t=e.error,n=e.retry,r=e.pastDelay;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var l=n(86921),u=n(53102);function d(e,t){if("*"===e)return a()({loading:c,loader:function(){return n.e(2237).then(n.bind(n,82237))},modules:["@theme/NotFound"],webpack:function(){return[82237]},render:function(e,t){var n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,Object.assign({},t))})}});var r=o[e+"-"+t],d={},p=[],f=[],m=(0,l.A)(r);return Object.entries(m).forEach((function(e){var t=e[0],n=e[1],r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:c,loader:d,modules:p,webpack:function(){return f},render:function(t,n){var a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){o[e]=r[e]}));var i=a,s=n.split(".");s.slice(0,-1).forEach((function(e){i=i[e]})),i[s[s.length-1]]=o}));var o=a.__comp;delete a.__comp;var i=a.__context;delete a.__context;var c=a.__props;return delete a.__props,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(o,Object.assign({},a,c,n))})}})}const p=[{path:"/search",component:d("/search","5de"),exact:!0},{path:"/docs",component:d("/docs","d30"),routes:[{path:"/docs",component:d("/docs","43f"),routes:[{path:"/docs",component:d("/docs","5c1"),routes:[{path:"/docs/alpha-program",component:d("/docs/alpha-program","9f0"),exact:!0,sidebar:"docs"},{path:"/docs/ambassadors",component:d("/docs/ambassadors","718"),exact:!0,sidebar:"docs"},{path:"/docs/apps-index",component:d("/docs/apps-index","b46"),exact:!0,sidebar:"docs"},{path:"/docs/bug-bounty",component:d("/docs/bug-bounty","1ba"),exact:!0,sidebar:"docs"},{path:"/docs/build-archive-index",component:d("/docs/build-archive-index","3b3"),exact:!0,sidebar:"docs"},{path:"/docs/build-client-index",component:d("/docs/build-client-index","e7c"),exact:!0,sidebar:"docs"},{path:"/docs/build-client-side",component:d("/docs/build-client-side","65f"),exact:!0,sidebar:"docs"},{path:"/docs/build-dapp",component:d("/docs/build-dapp","b5a"),exact:!0},{path:"/docs/build-data",component:d("/docs/build-data","5d6"),exact:!0,sidebar:"docs"},{path:"/docs/build-guide",component:d("/docs/build-guide","479"),exact:!0,sidebar:"docs"},{path:"/docs/build-guides-coretime-start",component:d("/docs/build-guides-coretime-start","7be"),exact:!0,sidebar:"docs"},{path:"/docs/build-guides-coretime-troubleshoot",component:d("/docs/build-guides-coretime-troubleshoot","0fb"),exact:!0,sidebar:"docs"},{path:"/docs/build-guides-install-deps",component:d("/docs/build-guides-install-deps","5f9"),exact:!0,sidebar:"docs"},{path:"/docs/build-guides-template-basic",component:d("/docs/build-guides-template-basic","752"),exact:!0,sidebar:"docs"},{path:"/docs/build-hackathon",component:d("/docs/build-hackathon","c97"),exact:!0,sidebar:"docs"},{path:"/docs/build-hrmp-channels",component:d("/docs/build-hrmp-channels","05c"),exact:!0,sidebar:"docs"},{path:"/docs/build-index",component:d("/docs/build-index","26d"),exact:!0},{path:"/docs/build-integrate-assets",component:d("/docs/build-integrate-assets","3ad"),exact:!0,sidebar:"docs"},{path:"/docs/build-integration",component:d("/docs/build-integration","75b"),exact:!0,sidebar:"docs"},{path:"/docs/build-light-clients",component:d("/docs/build-light-clients","f31"),exact:!0,sidebar:"docs"},{path:"/docs/build-network-overview",component:d("/docs/build-network-overview","fb1"),exact:!0,sidebar:"docs"},{path:"/docs/build-node-interaction",component:d("/docs/build-node-interaction","f39"),exact:!0,sidebar:"docs"},{path:"/docs/build-node-management",component:d("/docs/build-node-management","cef"),exact:!0,sidebar:"docs"},{path:"/docs/build-open-source",component:d("/docs/build-open-source","4c0"),exact:!0,sidebar:"docs"},{path:"/docs/build-oracle",component:d("/docs/build-oracle","392"),exact:!0},{path:"/docs/build-pdk",component:d("/docs/build-pdk","d70"),exact:!0,sidebar:"docs"},{path:"/docs/build-protocol-index",component:d("/docs/build-protocol-index","aac"),exact:!0,sidebar:"docs"},{path:"/docs/build-protocol-info",component:d("/docs/build-protocol-info","10f"),exact:!0,sidebar:"docs"},{path:"/docs/build-smart-contracts",component:d("/docs/build-smart-contracts","bd5"),exact:!0,sidebar:"docs"},{path:"/docs/build-storage",component:d("/docs/build-storage","451"),exact:!0},{path:"/docs/build-tools-index",component:d("/docs/build-tools-index","6fd"),exact:!0,sidebar:"docs"},{path:"/docs/build-transaction-construction",component:d("/docs/build-transaction-construction","5ab"),exact:!0,sidebar:"docs"},{path:"/docs/chain-state-values",component:d("/docs/chain-state-values","35a"),exact:!0,sidebar:"docs"},{path:"/docs/community",component:d("/docs/community","d96"),exact:!0,sidebar:"docs"},{path:"/docs/community-index",component:d("/docs/community-index","d5a"),exact:!0,sidebar:"docs"},{path:"/docs/contributing",component:d("/docs/contributing","89f"),exact:!0,sidebar:"docs"},{path:"/docs/contributors",component:d("/docs/contributors","420"),exact:!0,sidebar:"docs"},{path:"/docs/dashboards-index",component:d("/docs/dashboards-index","421"),exact:!0,sidebar:"docs"},{path:"/docs/decentralized-futures",component:d("/docs/decentralized-futures","ff3"),exact:!0,sidebar:"docs"},{path:"/docs/decentralized-voices",component:d("/docs/decentralized-voices","f82"),exact:!0,sidebar:"docs"},{path:"/docs/dev-heroes",component:d("/docs/dev-heroes","3a5"),exact:!0,sidebar:"docs"},{path:"/docs/ecosystem-funds",component:d("/docs/ecosystem-funds","479"),exact:!0,sidebar:"docs"},{path:"/docs/explore-index",component:d("/docs/explore-index","1f3"),exact:!0,sidebar:"docs"},{path:"/docs/faq",component:d("/docs/faq","d8a"),exact:!0,sidebar:"docs"},{path:"/docs/funding",component:d("/docs/funding","331"),exact:!0,sidebar:"docs"},{path:"/docs/general-index",component:d("/docs/general-index","409"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics",component:d("/docs/general/dune-analytics","b98"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/acala-dashboards",component:d("/docs/general/dune-analytics/acala-dashboards","792"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/assethub-dashboards",component:d("/docs/general/dune-analytics/assethub-dashboards","400"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/astar-dashboards",component:d("/docs/general/dune-analytics/astar-dashboards","790"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/bifrost-dashboards",component:d("/docs/general/dune-analytics/bifrost-dashboards","a46"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/bridgehub-dashboards",component:d("/docs/general/dune-analytics/bridgehub-dashboards","c1b"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/centrifuge-dashboards",component:d("/docs/general/dune-analytics/centrifuge-dashboards","ec8"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/collectives-dashboards",component:d("/docs/general/dune-analytics/collectives-dashboards","e12"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/coretime-dashboards",component:d("/docs/general/dune-analytics/coretime-dashboards","d8b"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/energywebx-dashboards",component:d("/docs/general/dune-analytics/energywebx-dashboards","936"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/frequency-dashboards",component:d("/docs/general/dune-analytics/frequency-dashboards","549"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/hydration-dashboards",component:d("/docs/general/dune-analytics/hydration-dashboards","366"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/interlay-dashboards",component:d("/docs/general/dune-analytics/interlay-dashboards","0c8"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/invarch-dashboards",component:d("/docs/general/dune-analytics/invarch-dashboards","8e2"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/litentry-dashboards",component:d("/docs/general/dune-analytics/litentry-dashboards","120"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/manta-dashboards",component:d("/docs/general/dune-analytics/manta-dashboards","02e"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/moonbeam-dashboards",component:d("/docs/general/dune-analytics/moonbeam-dashboards","319"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/neuroweb-dashboards",component:d("/docs/general/dune-analytics/neuroweb-dashboards","91b"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/nodle-dashboards",component:d("/docs/general/dune-analytics/nodle-dashboards","02e"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/parachain-dashboards",component:d("/docs/general/dune-analytics/parachain-dashboards","8fc"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/pendulum-dashboards",component:d("/docs/general/dune-analytics/pendulum-dashboards","dee"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/people-dashboards",component:d("/docs/general/dune-analytics/people-dashboards","7cf"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/phala-dashboards",component:d("/docs/general/dune-analytics/phala-dashboards","1a0"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polimec-dashboards",component:d("/docs/general/dune-analytics/polimec-dashboards","1ba"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadex-dashboards",component:d("/docs/general/dune-analytics/polkadex-dashboards","a53"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards",component:d("/docs/general/dune-analytics/polkadot-dashboards","689"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards-governance",component:d("/docs/general/dune-analytics/polkadot-dashboards-governance","a36"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards-network",component:d("/docs/general/dune-analytics/polkadot-dashboards-network","73d"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards-overview",component:d("/docs/general/dune-analytics/polkadot-dashboards-overview","d8e"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards-staking",component:d("/docs/general/dune-analytics/polkadot-dashboards-staking","f70"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals","2ad"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard","bf1"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home","b4b"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis","cfb"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard","856"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool","613"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators","a03"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member","ddb"),exact:!0},{path:"/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators",component:d("/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators","d6d"),exact:!0},{path:"/docs/general/dune-analytics/snowbridge-dashboards",component:d("/docs/general/dune-analytics/snowbridge-dashboards","915"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/stellaswap-dashboards",component:d("/docs/general/dune-analytics/stellaswap-dashboards","0bf"),exact:!0,sidebar:"docs"},{path:"/docs/general/dune-analytics/unique-dashboards",component:d("/docs/general/dune-analytics/unique-dashboards","f74"),exact:!0,sidebar:"docs"},{path:"/docs/general/dunesql-cheatsheet",component:d("/docs/general/dunesql-cheatsheet","fe2"),exact:!0,sidebar:"docs"},{path:"/docs/general/onboarding-status-and-key-dashboards",component:d("/docs/general/onboarding-status-and-key-dashboards","b88"),exact:!0,sidebar:"docs"},{path:"/docs/general/polkadot-ecosystem-overview",component:d("/docs/general/polkadot-ecosystem-overview","bcd"),exact:!0,sidebar:"docs"},{path:"/docs/general/project-dashboards",component:d("/docs/general/project-dashboards","c57"),exact:!0,sidebar:"docs"},{path:"/docs/getting-started",component:d("/docs/getting-started","33e"),exact:!0,sidebar:"docs"},{path:"/docs/glossary",component:d("/docs/glossary","233"),exact:!0,sidebar:"docs"},{path:"/docs/governance-apps",component:d("/docs/governance-apps","dbc"),exact:!0,sidebar:"docs"},{path:"/docs/grants",component:d("/docs/grants","586"),exact:!0,sidebar:"docs"},{path:"/docs/how-to-dyor",component:d("/docs/how-to-dyor","9ea"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-adversarial-cheatsheet",component:d("/docs/kusama-adversarial-cheatsheet","7ad"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-bug-bounty",component:d("/docs/kusama-bug-bounty","5ce"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-coc",component:d("/docs/kusama-coc","fee"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-getting-started",component:d("/docs/kusama-getting-started","d5d"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-social-recovery",component:d("/docs/kusama-social-recovery","f3d"),exact:!0,sidebar:"docs"},{path:"/docs/kusama-timeline",component:d("/docs/kusama-timeline","d67"),exact:!0,sidebar:"docs"},{path:"/docs/learn-account-abstraction",component:d("/docs/learn-account-abstraction","670"),exact:!0,sidebar:"docs"},{path:"/docs/learn-account-advanced",component:d("/docs/learn-account-advanced","652"),exact:!0,sidebar:"docs"},{path:"/docs/learn-account-balances",component:d("/docs/learn-account-balances","8e6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-account-multisig",component:d("/docs/learn-account-multisig","f13"),exact:!0,sidebar:"docs"},{path:"/docs/learn-accounts",component:d("/docs/learn-accounts","42e"),exact:!0,sidebar:"docs"},{path:"/docs/learn-advanced-index",component:d("/docs/learn-advanced-index","63e"),exact:!0,sidebar:"docs"},{path:"/docs/learn-agile-coretime",component:d("/docs/learn-agile-coretime","224"),exact:!0,sidebar:"docs"},{path:"/docs/learn-architecture",component:d("/docs/learn-architecture","908"),exact:!0,sidebar:"docs"},{path:"/docs/learn-archive",component:d("/docs/learn-archive","ca8"),exact:!0,sidebar:"docs"},{path:"/docs/learn-asset-conversion-assethub",component:d("/docs/learn-asset-conversion-assethub","426"),exact:!0,sidebar:"docs"},{path:"/docs/learn-assets",component:d("/docs/learn-assets","479"),exact:!0,sidebar:"docs"},{path:"/docs/learn-assets-index",component:d("/docs/learn-assets-index","506"),exact:!0,sidebar:"docs"},{path:"/docs/learn-async-backing",component:d("/docs/learn-async-backing","203"),exact:!0,sidebar:"docs"},{path:"/docs/learn-basics-index",component:d("/docs/learn-basics-index","2ab"),exact:!0,sidebar:"docs"},{path:"/docs/learn-bridges",component:d("/docs/learn-bridges","ab4"),exact:!0,sidebar:"docs"},{path:"/docs/learn-collator",component:d("/docs/learn-collator","58b"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons",component:d("/docs/learn-comparisons","26e"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-avalanche",component:d("/docs/learn-comparisons-avalanche","9e6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-cosmos",component:d("/docs/learn-comparisons-cosmos","9e6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-ethereum-2",component:d("/docs/learn-comparisons-ethereum-2","e28"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-index",component:d("/docs/learn-comparisons-index","d6b"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-kusama",component:d("/docs/learn-comparisons-kusama","6a6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-comparisons-rollups",component:d("/docs/learn-comparisons-rollups","f66"),exact:!0,sidebar:"docs"},{path:"/docs/learn-components-index",component:d("/docs/learn-components-index","ba1"),exact:!0,sidebar:"docs"},{path:"/docs/learn-consensus",component:d("/docs/learn-consensus","83d"),exact:!0,sidebar:"docs"},{path:"/docs/learn-cryptography",component:d("/docs/learn-cryptography","ed0"),exact:!0,sidebar:"docs"},{path:"/docs/learn-DOT",component:d("/docs/learn-DOT","829"),exact:!0,sidebar:"docs"},{path:"/docs/learn-dot-ksm-bridge",component:d("/docs/learn-dot-ksm-bridge","cac"),exact:!0,sidebar:"docs"},{path:"/docs/learn-elastic-scaling",component:d("/docs/learn-elastic-scaling","44a"),exact:!0,sidebar:"docs"},{path:"/docs/learn-future-implementations-index",component:d("/docs/learn-future-implementations-index","e25"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-accounts",component:d("/docs/learn-guides-accounts","39f"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-accounts-multisig",component:d("/docs/learn-guides-accounts-multisig","53f"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-accounts-proxy",component:d("/docs/learn-guides-accounts-proxy","d1c"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-accounts-proxy-pure",component:d("/docs/learn-guides-accounts-proxy-pure","bbc"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-asset-conversion",component:d("/docs/learn-guides-asset-conversion","ef4"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-assets",component:d("/docs/learn-guides-assets","8f4"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-assets-create",component:d("/docs/learn-guides-assets-create","5a5"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-bounties",component:d("/docs/learn-guides-bounties","43b"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-bridges",component:d("/docs/learn-guides-bridges","7e1"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-claims",component:d("/docs/learn-guides-claims","aa7"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-coretime-marketplaces",component:d("/docs/learn-guides-coretime-marketplaces","515"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-coretime-parachains",component:d("/docs/learn-guides-coretime-parachains","8e6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-coretime-swap",component:d("/docs/learn-guides-coretime-swap","eeb"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-dot-ksm-bridge",component:d("/docs/learn-guides-dot-ksm-bridge","0b0"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-identity",component:d("/docs/learn-guides-identity","271"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-ledger",component:d("/docs/learn-guides-ledger","4d2"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-nominator",component:d("/docs/learn-guides-nominator","d01"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-polkadot-opengov",component:d("/docs/learn-guides-polkadot-opengov","e43"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-staking",component:d("/docs/learn-guides-staking","c84"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-staking-pools",component:d("/docs/learn-guides-staking-pools","599"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-test-opengov-proposals",component:d("/docs/learn-guides-test-opengov-proposals","1b1"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-transfers",component:d("/docs/learn-guides-transfers","d9a"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-treasury",component:d("/docs/learn-guides-treasury","378"),exact:!0,sidebar:"docs"},{path:"/docs/learn-guides-vault",component:d("/docs/learn-guides-vault","c39"),exact:!0,sidebar:"docs"},{path:"/docs/learn-hyperbridge",component:d("/docs/learn-hyperbridge","646"),exact:!0,sidebar:"docs"},{path:"/docs/learn-identity",component:d("/docs/learn-identity","2c1"),exact:!0,sidebar:"docs"},{path:"/docs/learn-implementations",component:d("/docs/learn-implementations","9b0"),exact:!0},{path:"/docs/learn-index",component:d("/docs/learn-index","0b7"),exact:!0,sidebar:"docs"},{path:"/docs/learn-inflation",component:d("/docs/learn-inflation","649"),exact:!0,sidebar:"docs"},{path:"/docs/learn-jam",component:d("/docs/learn-jam","e19"),exact:!0,sidebar:"docs"},{path:"/docs/learn-jam-chain",component:d("/docs/learn-jam-chain","35f"),exact:!0,sidebar:"docs"},{path:"/docs/learn-jam-faq",component:d("/docs/learn-jam-faq","617"),exact:!0,sidebar:"docs"},{path:"/docs/learn-kusama-inflation",component:d("/docs/learn-kusama-inflation","df6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-nft",component:d("/docs/learn-nft","078"),exact:!0,sidebar:"docs"},{path:"/docs/learn-nft-pallets",component:d("/docs/learn-nft-pallets","665"),exact:!0,sidebar:"docs"},{path:"/docs/learn-nft-projects",component:d("/docs/learn-nft-projects","226"),exact:!0,sidebar:"docs"},{path:"/docs/learn-nomination-pools",component:d("/docs/learn-nomination-pools","328"),exact:!0,sidebar:"docs"},{path:"/docs/learn-nominator",component:d("/docs/learn-nominator","043"),exact:!0,sidebar:"docs"},{path:"/docs/learn-offenses",component:d("/docs/learn-offenses","be7"),exact:!0,sidebar:"docs"},{path:"/docs/learn-parachains",component:d("/docs/learn-parachains","b9e"),exact:!0,sidebar:"docs"},{path:"/docs/learn-parachains-faq",component:d("/docs/learn-parachains-faq","357"),exact:!0,sidebar:"docs"},{path:"/docs/learn-parachains-index",component:d("/docs/learn-parachains-index","e80"),exact:!0,sidebar:"docs"},{path:"/docs/learn-parachains-protocol",component:d("/docs/learn-parachains-protocol","0a7"),exact:!0,sidebar:"docs"},{path:"/docs/learn-participants-index",component:d("/docs/learn-participants-index","426"),exact:!0,sidebar:"docs"},{path:"/docs/learn-phragmen",component:d("/docs/learn-phragmen","773"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-host",component:d("/docs/learn-polkadot-host","92a"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-js-guides",component:d("/docs/learn-polkadot-js-guides","347"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-opengov",component:d("/docs/learn-polkadot-opengov","3b3"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-opengov-index",component:d("/docs/learn-polkadot-opengov-index","922"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-opengov-origins",component:d("/docs/learn-polkadot-opengov-origins","9d6"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-opengov-treasury",component:d("/docs/learn-polkadot-opengov-treasury","140"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadot-technical-fellowship",component:d("/docs/learn-polkadot-technical-fellowship","608"),exact:!0,sidebar:"docs"},{path:"/docs/learn-polkadotjs",component:d("/docs/learn-polkadotjs","089"),exact:!0,sidebar:"docs"},{path:"/docs/learn-proxies",component:d("/docs/learn-proxies","a18"),exact:!0,sidebar:"docs"},{path:"/docs/learn-proxies-pure",component:d("/docs/learn-proxies-pure","8be"),exact:!0,sidebar:"docs"},{path:"/docs/learn-runtime-upgrades",component:d("/docs/learn-runtime-upgrades","582"),exact:!0,sidebar:"docs"},{path:"/docs/learn-safrole",component:d("/docs/learn-safrole","213"),exact:!0,sidebar:"docs"},{path:"/docs/learn-scams",component:d("/docs/learn-scams","a7e"),exact:!0,sidebar:"docs"},{path:"/docs/learn-snowbridge",component:d("/docs/learn-snowbridge","f68"),exact:!0,sidebar:"docs"},{path:"/docs/learn-spree",component:d("/docs/learn-spree","c79"),exact:!0,sidebar:"docs"},{path:"/docs/learn-staking",component:d("/docs/learn-staking","e0a"),exact:!0,sidebar:"docs"},{path:"/docs/learn-staking-advanced",component:d("/docs/learn-staking-advanced","9de"),exact:!0,sidebar:"docs"},{path:"/docs/learn-staking-index",component:d("/docs/learn-staking-index","cf9"),exact:!0,sidebar:"docs"},{path:"/docs/learn-system-chains",component:d("/docs/learn-system-chains","3b8"),exact:!0,sidebar:"docs"},{path:"/docs/learn-teleport",component:d("/docs/learn-teleport","18c"),exact:!0,sidebar:"docs"},{path:"/docs/learn-transactions",component:d("/docs/learn-transactions","340"),exact:!0,sidebar:"docs"},{path:"/docs/learn-validator",component:d("/docs/learn-validator","e28"),exact:!0,sidebar:"docs"},{path:"/docs/learn-video-tutorials",component:d("/docs/learn-video-tutorials","64f"),exact:!0,sidebar:"docs"},{path:"/docs/learn-wasm",component:d("/docs/learn-wasm","0b7"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm",component:d("/docs/learn-xcm","20d"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm-index",component:d("/docs/learn-xcm-index","49c"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm-instructions",component:d("/docs/learn-xcm-instructions","8ed"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm-pallet",component:d("/docs/learn-xcm-pallet","3da"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm-transport",component:d("/docs/learn-xcm-transport","5ef"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcm-usecases",component:d("/docs/learn-xcm-usecases","2ae"),exact:!0,sidebar:"docs"},{path:"/docs/learn-xcvm",component:d("/docs/learn-xcvm","d56"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-auction",component:d("/docs/learn/learn-auction","9ae"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-controller",component:d("/docs/learn/learn-controller","d30"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-crowdloans",component:d("/docs/learn/learn-crowdloans","b27"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-governance",component:d("/docs/learn/learn-governance","fde"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-launch",component:d("/docs/learn/learn-launch","853"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-redenomination",component:d("/docs/learn/learn-redenomination","6a6"),exact:!0,sidebar:"docs"},{path:"/docs/learn/learn-treasury",component:d("/docs/learn/learn-treasury","75c"),exact:!0,sidebar:"docs"},{path:"/docs/learn/thousand-validators",component:d("/docs/learn/thousand-validators","138"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm",component:d("/docs/learn/xcm","995"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/config-deep-dive",component:d("/docs/learn/xcm/config-deep-dive","b64"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals",component:d("/docs/learn/xcm/fundamentals","13d"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals-fees",component:d("/docs/learn/xcm/fundamentals-fees","6b3"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals-multiasset",component:d("/docs/learn/xcm/fundamentals-multiasset","001"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals-summary",component:d("/docs/learn/xcm/fundamentals-summary","a4b"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals-xcvm",component:d("/docs/learn/xcm/fundamentals-xcvm","086"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals/multilocation",component:d("/docs/learn/xcm/fundamentals/multilocation","e19"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals/multilocation-example",component:d("/docs/learn/xcm/fundamentals/multilocation-example","358"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals/multilocation-junctions",component:d("/docs/learn/xcm/fundamentals/multilocation-junctions","e64"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/fundamentals/multilocation-summary",component:d("/docs/learn/xcm/fundamentals/multilocation-summary","958"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/introduction",component:d("/docs/learn/xcm/introduction","813"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey",component:d("/docs/learn/xcm/journey","0b1"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-assets",component:d("/docs/learn/xcm/journey-assets","bf0"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-channels",component:d("/docs/learn/xcm/journey-channels","22c"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-expectations",component:d("/docs/learn/xcm/journey-expectations","c0f"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-fees",component:d("/docs/learn/xcm/journey-fees","193"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-holding",component:d("/docs/learn/xcm/journey-holding","b29"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-locks",component:d("/docs/learn/xcm/journey-locks","f3a"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-origin",component:d("/docs/learn/xcm/journey-origin","a4d"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-queries",component:d("/docs/learn/xcm/journey-queries","670"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-register",component:d("/docs/learn/xcm/journey-register","0fe"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-summary",component:d("/docs/learn/xcm/journey-summary","6a3"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-transact",component:d("/docs/learn/xcm/journey-transact","eae"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey-version",component:d("/docs/learn/xcm/journey-version","d38"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey/transfers",component:d("/docs/learn/xcm/journey/transfers","d74"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey/transfers-reserve",component:d("/docs/learn/xcm/journey/transfers-reserve","4a6"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey/transfers-summary",component:d("/docs/learn/xcm/journey/transfers-summary","2e8"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/journey/transfers-teleport",component:d("/docs/learn/xcm/journey/transfers-teleport","2a8"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview",component:d("/docs/learn/xcm/overview","376"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview-architecture",component:d("/docs/learn/xcm/overview-architecture","7ac"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview-format",component:d("/docs/learn/xcm/overview-format","bef"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview-intro",component:d("/docs/learn/xcm/overview-intro","32c"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview-summary",component:d("/docs/learn/xcm/overview-summary","daf"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/overview-xcvm",component:d("/docs/learn/xcm/overview-xcvm","238"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/quickstart",component:d("/docs/learn/xcm/quickstart","9db"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/quickstart-first-look",component:d("/docs/learn/xcm/quickstart-first-look","b8c"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/quickstart-simulator",component:d("/docs/learn/xcm/quickstart-simulator","de9"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/quickstart-summary",component:d("/docs/learn/xcm/quickstart-summary","30b"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/reference-glossary",component:d("/docs/learn/xcm/reference-glossary","aa6"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/reference-xcvm-registers",component:d("/docs/learn/xcm/reference-xcvm-registers","043"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/references",component:d("/docs/learn/xcm/references","61c"),exact:!0,sidebar:"docs"},{path:"/docs/learn/xcm/testing",component:d("/docs/learn/xcm/testing","81b"),exact:!0,sidebar:"docs"},{path:"/docs/ledger",component:d("/docs/ledger","3c3"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-archive",component:d("/docs/maintain-archive","17f"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-bootnode",component:d("/docs/maintain-bootnode","9a2"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-collator-index",component:d("/docs/maintain-collator-index","058"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-endpoints",component:d("/docs/maintain-endpoints","3c9"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-errors",component:d("/docs/maintain-errors","57a"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-async-backing",component:d("/docs/maintain-guides-async-backing","e3a"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-chill",component:d("/docs/maintain-guides-how-to-chill","0b1"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-monitor-your-node",component:d("/docs/maintain-guides-how-to-monitor-your-node","c4b"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-stop-validating",component:d("/docs/maintain-guides-how-to-stop-validating","67e"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-systemd",component:d("/docs/maintain-guides-how-to-systemd","1ad"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-upgrade",component:d("/docs/maintain-guides-how-to-upgrade","b06"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-validate-kusama",component:d("/docs/maintain-guides-how-to-validate-kusama","3b0"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-how-to-validate-polkadot",component:d("/docs/maintain-guides-how-to-validate-polkadot","d1e"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-secure-validator",component:d("/docs/maintain-guides-secure-validator","5d5"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-society-kusama",component:d("/docs/maintain-guides-society-kusama","059"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-validator-community",component:d("/docs/maintain-guides-validator-community","699"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-guides-validator-payout",component:d("/docs/maintain-guides-validator-payout","302"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-index",component:d("/docs/maintain-index","c57"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-networks",component:d("/docs/maintain-networks","5dc"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-node-index",component:d("/docs/maintain-node-index","e80"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-polkadot-parameters",component:d("/docs/maintain-polkadot-parameters","38b"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-rpc",component:d("/docs/maintain-rpc","887"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-sync",component:d("/docs/maintain-sync","724"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-validator-index",component:d("/docs/maintain-validator-index","069"),exact:!0,sidebar:"docs"},{path:"/docs/maintain-wss",component:d("/docs/maintain-wss","207"),exact:!0,sidebar:"docs"},{path:"/docs/maintain/maintain-guides-democracy",component:d("/docs/maintain/maintain-guides-democracy","0ce"),exact:!0,sidebar:"docs"},{path:"/docs/maintain/maintain-guides-how-to-join-council",component:d("/docs/maintain/maintain-guides-how-to-join-council","992"),exact:!0,sidebar:"docs"},{path:"/docs/maintain/maintain-guides-how-to-vote-councillor",component:d("/docs/maintain/maintain-guides-how-to-vote-councillor","817"),exact:!0,sidebar:"docs"},{path:"/docs/metadata",component:d("/docs/metadata","e9a"),exact:!0,sidebar:"docs"},{path:"/docs/multisig-apps",component:d("/docs/multisig-apps","4d5"),exact:!0,sidebar:"docs"},{path:"/docs/parachains-apps",component:d("/docs/parachains-apps","a17"),exact:!0,sidebar:"docs"},{path:"/docs/parity-data-dashboards",component:d("/docs/parity-data-dashboards","11c"),exact:!0,sidebar:"docs"},{path:"/docs/polkadot-community-foundation",component:d("/docs/polkadot-community-foundation","0d6"),exact:!0,sidebar:"docs"},{path:"/docs/polkadot-direction",component:d("/docs/polkadot-direction","40a"),exact:!0,sidebar:"docs"},{path:"/docs/polkadot-v1",component:d("/docs/polkadot-v1","db1"),exact:!0,sidebar:"docs"},{path:"/docs/polkadot-vault",component:d("/docs/polkadot-vault","e33"),exact:!0,sidebar:"docs"},{path:"/docs/polkadot-vision-index",component:d("/docs/polkadot-vision-index","641"),exact:!0,sidebar:"docs"},{path:"/docs/polkadotjs",component:d("/docs/polkadotjs","8d7"),exact:!0,sidebar:"docs"},{path:"/docs/polkadotjs-ui",component:d("/docs/polkadotjs-ui","4c2"),exact:!0,sidebar:"docs"},{path:"/docs/programs-index",component:d("/docs/programs-index","292"),exact:!0,sidebar:"docs"},{path:"/docs/staking-apps",component:d("/docs/staking-apps","c2d"),exact:!0,sidebar:"docs"},{path:"/docs/staking-dashboard",component:d("/docs/staking-dashboard","a19"),exact:!0,sidebar:"docs"},{path:"/docs/start-building",component:d("/docs/start-building","501"),exact:!0,sidebar:"docs"},{path:"/docs/stay-safe-index",component:d("/docs/stay-safe-index","e19"),exact:!0,sidebar:"docs"},{path:"/docs/thousand-contributors",component:d("/docs/thousand-contributors","b6c"),exact:!0,sidebar:"docs"},{path:"/docs/transaction-attacks",component:d("/docs/transaction-attacks","5b0"),exact:!0,sidebar:"docs"},{path:"/docs/wallets-and-extensions",component:d("/docs/wallets-and-extensions","be8"),exact:!0,sidebar:"docs"},{path:"/docs/wallets-index",component:d("/docs/wallets-index","d70"),exact:!0,sidebar:"docs"},{path:"/docs/web3-and-polkadot",component:d("/docs/web3-and-polkadot","a00"),exact:!0,sidebar:"docs"}]}]}]},{path:"/",component:d("/","2e1"),exact:!0},{path:"*",component:d("*")}]},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>x,TM:()=>j,yJ:()=>f,sC:()=>A,AO:()=>p});var r=n(58168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(11561);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),x.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(x.entries[x.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=x.index+e;return t>=0&&t{"use strict";var r=n(44363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),h=c(n),b=0;b{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,o,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},10119:(e,t,n)=>{"use strict";n.r(t)},74100:(e,t,n)=>{"use strict";n.r(t)},35697:(e,t,n)=>{"use strict";n.r(t)},95728:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),l=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){c(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var c=0;c=o.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),b=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=p.substring(m+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(b),g&&y.push.apply(y,i([g])),"string"==typeof l?s.splice.apply(s,[c,1].concat(y)):l.content=y}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(Prism)},75342:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,(function(){return t}));t=t.replace(//g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},91830:(e,t,n)=>{var r={"./prism-rust":75342};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=91830},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},61105:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(46942),a=n.n(r),o=n(96540),i=n(36519),s=n(74848);const c=o.forwardRef(((e,t)=>{const[{className:n,...r},{as:o="div",bsPrefix:c,spans:l}]=function({as:e,bsPrefix:t,className:n,...r}){t=(0,i.oU)(t,"col");const o=(0,i.gy)(),s=(0,i.Jm)(),c=[],l=[];return o.forEach((e=>{const n=r[e];let a,o,i;delete r[e],"object"==typeof n&&null!=n?({span:a,offset:o,order:i}=n):a=n;const u=e!==s?`-${e}`:"";a&&c.push(!0===a?`${t}${u}`:`${t}${u}-${a}`),null!=i&&l.push(`order${u}-${i}`),null!=o&&l.push(`offset${u}-${o}`)})),[{...r,className:a()(n,...c,...l)},{as:e,bsPrefix:t,spans:c}]}(e);return(0,s.jsx)(o,{...r,ref:t,className:a()(n,!l.length&&c)})}));c.displayName="Col";const l=c},43048:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(46942),a=n.n(r),o=n(96540),i=n(36519),s=n(74848);const c=o.forwardRef((({bsPrefix:e,fluid:t=!1,as:n="div",className:r,...o},c)=>{const l=(0,i.oU)(e,"container"),u="string"==typeof t?`-${t}`:"-fluid";return(0,s.jsx)(n,{ref:c,...o,className:a()(r,t?`${l}${u}`:l)})}));c.displayName="Container";const l=c},44479:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(46942),a=n.n(r),o=n(96540),i=n(36519),s=n(74848);const c=o.forwardRef((({bsPrefix:e,className:t,as:n="div",...r},o)=>{const c=(0,i.oU)(e,"row"),l=(0,i.gy)(),u=(0,i.Jm)(),d=`${c}-cols`,p=[];return l.forEach((e=>{const t=r[e];let n;delete r[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const a=e!==u?`-${e}`:"";null!=n&&p.push(`${d}${a}-${n}`)})),(0,s.jsx)(n,{ref:o,...r,className:a()(t,c,...p)})}));c.displayName="Row";const l=c},36519:(e,t,n)=>{"use strict";n.d(t,{Jm:()=>u,gy:()=>l,oU:()=>c});var r=n(96540);n(74848);const a=["xxl","xl","lg","md","sm","xs"],o=r.createContext({prefixes:{},breakpoints:a,minBreakpoint:"xs"}),{Consumer:i,Provider:s}=o;function c(e,t){const{prefixes:n}=(0,r.useContext)(o);return e||n[t]||t}function l(){const{breakpoints:e}=(0,r.useContext)(o);return e}function u(){const{minBreakpoint:e}=(0,r.useContext)(o);return e}},22551:(e,t,n)=>{"use strict";var r=n(96540),a=n(69982);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n