[{"data":1,"prerenderedAt":1968},["ShallowReactive",2],{"navigation":3,"/zksync-network/quick-start":1198,"/zksync-network/quick-start-surround":1293,"content-query-2kAyuzFoqW":1298,"content-query-vvabuwHP3A":1362,"content-query-HnBUaOfHiv":1520,"content-query-OF2UKiHUI4":1597},[4,763,878],{"title":5,"_path":6,"children":7},"ZKsync Network","/zksync-network",[8,10,25,37,88,134,296,728,742,760],{"title":9,"_path":6},"Introduction",{"title":11,"_path":12,"children":13},"Quickstart","/zksync-network/quick-start",[14,16,19,22],{"title":15,"_path":12},"Setup",{"title":17,"_path":18},"Deploy your first contract","/zksync-network/quick-start/deploy-your-first-contract",{"title":20,"_path":21},"Interact with your contract","/zksync-network/quick-start/interact-with-your-contract",{"title":23,"_path":24},"Build a Frontend","/zksync-network/quick-start/build-a-frontend",{"title":26,"_path":27,"children":28},"Environment","/zksync-network/environment",[29,31,34],{"title":30,"_path":27},"Elastic Network Chains",{"title":32,"_path":33},"L1 contracts","/zksync-network/environment/l1-contracts",{"title":35,"_path":36},"System contracts","/zksync-network/environment/l2-contracts",{"title":38,"_path":39,"children":40},"ZKsync Era","/zksync-network/zksync-era",[41,43,46,49],{"title":42,"_path":39},"About ZKsync Era",{"title":44,"_path":45},"ZKsync Era RPC","/zksync-network/zksync-era/network-details",{"title":47,"_path":48},"Features","/zksync-network/zksync-era/unique-features",{"title":50,"_path":51,"children":52},"Ecosystem","/zksync-network/zksync-era/ecosystem",[53,55,58,61,64,67,70,73,76,79,82,85],{"title":54,"_path":51},"Explore the ecosystem",{"title":56,"_path":57},"Bridges","/zksync-network/zksync-era/ecosystem/bridges",{"title":59,"_path":60},"Cross chain","/zksync-network/zksync-era/ecosystem/cross-chain",{"title":62,"_path":63},"Data indexers","/zksync-network/zksync-era/ecosystem/data-indexers",{"title":65,"_path":66},"Monitoring","/zksync-network/zksync-era/ecosystem/monitoring",{"title":68,"_path":69},"Network faucets","/zksync-network/zksync-era/ecosystem/network-faucets",{"title":71,"_path":72},"NFT marketplaces","/zksync-network/zksync-era/ecosystem/nft-marketplaces",{"title":74,"_path":75},"Oracles","/zksync-network/zksync-era/ecosystem/oracles",{"title":77,"_path":78},"RPC providers","/zksync-network/zksync-era/ecosystem/node-providers",{"title":80,"_path":81},"Wallets","/zksync-network/zksync-era/ecosystem/wallets",{"title":83,"_path":84},"User Onboarding","/zksync-network/zksync-era/ecosystem/user-onboarding",{"title":86,"_path":87},"Paymasters","/zksync-network/zksync-era/ecosystem/paymasters",{"title":89,"_path":90,"children":91},"Unique features","/zksync-network/unique-features",[92,125],{"title":93,"_path":94,"children":95},"ZKsync SSO","/zksync-network/unique-features/zksync-sso",[96,98,101,104,107,110,113,116,119,122],{"title":97,"_path":94},"SSO Intro",{"title":99,"_path":100},"Getting Started","/zksync-network/unique-features/zksync-sso/getting-started",{"title":102,"_path":103},"Architecture","/zksync-network/unique-features/zksync-sso/architecture",{"title":105,"_path":106},"Auth Server","/zksync-network/unique-features/zksync-sso/auth-server",{"title":108,"_path":109},"Sessions","/zksync-network/unique-features/zksync-sso/sessions",{"title":111,"_path":112},"Passkeys","/zksync-network/unique-features/zksync-sso/passkeys",{"title":114,"_path":115},"Accounts","/zksync-network/unique-features/zksync-sso/accounts",{"title":117,"_path":118},"Account Recovery","/zksync-network/unique-features/zksync-sso/account-recovery",{"title":120,"_path":121},"Transaction Flow","/zksync-network/unique-features/zksync-sso/transaction-flow",{"title":123,"_path":124},"FAQs","/zksync-network/unique-features/zksync-sso/faqs",{"title":126,"_path":127,"children":128},"ZKsync Connect","/zksync-network/unique-features/zksync-connect",[129,131],{"title":130,"_path":127},"Overview",{"title":132,"_path":133},"Messaging","/zksync-network/unique-features/zksync-connect/messaging",{"title":135,"_path":136,"children":137},"Tooling","/zksync-network/tooling",[138,152,207,232,287,290,293],{"title":139,"_path":140,"children":141},"Local setup","/zksync-network/tooling/local-setup",[142,143,146,149],{"title":99,"_path":140},{"title":144,"_path":145},"anvil-zksync","/zksync-network/tooling/local-setup/anvil-zksync-node",{"title":147,"_path":148},"Docker L1 - L2 Nodes","/zksync-network/tooling/local-setup/dockerized-l1-l2-nodes",{"title":150,"_path":151},"Continuous Integration","/zksync-network/tooling/local-setup/continuous-integration",{"title":153,"_path":154,"children":155},"Hardhat","/zksync-network/tooling/hardhat",[156,157,160,173],{"title":130,"_path":154},{"title":158,"_path":159},"Installation","/zksync-network/tooling/hardhat/installation",{"title":161,"_path":162,"children":163},"Guides","/zksync-network/tooling/hardhat/guides",[164,167,170],{"title":165,"_path":166},"Getting started","/zksync-network/tooling/hardhat/guides/getting-started",{"title":168,"_path":169},"Migrating Hardhat project to ZKsync Era","/zksync-network/tooling/hardhat/guides/migrating-to-zksync",{"title":171,"_path":172},"Compiling non-inlinable libraries","/zksync-network/tooling/hardhat/guides/compiling-libraries",{"title":174,"_path":175,"children":176},"Plugins","/zksync-network/tooling/hardhat/plugins",[177,180,183,186,189,192,195,198,201,204],{"title":178,"_path":179},"hardhat-zksync","/zksync-network/tooling/hardhat/plugins/hardhat-zksync",{"title":181,"_path":182},"hardhat-zksync-solc","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-solc",{"title":184,"_path":185},"hardhat-zksync-vyper","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-vyper",{"title":187,"_path":188},"hardhat-zksync-deploy","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-deploy",{"title":190,"_path":191},"hardhat-zksync-upgradable","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-upgradable",{"title":193,"_path":194},"hardhat-zksync-verify","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-verify",{"title":196,"_path":197},"hardhat-zksync-verify-vyper","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-verify-vyper",{"title":199,"_path":200},"hardhat-zksync-ethers","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-ethers",{"title":202,"_path":203},"hardhat-zksync-node","/zksync-network/tooling/hardhat/plugins/hardhat-zksync-node",{"title":205,"_path":206},"Hardhat Community Plugins","/zksync-network/tooling/hardhat/plugins/other-plugins",{"title":208,"_path":209,"children":210},"Foundry","/zksync-network/tooling/foundry",[211,213,215,217],{"title":130,"_path":212},"/zksync-network/tooling/foundry/overview",{"title":158,"_path":214},"/zksync-network/tooling/foundry/installation",{"title":99,"_path":216},"/zksync-network/tooling/foundry/getting-started",{"title":218,"_path":219,"children":220},"Migration Guide","/zksync-network/tooling/foundry/migration-guide",[221,223,226,229],{"title":130,"_path":222},"/zksync-network/tooling/foundry/migration-guide/overview",{"title":224,"_path":225},"Compilation","/zksync-network/tooling/foundry/migration-guide/compilation",{"title":227,"_path":228},"Deployment","/zksync-network/tooling/foundry/migration-guide/deployment",{"title":230,"_path":231},"Testing","/zksync-network/tooling/foundry/migration-guide/testing",{"title":233,"_path":234,"children":235},"ZKsync CLI","/zksync-network/tooling/zksync-cli",[236,237,240,243,246,249,252,255,258,261],{"title":99,"_path":234},{"title":238,"_path":239},"Reading transaction data","/zksync-network/tooling/zksync-cli/reading-transaction-data",{"title":241,"_path":242},"Wallet actions","/zksync-network/tooling/zksync-cli/wallet-actions",{"title":244,"_path":245},"Bridging","/zksync-network/tooling/zksync-cli/bridging",{"title":247,"_path":248},"Interact with contracts","/zksync-network/tooling/zksync-cli/interact-with-contracts",{"title":250,"_path":251},"Creating projects","/zksync-network/tooling/zksync-cli/creating-projects",{"title":253,"_path":254},"Running a node","/zksync-network/tooling/zksync-cli/running-a-node",{"title":256,"_path":257},"Configuring chains","/zksync-network/tooling/zksync-cli/configuring-chains",{"title":259,"_path":260},"Troubleshooting","/zksync-network/tooling/zksync-cli/troubleshooting",{"title":262,"_path":263,"children":264},"CLI Reference","/zksync-network/tooling/zksync-cli/reference",[265,266,269,272,275,278,281,284],{"title":130,"_path":263},{"title":267,"_path":268},"zksync-cli bridge","/zksync-network/tooling/zksync-cli/reference/zksync-cli-bridge",{"title":270,"_path":271},"zksync-cli config chains","/zksync-network/tooling/zksync-cli/reference/zksync-cli-config-chains",{"title":273,"_path":274},"zksync-cli contract","/zksync-network/tooling/zksync-cli/reference/zksync-cli-contract",{"title":276,"_path":277},"zksync-cli create","/zksync-network/tooling/zksync-cli/reference/zksync-cli-create",{"title":279,"_path":280},"zksync-cli dev","/zksync-network/tooling/zksync-cli/reference/zksync-cli-dev",{"title":282,"_path":283},"zksync-cli transaction","/zksync-network/tooling/zksync-cli/reference/zksync-cli-transaction",{"title":285,"_path":286},"zksync-cli wallet","/zksync-network/tooling/zksync-cli/reference/zksync-cli-wallet",{"title":288,"_path":289},"Block explorers","/zksync-network/tooling/block-explorers",{"title":291,"_path":292},"ZKsync External Node","/zksync-network/tooling/external-node",{"title":294,"_path":295},"ZKsync Easy On-Ramp","/zksync-network/tooling/zksync-easy-onramp",{"title":297,"_path":298,"children":299},"SDK","/zksync-network/sdk",[300,301,498,572,623,673,720],{"title":9,"_path":298},{"title":302,"_path":303,"children":304},"JavaScript","/zksync-network/sdk/js",[305,310,472],{"title":306,"_path":307,"children":308},"Viem","/zksync-network/sdk/js/viem",[309],{"title":99,"_path":307},{"title":311,"_path":312,"children":313},"Ethers","/zksync-network/sdk/js/ethers",[314,315,317,320,339],{"title":130,"_path":312},{"title":158,"_path":316},"/zksync-network/sdk/js/ethers/installation",{"title":318,"_path":319},"Platform Compatibility","/zksync-network/sdk/js/ethers/compatibility",{"title":161,"_path":321,"children":322},"/zksync-network/sdk/js/ethers/guides",[323,324,327,330,333,336],{"title":99,"_path":321},{"title":325,"_path":326},"ZKsync Features","/zksync-network/sdk/js/ethers/guides/features",{"title":328,"_path":329},"L1\u003C->L2 Transactions","/zksync-network/sdk/js/ethers/guides/accounts-l1-l2",{"title":331,"_path":332},"Frontend Integration","/zksync-network/sdk/js/ethers/guides/front-end",{"title":334,"_path":335},"Migration from `zksync-web3`","/zksync-network/sdk/js/ethers/guides/migration",{"title":337,"_path":338},"Interop Messages","/zksync-network/sdk/js/ethers/guides/interop-messages",{"title":340,"_path":341,"children":342},"API","/zksync-network/sdk/js/ethers/api",[343,410],{"title":344,"_path":345,"children":346},"Ethers v5","/zksync-network/sdk/js/ethers/api/v5",[347,350,361,389,398],{"title":348,"_path":349},"Types and Interfaces","/zksync-network/sdk/js/ethers/api/v5/types",{"title":351,"_path":352,"children":353},"Providers","/zksync-network/sdk/js/ethers/api/v5/providers",[354,355,358],{"title":9,"_path":352},{"title":356,"_path":357},"Provider","/zksync-network/sdk/js/ethers/api/v5/providers/provider",{"title":359,"_path":360},"Web3Provider","/zksync-network/sdk/js/ethers/api/v5/providers/web3provider",{"title":114,"_path":362,"children":363},"/zksync-network/sdk/js/ethers/api/v5/accounts",[364,365,368,371,374,377,380,383,386],{"title":9,"_path":362},{"title":366,"_path":367},"Wallet","/zksync-network/sdk/js/ethers/api/v5/accounts/wallet",{"title":369,"_path":370},"Signer","/zksync-network/sdk/js/ethers/api/v5/accounts/signer",{"title":372,"_path":373},"L1Signer","/zksync-network/sdk/js/ethers/api/v5/accounts/l1signer",{"title":375,"_path":376},"L2VoidSigner","/zksync-network/sdk/js/ethers/api/v5/accounts/l2voidsigner",{"title":378,"_path":379},"L1VoidSigner","/zksync-network/sdk/js/ethers/api/v5/accounts/l1voidsigner",{"title":381,"_path":382},"EIP712Signer","/zksync-network/sdk/js/ethers/api/v5/accounts/eip712signer",{"title":384,"_path":385},"SmartAccount","/zksync-network/sdk/js/ethers/api/v5/accounts/smartaccount",{"title":387,"_path":388},"SmartAccount Factories","/zksync-network/sdk/js/ethers/api/v5/accounts/smartaccount-factories",{"title":390,"_path":391,"children":392},"Contract","/zksync-network/sdk/js/ethers/api/v5/contract",[393,395],{"title":394,"_path":391},"Contracts",{"title":396,"_path":397},"ContractFactory","/zksync-network/sdk/js/ethers/api/v5/contract/contract-factory",{"title":399,"_path":400,"children":401},"Utilities","/zksync-network/sdk/js/ethers/api/v5/utilities",[402,404,407],{"title":403,"_path":400},"Common Utilities",{"title":405,"_path":406},"Paymaster Utilities","/zksync-network/sdk/js/ethers/api/v5/utilities/paymaster-utils",{"title":408,"_path":409},"Smart Account Utilities","/zksync-network/sdk/js/ethers/api/v5/utilities/smart-account-utils",{"title":411,"_path":412,"children":413},"Ethers v6","/zksync-network/sdk/js/ethers/api/v6",[414,416,425,445,451,459],{"title":348,"_path":415},"/zksync-network/sdk/js/ethers/api/v6/types",{"title":351,"_path":417,"children":418},"/zksync-network/sdk/js/ethers/api/v6/providers",[419,420,422],{"title":9,"_path":417},{"title":356,"_path":421},"/zksync-network/sdk/js/ethers/api/v6/providers/provider",{"title":423,"_path":424},"BrowserProvider","/zksync-network/sdk/js/ethers/api/v6/providers/browser-provider",{"title":114,"_path":426,"children":427},"/zksync-network/sdk/js/ethers/api/v6/accounts",[428,429,431,433,435,437,439,441,443],{"title":9,"_path":426},{"title":366,"_path":430},"/zksync-network/sdk/js/ethers/api/v6/accounts/wallet",{"title":369,"_path":432},"/zksync-network/sdk/js/ethers/api/v6/accounts/signer",{"title":372,"_path":434},"/zksync-network/sdk/js/ethers/api/v6/accounts/l1signer",{"title":375,"_path":436},"/zksync-network/sdk/js/ethers/api/v6/accounts/l2voidsigner",{"title":378,"_path":438},"/zksync-network/sdk/js/ethers/api/v6/accounts/l1voidsigner",{"title":381,"_path":440},"/zksync-network/sdk/js/ethers/api/v6/accounts/eip712signer",{"title":384,"_path":442},"/zksync-network/sdk/js/ethers/api/v6/accounts/smartaccount",{"title":387,"_path":444},"/zksync-network/sdk/js/ethers/api/v6/accounts/smartaccount-factories",{"title":390,"_path":446,"children":447},"/zksync-network/sdk/js/ethers/api/v6/contract",[448,449],{"title":390,"_path":446},{"title":396,"_path":450},"/zksync-network/sdk/js/ethers/api/v6/contract/contract-factory",{"title":399,"_path":452,"children":453},"/zksync-network/sdk/js/ethers/api/v6/utilities",[454,455,457],{"title":399,"_path":452},{"title":405,"_path":456},"/zksync-network/sdk/js/ethers/api/v6/utilities/paymaster-utils",{"title":408,"_path":458},"/zksync-network/sdk/js/ethers/api/v6/utilities/smart-account-utils",{"title":56,"_path":460,"children":461},"/zksync-network/sdk/js/ethers/api/v6/bridges",[462,463,466,469],{"title":9,"_path":460},{"title":464,"_path":465},"AbstractBridge","/zksync-network/sdk/js/ethers/api/v6/bridges/abstract-bridge",{"title":467,"_path":468},"USDCBridge","/zksync-network/sdk/js/ethers/api/v6/bridges/usdc-bridge",{"title":470,"_path":471},"Types","/zksync-network/sdk/js/ethers/api/v6/bridges/types",{"title":473,"_path":474,"children":475},"Web3.js","/zksync-network/sdk/js/web3js",[476,477,479,482,485,487,490,492,495],{"title":130,"_path":474},{"title":99,"_path":478},"/zksync-network/sdk/js/web3js/getting-started",{"title":480,"_path":481},"RPC Methods","/zksync-network/sdk/js/web3js/rpc",{"title":483,"_path":484},"Constants, Types, & Utilities","/zksync-network/sdk/js/web3js/constants-types-utilities",{"title":366,"_path":486},"/zksync-network/sdk/js/web3js/wallet",{"title":488,"_path":489},"Custom Transaction Data","/zksync-network/sdk/js/web3js/custom-data",{"title":86,"_path":491},"/zksync-network/sdk/js/web3js/paymasters",{"title":493,"_path":494},"Smart Contracts","/zksync-network/sdk/js/web3js/contracts",{"title":496,"_path":497},"Smart Accounts","/zksync-network/sdk/js/web3js/smart-accounts",{"title":499,"_path":500,"children":501},"Go","/zksync-network/sdk/go",[502,504,515],{"title":158,"_path":503},"/zksync-network/sdk/go/installation",{"title":161,"_path":505,"children":506},"/zksync-network/sdk/go/guides",[507,508,510,512],{"title":99,"_path":505},{"title":325,"_path":509},"/zksync-network/sdk/go/guides/features",{"title":328,"_path":511},"/zksync-network/sdk/go/guides/accounts-l1-l2",{"title":513,"_path":514},"Migration from v0 to v1","/zksync-network/sdk/go/guides/migration-v0-v1",{"title":340,"_path":516,"children":517},"/zksync-network/sdk/go/api",[518,528,554,560,564,570],{"title":519,"_path":520,"children":521},"Clients","/zksync-network/sdk/go/api/clients",[522,523,526],{"title":9,"_path":520},{"title":524,"_path":525},"Client","/zksync-network/sdk/go/api/clients/client",{"title":470,"_path":527},"/zksync-network/sdk/go/api/clients/types",{"title":114,"_path":529,"children":530},"/zksync-network/sdk/go/api/accounts",[531,532,534,537,539,542,545,547,549,552],{"title":9,"_path":529},{"title":369,"_path":533},"/zksync-network/sdk/go/api/accounts/signer",{"title":535,"_path":536},"BaseDeployer","/zksync-network/sdk/go/api/accounts/deployer",{"title":366,"_path":538},"/zksync-network/sdk/go/api/accounts/wallet",{"title":540,"_path":541},"WalletL1","/zksync-network/sdk/go/api/accounts/walletl1",{"title":543,"_path":544},"WalletL2","/zksync-network/sdk/go/api/accounts/walletl2",{"title":384,"_path":546},"/zksync-network/sdk/go/api/accounts/smartaccount",{"title":387,"_path":548},"/zksync-network/sdk/go/api/accounts/smartaccount-factories",{"title":550,"_path":551},"SmartAccount Utilities","/zksync-network/sdk/go/api/accounts/smart-account-utils",{"title":470,"_path":553},"/zksync-network/sdk/go/api/accounts/types",{"title":555,"_path":556,"children":557},"EIP712","/zksync-network/sdk/go/api/eip712",[558],{"title":559,"_path":556},"EIP712 Package",{"title":394,"_path":561,"children":562},"/zksync-network/sdk/go/api/contracts",[563],{"title":394,"_path":561},{"title":399,"_path":565,"children":566},"/zksync-network/sdk/go/api/utilities",[567,568],{"title":403,"_path":565},{"title":405,"_path":569},"/zksync-network/sdk/go/api/utilities/paymaster-utils",{"title":470,"_path":571},"/zksync-network/sdk/go/api/types",{"title":573,"_path":574,"children":575},"Python","/zksync-network/sdk/python",[576,578,586],{"title":158,"_path":577},"/zksync-network/sdk/python/installation",{"title":161,"_path":579,"children":580},"/zksync-network/sdk/python/guides",[581,582,584],{"title":99,"_path":579},{"title":325,"_path":583},"/zksync-network/sdk/python/guides/features",{"title":328,"_path":585},"/zksync-network/sdk/python/guides/accounts-l1-l2",{"title":340,"_path":587,"children":588},"/zksync-network/sdk/python/api",[589,595,610,615,621],{"title":351,"_path":590,"children":591},"/zksync-network/sdk/python/api/providers",[592,593],{"title":9,"_path":590},{"title":356,"_path":594},"/zksync-network/sdk/python/api/providers/provider",{"title":114,"_path":596,"children":597},"/zksync-network/sdk/python/api/accounts",[598,599,601,604,606,608],{"title":9,"_path":596},{"title":366,"_path":600},"/zksync-network/sdk/python/api/accounts/wallet",{"title":602,"_path":603},"ETHSigner","/zksync-network/sdk/python/api/accounts/ethsigner",{"title":384,"_path":605},"/zksync-network/sdk/python/api/accounts/smartaccount",{"title":408,"_path":607},"/zksync-network/sdk/python/api/accounts/smart-account-utils",{"title":387,"_path":609},"/zksync-network/sdk/python/api/accounts/smartaccount-factories",{"title":394,"_path":611,"children":612},"/zksync-network/sdk/python/api/contracts",[613],{"title":614,"_path":611},"Contract Interfaces",{"title":399,"_path":616,"children":617},"/zksync-network/sdk/python/api/utilities",[618,619],{"title":399,"_path":616},{"title":405,"_path":620},"/zksync-network/sdk/python/api/utilities/paymaster-utils",{"title":470,"_path":622},"/zksync-network/sdk/python/api/types",{"title":624,"_path":625,"children":626},"Java","/zksync-network/sdk/java",[627,629,637],{"title":158,"_path":628},"/zksync-network/sdk/java/installation",{"title":161,"_path":630,"children":631},"/zksync-network/sdk/java/guides",[632,633,635],{"title":99,"_path":630},{"title":325,"_path":634},"/zksync-network/sdk/java/guides/features",{"title":328,"_path":636},"/zksync-network/sdk/java/guides/accounts-l1-l2",{"title":340,"_path":638,"children":639},"/zksync-network/sdk/java/api",[640,646,661,665,671],{"title":351,"_path":641,"children":642},"/zksync-network/sdk/java/api/providers",[643,644],{"title":9,"_path":641},{"title":356,"_path":645},"/zksync-network/sdk/java/api/providers/provider",{"title":114,"_path":647,"children":648},"/zksync-network/sdk/java/api/accounts",[649,650,652,655,657,659],{"title":9,"_path":647},{"title":366,"_path":651},"/zksync-network/sdk/java/api/accounts/wallet",{"title":653,"_path":654},"EthSigner","/zksync-network/sdk/java/api/accounts/ethsigner",{"title":384,"_path":656},"/zksync-network/sdk/java/api/accounts/smartaccount",{"title":408,"_path":658},"/zksync-network/sdk/java/api/accounts/smart-account-utils",{"title":387,"_path":660},"/zksync-network/sdk/java/api/accounts/smartaccount-factories",{"title":390,"_path":662,"children":663},"/zksync-network/sdk/java/api/contract",[664],{"title":614,"_path":662},{"title":399,"_path":666,"children":667},"/zksync-network/sdk/java/api/utilities",[668,669],{"title":399,"_path":666},{"title":405,"_path":670},"/zksync-network/sdk/java/api/utilities/paymaster-utils",{"title":470,"_path":672},"/zksync-network/sdk/java/api/types",{"title":674,"_path":675,"children":676},"Swift","/zksync-network/sdk/swift",[677,679,688],{"title":158,"_path":678},"/zksync-network/sdk/swift/installation",{"title":161,"_path":680,"children":681},"/zksync-network/sdk/swift/guides",[682,684,686],{"title":99,"_path":683},"/zksync-network/sdk/swift/guides/getting-started",{"title":325,"_path":685},"/zksync-network/sdk/swift/guides/features",{"title":328,"_path":687},"/zksync-network/sdk/swift/guides/accounts-l1-l2",{"title":340,"_path":689,"children":690},"/zksync-network/sdk/swift/api",[691,697,708,712,718],{"title":519,"_path":692,"children":693},"/zksync-network/sdk/swift/api/clients",[694,695],{"title":9,"_path":692},{"title":524,"_path":696},"/zksync-network/sdk/swift/api/clients/client",{"title":114,"_path":698,"children":699},"/zksync-network/sdk/swift/api/accounts",[700,701,704,706],{"title":9,"_path":698},{"title":702,"_path":703},"WalletL1 and WalletL2","/zksync-network/sdk/swift/api/accounts/wallet",{"title":535,"_path":705},"/zksync-network/sdk/swift/api/accounts/basedeployer",{"title":602,"_path":707},"/zksync-network/sdk/swift/api/accounts/ethsigner",{"title":394,"_path":709,"children":710},"/zksync-network/sdk/swift/api/contracts",[711],{"title":394,"_path":709},{"title":399,"_path":713,"children":714},"/zksync-network/sdk/swift/api/utilities",[715,716],{"title":403,"_path":713},{"title":405,"_path":717},"/zksync-network/sdk/swift/api/utilities/paymaster-utils",{"title":470,"_path":719},"/zksync-network/sdk/swift/api/types",{"title":721,"_path":722,"children":723},"Rust","/zksync-network/sdk/rust",[724,725],{"title":99,"_path":722},{"title":726,"_path":727},"Contract Deployment and Interaction","/zksync-network/sdk/rust/contract-deployment-and-interaction",{"title":729,"_path":730,"children":731},"ZKsync OS Developer Preview","/zksync-network/zksync-os",[732,734,737,740],{"title":733,"_path":730},"ZKsync OS Overview",{"title":735,"_path":736},"Network Details","/zksync-network/zksync-os/network-details",{"title":738,"_path":739},"Developer Quickstart","/zksync-network/zksync-os/quickstart",{"title":123,"_path":741},"/zksync-network/zksync-os/faqs",{"title":743,"_path":744,"children":745},"Contributing","/zksync-network/contributing",[746,749],{"title":747,"_path":748},"Contribution track","/zksync-network/contributing/code",{"title":750,"_path":751,"children":752},"Contributing to documentation","/zksync-network/contributing/documentation",[753,754,757],{"title":130,"_path":751},{"title":755,"_path":756},"Contribution guidelines","/zksync-network/contributing/documentation/contribution-guidelines",{"title":758,"_path":759},"Documentation styleguide","/zksync-network/contributing/documentation/documentation-styleguide",{"title":761,"_path":762},"Security and best practices","/zksync-network/security-best-practices",{"title":764,"_path":765,"children":766},"ZK Stack","/zk-stack",[767,769,772,802,824,840,875],{"title":768,"_path":765},"ZK Stack Overview",{"title":770,"_path":771},"ZKsync Chains","/zk-stack/zk-chains",{"title":773,"_path":774,"children":775},"Components","/zk-stack/components",[776,778,781,784,793,796,799],{"title":777,"_path":774},"ZK Stack Components Overview",{"title":779,"_path":780},"ZKsync OS","/zk-stack/components/zksync-os",{"title":782,"_path":783},"ZKsync OS Server","/zk-stack/components/server",{"title":785,"_path":786,"children":787},"ZKsync Airbender","/zk-stack/components/zksync-airbender",[788,790],{"title":789,"_path":786},"Airbender Overview",{"title":791,"_path":792},"Airbender Deep Dive","/zk-stack/components/zksync-airbender/deepdive",{"title":794,"_path":795},"Block explorer","/zk-stack/components/block-explorer",{"title":797,"_path":798},"Portal","/zk-stack/components/portal",{"title":800,"_path":801},"Fee withdrawer","/zk-stack/components/fee-withdrawer",{"title":803,"_path":804,"children":805},"Run a ZKsync Chain","/zk-stack/running",[806,809,812,815,818,821],{"title":807,"_path":808},"Launch a ZKsync chain","/zk-stack/running/quickstart",{"title":810,"_path":811},"Interact with your chain","/zk-stack/running/using-a-local-zk-chain",{"title":813,"_path":814},"ZKsync Gateway","/zk-stack/running/gateway-settlement-layer",{"title":816,"_path":817},"Prover setup","/zk-stack/running/proving",{"title":819,"_path":820},"Ownership Model","/zk-stack/running/ownership-model",{"title":822,"_path":823},"Rollup as a Service","/zk-stack/running/raas",{"title":825,"_path":826,"children":827},"Customizations","/zk-stack/customizations",[828,831,834,837],{"title":829,"_path":830},"Custom base tokens","/zk-stack/customizations/custom-base-tokens",{"title":832,"_path":833},"Validium in ZK Stack","/zk-stack/customizations/validium",{"title":835,"_path":836},"Configurations","/zk-stack/customizations/configurations",{"title":838,"_path":839},"Transaction filtering","/zk-stack/customizations/transaction-filtering",{"title":841,"_path":842,"children":843},"Prividium™","/zk-stack/prividium",[844,847,849,851,854,857,860,863,866,869,872],{"title":845,"_path":846},"Prividium™ Overview","/zk-stack/prividium/overview",{"title":47,"_path":848},"/zk-stack/prividium/features",{"title":102,"_path":850},"/zk-stack/prividium/architecture",{"title":852,"_path":853},"Deployment Model","/zk-stack/prividium/deployment",{"title":855,"_path":856},"Proxy RPC API","/zk-stack/prividium/proxy",{"title":858,"_path":859},"Administration and User Management","/zk-stack/prividium/administration-user-management",{"title":861,"_path":862},"Permissions and Access Control","/zk-stack/prividium/permissions-overview",{"title":864,"_path":865},"Prividium™ SDK","/zk-stack/prividium/sdk",{"title":867,"_path":868},"Private Block Explorer","/zk-stack/prividium/explorer",{"title":870,"_path":871},"Developer Considerations","/zk-stack/prividium/developer-considerations",{"title":873,"_path":874},"Prividium™ License Model","/zk-stack/prividium/license",{"title":876,"_path":877},"Open Source License","/zk-stack/license",{"title":879,"_path":880,"children":881},"ZKsync Protocol","/zksync-protocol",[882,884,901,926,939,960,978,991,1195],{"title":883,"_path":880},"Getting started with ZKsync protocol",{"title":885,"_path":886,"children":887},"ZKsync protocol overview","/zksync-protocol/rollup",[888,889,892,895,898],{"title":885,"_path":886},{"title":890,"_path":891},"Bridging assets","/zksync-protocol/rollup/bridging-assets",{"title":893,"_path":894},"Finality","/zksync-protocol/rollup/finality",{"title":896,"_path":897},"Data availability","/zksync-protocol/rollup/data-availability",{"title":899,"_path":900},"Pubdata compression","/zksync-protocol/rollup/pubdata-compression",{"title":779,"_path":902,"children":903},"/zksync-protocol/zksyncos",[904,905,908,911,914,917,920,923],{"title":733,"_path":902},{"title":906,"_path":907},"Double Resource Accounting","/zksync-protocol/zksyncos/double-accounting",{"title":909,"_path":910},"Bootloader","/zksync-protocol/zksyncos/bootloader",{"title":912,"_path":913},"Execution Environments","/zksync-protocol/zksyncos/execution-environment",{"title":915,"_path":916},"System","/zksync-protocol/zksyncos/system",{"title":918,"_path":919},"Processing of Transactions","/zksync-protocol/zksyncos/tx-processing",{"title":921,"_path":922},"System Hooks","/zksync-protocol/zksyncos/system-hooks",{"title":924,"_path":925},"Runner Flow","/zksync-protocol/zksyncos/runner-flow",{"title":813,"_path":927,"children":928},"/zksync-protocol/gateway",[929,931,933,936],{"title":930,"_path":927},"Gateway Overview",{"title":47,"_path":932},"/zksync-protocol/gateway/features",{"title":934,"_path":935},"Data Availability Considerations","/zksync-protocol/gateway/da-considerations",{"title":937,"_path":938},"Frequently Asked Questions","/zksync-protocol/gateway/gateway-faq",{"title":940,"_path":941,"children":942},"Web3 API","/zksync-protocol/api",[943,945,948,951,954,957],{"title":944,"_path":941},"API Overview",{"title":946,"_path":947},"Conventions","/zksync-protocol/api/conventions",{"title":949,"_path":950},"Ethereum JSON-RPC API","/zksync-protocol/api/ethereum-rpc",{"title":952,"_path":953},"Debug JSON-RPC API","/zksync-protocol/api/debug-rpc",{"title":955,"_path":956},"ZKsync JSON-RPC API","/zksync-protocol/api/zks-rpc",{"title":958,"_path":959},"PubSub JSON-RPC API","/zksync-protocol/api/pub-sub-rpc",{"title":394,"_path":961,"children":962},"/zksync-protocol/contracts",[963,965],{"title":964,"_path":961},"ZKsync contracts",{"title":32,"_path":966,"children":967},"/zksync-protocol/contracts/l1-contracts",[968,969,972,975],{"title":32,"_path":966},{"title":970,"_path":971},"L1 ecosystem contracts","/zksync-protocol/contracts/l1-contracts/l1-ecosystem-contracts",{"title":973,"_path":974},"Shared bridges","/zksync-protocol/contracts/l1-contracts/shared-bridges",{"title":976,"_path":977},"ZKsync Chain addresses","/zksync-protocol/contracts/l1-contracts/zk-chain-addresses",{"title":979,"_path":980,"children":981},"Protocol security","/zksync-protocol/security",[982,985,988],{"title":983,"_path":984},"Audits","/zksync-protocol/security/audits",{"title":986,"_path":987},"Bug bounty","/zksync-protocol/security/bug-bounty",{"title":989,"_path":990},"Withdrawal delay","/zksync-protocol/security/withdrawal-delay",{"title":992,"_path":993,"children":994},"EraVM Chains","/zksync-protocol/era-vm",[995,997,1024,1033,1050,1115,1127,1149,1176],{"title":996,"_path":993},"EraVM Overview",{"title":998,"_path":999,"children":1000},"Transactions","/zksync-protocol/era-vm/transactions",[1001,1004,1007,1010],{"title":1002,"_path":1003},"Transaction lifecycle","/zksync-protocol/era-vm/transactions/transaction-lifecycle",{"title":1005,"_path":1006},"Blocks and batches","/zksync-protocol/era-vm/transactions/blocks",{"title":1008,"_path":1009},"L1 \u003C-> L2 communication","/zksync-protocol/era-vm/transactions/l1_l2_communication",{"title":1011,"_path":1012,"children":1013},"Fee model","/zksync-protocol/era-vm/transactions/fee-model",[1014,1015,1018,1021],{"title":1011,"_path":1012},{"title":1016,"_path":1017},"How L2 gas price works","/zksync-protocol/era-vm/transactions/fee-model/how-l2-gas-price-works",{"title":1019,"_path":1020},"How ZKsync Chains charges for pubdata","/zksync-protocol/era-vm/transactions/fee-model/how-we-charge-for-pubdata",{"title":1022,"_path":1023},"ZKsync fee structure","/zksync-protocol/era-vm/transactions/fee-model/fee-structure",{"title":1025,"_path":1026,"children":1027},"EraVM","/zksync-protocol/era-vm/vm",[1028,1030],{"title":1029,"_path":1026},"ZKsync Virtual Machine primer",{"title":1031,"_path":1032},"VM formal specification","/zksync-protocol/era-vm/vm/formal-spec",{"title":394,"_path":1034,"children":1035},"/zksync-protocol/era-vm/contracts",[1036,1037,1039,1041,1044,1047],{"title":964,"_path":1034},{"title":909,"_path":1038},"/zksync-protocol/era-vm/contracts/bootloader",{"title":35,"_path":1040},"/zksync-protocol/era-vm/contracts/system-contracts",{"title":1042,"_path":1043},"Handling L1->L2 ops on ZKsync","/zksync-protocol/era-vm/contracts/handling-l1-l2-ops",{"title":1045,"_path":1046},"Handling pubdata","/zksync-protocol/era-vm/contracts/handling-pubdata",{"title":1048,"_path":1049},"Pubdata post 4844","/zksync-protocol/era-vm/contracts/pubdata-post-4844",{"title":1051,"_path":1052,"children":1053},"Circuits","/zksync-protocol/era-vm/circuits",[1054,1055,1058,1109,1112],{"title":130,"_path":1052},{"title":1056,"_path":1057},"ZK terminology","/zksync-protocol/era-vm/circuits/zk-terminology",{"title":1059,"_path":1060,"children":1061},"Concrete circuits","/zksync-protocol/era-vm/circuits/circuits",[1062,1063,1066,1069,1072,1075,1078,1081,1084,1087,1090,1093,1096],{"title":130,"_path":1060},{"title":1064,"_path":1065},"Circuit testing","/zksync-protocol/era-vm/circuits/circuits/circuit-testing",{"title":1067,"_path":1068},"CodeDecommitter","/zksync-protocol/era-vm/circuits/circuits/code-decommitter",{"title":1070,"_path":1071},"DemuxLogQueue","/zksync-protocol/era-vm/circuits/circuits/demux-log-queue",{"title":1073,"_path":1074},"ECRecover","/zksync-protocol/era-vm/circuits/circuits/ecrecover",{"title":1076,"_path":1077},"KeccakRoundFunction","/zksync-protocol/era-vm/circuits/circuits/keccak-round-function",{"title":1079,"_path":1080},"L1MessagesHasher","/zksync-protocol/era-vm/circuits/circuits/l1-messages-hasher",{"title":1082,"_path":1083},"LogSorter","/zksync-protocol/era-vm/circuits/circuits/log-sorter",{"title":1085,"_path":1086},"Main VM","/zksync-protocol/era-vm/circuits/circuits/main-vm",{"title":1088,"_path":1089},"RAMPermutation","/zksync-protocol/era-vm/circuits/circuits/ram-permutation",{"title":1091,"_path":1092},"Sha256RoundFunction","/zksync-protocol/era-vm/circuits/circuits/sha256-round-function",{"title":1094,"_path":1095},"StorageApplication","/zksync-protocol/era-vm/circuits/circuits/storage-application",{"title":1097,"_path":1098,"children":1099},"Sorting and deduplicating","/zksync-protocol/era-vm/circuits/circuits/sorting",[1100,1101,1104,1107],{"title":130,"_path":1098},{"title":1102,"_path":1103},"SortDecommitments","/zksync-protocol/era-vm/circuits/circuits/sorting/sort-decommitments",{"title":1105,"_path":1106},"StorageSorter","/zksync-protocol/era-vm/circuits/circuits/sorting/storage-sorter",{"title":1082,"_path":1108},"/zksync-protocol/era-vm/circuits/circuits/sorting/log-sorter",{"title":1110,"_path":1111},"Boojum gadgets","/zksync-protocol/era-vm/circuits/boojum-gadgets",{"title":1113,"_path":1114},"Boojum function - `check_if_satisfied`","/zksync-protocol/era-vm/circuits/boojum-function-check-if-satisfied",{"title":1116,"_path":1117,"children":1118},"Compilers","/zksync-protocol/era-vm/compiler",[1119],{"title":1120,"_path":1121,"children":1122},"Compiler toolchain overview","/zksync-protocol/era-vm/compiler/toolchain",[1123,1124],{"title":1120,"_path":1121},{"title":1125,"_path":1126},"LLVM framework","/zksync-protocol/era-vm/compiler/toolchain/llvm",{"title":1128,"_path":1129,"children":1130},"Differences from L1","/zksync-protocol/era-vm/differences",[1131,1134,1137,1140,1143,1146],{"title":1132,"_path":1133},"EVM instructions","/zksync-protocol/era-vm/differences/evm-instructions",{"title":1135,"_path":1136},"Nonces","/zksync-protocol/era-vm/differences/nonces",{"title":1138,"_path":1139},"Libraries","/zksync-protocol/era-vm/differences/libraries",{"title":1141,"_path":1142},"Precompiles","/zksync-protocol/era-vm/differences/pre-compiles",{"title":1144,"_path":1145},"Native AA vs EIP 4337","/zksync-protocol/era-vm/differences/native-vs-eip4337",{"title":1147,"_path":1148},"Contract deployment","/zksync-protocol/era-vm/differences/contract-deployment",{"title":1150,"_path":1151,"children":1152},"EVM Bytecode Interpreter","/zksync-protocol/era-vm/evm-interpreter",[1153,1155,1158,1161,1164,1167,1170,1173],{"title":130,"_path":1154},"/zksync-protocol/era-vm/evm-interpreter/overview",{"title":1156,"_path":1157},"EVM bytecode deployment and execution","/zksync-protocol/era-vm/evm-interpreter/deployment-execution",{"title":1159,"_path":1160},"EraVM ↔ EVM Contract Interactions","/zksync-protocol/era-vm/evm-interpreter/era-evm-interactions",{"title":1162,"_path":1163},"Differences Between the EVM Bytecode Interpreter and Ethereum","/zksync-protocol/era-vm/evm-interpreter/evm-differences",{"title":1165,"_path":1166},"Technical Architecture of the EVM Interpreter","/zksync-protocol/era-vm/evm-interpreter/technical-details",{"title":1168,"_path":1169},"EVM Gas Interpretation","/zksync-protocol/era-vm/evm-interpreter/evm-gas-interpretation",{"title":1171,"_path":1172},"Pre Deployed Contracts","/zksync-protocol/era-vm/evm-interpreter/pre-deployed-contracts",{"title":1174,"_path":1175},"EVM Bytecode Interpreter FAQ","/zksync-protocol/era-vm/evm-interpreter/faq",{"title":1177,"_path":1178,"children":1179},"Account Abstraction","/zksync-protocol/era-vm/account-abstraction",[1180,1181,1184,1186,1189,1192],{"title":9,"_path":1178},{"title":1182,"_path":1183},"Design","/zksync-protocol/era-vm/account-abstraction/design",{"title":86,"_path":1185},"/zksync-protocol/era-vm/account-abstraction/paymasters",{"title":1187,"_path":1188},"Building smart accounts","/zksync-protocol/era-vm/account-abstraction/building-smart-accounts",{"title":1190,"_path":1191},"Signature validation","/zksync-protocol/era-vm/account-abstraction/signature-validation",{"title":1193,"_path":1194},"Extending EIP-4337","/zksync-protocol/era-vm/account-abstraction/extending-4337",{"title":1196,"_path":1197},"Upgrades and migrations","/zksync-protocol/upgrades-and-migrations",{"_path":12,"_dir":1199,"_draft":1201,"_partial":1201,"_locale":1202,"title":15,"description":1203,"body":1204,"_type":1286,"_id":1287,"_source":1288,"_file":1289,"_stem":1290,"_extension":1291,"sitemap":1292},{"_path":1200,"title":11},"/zksync-network/quick-start/_dir",false,"","Get setup with ZKsync testnet or a local node",{"type":1205,"children":1206,"toc":1282},"root",[1207,1215,1220,1225,1234,1242,1250,1258,1266,1272,1277],{"type":1208,"tag":1209,"props":1210,"children":1211},"element","p",{},[1212],{"type":1213,"value":1214},"text","Welcome to the Quickstart!",{"type":1208,"tag":1209,"props":1216,"children":1217},{},[1218],{"type":1213,"value":1219},"This section is designed for developers new to ZKsync and gives you the options of deploying to either a local node or a testnet\nusing the most popular smart contract development frameworks.",{"type":1208,"tag":1209,"props":1221,"children":1222},{},[1223],{"type":1213,"value":1224},"You will learn how to:",{"type":1208,"tag":1209,"props":1226,"children":1227},{},[1228,1232],{"type":1208,"tag":1229,"props":1230,"children":1231},"check-icon",{},[],{"type":1213,"value":1233}," Get setup with either the testnet or a local node.",{"type":1208,"tag":1209,"props":1235,"children":1236},{},[1237,1240],{"type":1208,"tag":1229,"props":1238,"children":1239},{},[],{"type":1213,"value":1241}," Build an ERC-20 token contract.",{"type":1208,"tag":1209,"props":1243,"children":1244},{},[1245,1248],{"type":1208,"tag":1229,"props":1246,"children":1247},{},[],{"type":1213,"value":1249}," Deploy the smart contract.",{"type":1208,"tag":1209,"props":1251,"children":1252},{},[1253,1256],{"type":1208,"tag":1229,"props":1254,"children":1255},{},[],{"type":1213,"value":1257}," Interact with the contract using a script.",{"type":1208,"tag":1209,"props":1259,"children":1260},{},[1261,1264],{"type":1208,"tag":1229,"props":1262,"children":1263},{},[],{"type":1213,"value":1265}," Interact with the contract in a simple frontend.",{"type":1208,"tag":1267,"props":1268,"children":1270},"h2",{"id":1269},"setup",[1271],{"type":1213,"value":15},{"type":1208,"tag":1209,"props":1273,"children":1274},{},[1275],{"type":1213,"value":1276},"Choose between using testnet or a local node.",{"type":1208,"tag":1278,"props":1279,"children":1281},"content-switcher",{":items":1280},"[{\"label\":\"Testnet\",\"partial\":\"quick-start/_partials/_testnet-setup\"},{\"label\":\"Local Node\",\"partial\":\"quick-start/_partials/_local-setup\"}]",[],{"title":1202,"searchDepth":1283,"depth":1283,"links":1284},2,[1285],{"id":1269,"depth":1283,"text":15},"markdown","content:00.zksync-network:10.quick-start:1.index.md","content","00.zksync-network/10.quick-start/1.index.md","00.zksync-network/10.quick-start/1.index","md",{"loc":12},[1294,1296],{"_path":6,"title":9,"description":1295},"Welcome to the ZKsync Docs.",{"_path":18,"title":17,"description":1297},"Deploy a smart contract to a ZKsync chain in under 5 minutes",{"_path":1299,"_dir":1300,"_draft":1201,"_partial":1301,"_locale":1202,"title":1302,"description":1202,"body":1303,"_type":1286,"_id":1359,"_source":1288,"_file":1360,"_stem":1361,"_extension":1291},"/zksync-network/quick-start/_partials/_testnet-setup","_partials",true,"Quickstart - Testnet Setup",{"type":1205,"children":1304,"toc":1356},[1305,1311,1316,1347,1352],{"type":1208,"tag":1267,"props":1306,"children":1308},{"id":1307},"prerequisites",[1309],{"type":1213,"value":1310},"Prerequisites",{"type":1208,"tag":1209,"props":1312,"children":1313},{},[1314],{"type":1213,"value":1315},"Before you move onto the next section, make sure that you:",{"type":1208,"tag":1317,"props":1318,"children":1319},"ol",{},[1320,1337,1342],{"type":1208,"tag":1321,"props":1322,"children":1323},"li",{},[1324,1326,1335],{"type":1213,"value":1325},"Have a browser wallet extension installed.\nIf you're not sure what wallet to use, try ",{"type":1208,"tag":1327,"props":1328,"children":1332},"a",{"href":1329,"rel":1330},"https://metamask.io/",[1331],"nofollow",[1333],{"type":1213,"value":1334},"Metamask",{"type":1213,"value":1336},".",{"type":1208,"tag":1321,"props":1338,"children":1339},{},[1340],{"type":1213,"value":1341},"Have configured the ZKsync OS Developer Preview testnet in your wallet.",{"type":1208,"tag":1321,"props":1343,"children":1344},{},[1345],{"type":1213,"value":1346},"Have bridged at least 0.05 testnet ETH to your wallet on the ZKsync OS Developer Preview network.",{"type":1208,"tag":1348,"props":1349,"children":1351},"display-partial",{"path":1350},"/_partials/_zksyncos/_testnet-network",[],{"type":1208,"tag":1348,"props":1353,"children":1355},{"path":1354},"/_partials/_zksyncos/_testnet-funds",[],{"title":1202,"searchDepth":1283,"depth":1283,"links":1357},[1358],{"id":1307,"depth":1283,"text":1310},"content:00.zksync-network:10.quick-start:_partials:_testnet-setup.md","00.zksync-network/10.quick-start/_partials/_testnet-setup.md","00.zksync-network/10.quick-start/_partials/_testnet-setup",{"_path":1363,"_dir":1300,"_draft":1201,"_partial":1301,"_locale":1202,"title":1364,"description":1202,"body":1365,"_type":1286,"_id":1517,"_source":1288,"_file":1518,"_stem":1519,"_extension":1291},"/zksync-network/quick-start/_partials/_local-setup","Quickstart - Local Node Setup",{"type":1205,"children":1366,"toc":1514},[1367,1373,1387,1424,1443,1448,1469,1490,1495,1508],{"type":1208,"tag":1267,"props":1368,"children":1370},{"id":1369},"starting-a-local-node",[1371],{"type":1213,"value":1372},"Starting a local node",{"type":1208,"tag":1209,"props":1374,"children":1375},{},[1376,1378,1385],{"type":1213,"value":1377},"To start a local node, you will need to have ",{"type":1208,"tag":1379,"props":1380,"children":1382},"code",{"className":1381},[],[1383],{"type":1213,"value":1384},"anvil",{"type":1213,"value":1386}," installed on your machine.",{"type":1208,"tag":1209,"props":1388,"children":1389},{},[1390,1392,1397,1399,1405,1407,1414,1416,1422],{"type":1213,"value":1391},"You can install ",{"type":1208,"tag":1379,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":1213,"value":1384},{"type":1213,"value":1398}," via ",{"type":1208,"tag":1379,"props":1400,"children":1402},{"className":1401},[],[1403],{"type":1213,"value":1404},"foundryup",{"type":1213,"value":1406}," by following the ",{"type":1208,"tag":1327,"props":1408,"children":1411},{"href":1409,"rel":1410},"https://www.getfoundry.sh/introduction/installation",[1331],[1412],{"type":1213,"value":1413},"installation instructions",{"type":1213,"value":1415},"\nin the ",{"type":1208,"tag":1379,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":1213,"value":1421},"foundry",{"type":1213,"value":1423}," docs.",{"type":1208,"tag":1425,"props":1426,"children":1428},"callout",{"icon":1427},"i-heroicons-light-bulb",[1429],{"type":1208,"tag":1209,"props":1430,"children":1431},{},[1432,1434,1441],{"type":1213,"value":1433},"If you've used ZKsync in the past, you may remember having to use special tooling to run a local node.\nSince ",{"type":1208,"tag":1327,"props":1435,"children":1438},{"href":1436,"rel":1437},"https://www.zksync.io/blog/introducing-the-zk-stacks-atlas-upgrade",[1331],[1439],{"type":1213,"value":1440},"the Atlas upgrade",{"type":1213,"value":1442},", however,\nyou can now use any standard EVM local node for testing.\nThe only time you may need a ZKsync-specific node is to test bridging or crosschain transactions.\nFor this tutorial, we won't need one.",{"type":1208,"tag":1209,"props":1444,"children":1445},{},[1446],{"type":1213,"value":1447},"Once installed, open a new terminal and run the command below to start a local node:",{"type":1208,"tag":1449,"props":1450,"children":1454},"pre",{"className":1451,"code":1452,"language":1453,"meta":1202,"style":1202},"language-bash shiki shiki-themes github-light github-light github-dark","anvil\n","bash",[1455],{"type":1208,"tag":1379,"props":1456,"children":1457},{"__ignoreMap":1202},[1458],{"type":1208,"tag":1459,"props":1460,"children":1463},"span",{"class":1461,"line":1462},"line",1,[1464],{"type":1208,"tag":1459,"props":1465,"children":1467},{"style":1466},"--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[1468],{"type":1213,"value":1452},{"type":1208,"tag":1209,"props":1470,"children":1471},{},[1472,1474,1480,1482,1488],{"type":1213,"value":1473},"You should see some information logged about the local network running on your machine,\nincluding the port where the node is running (",{"type":1208,"tag":1379,"props":1475,"children":1477},{"className":1476},[],[1478],{"type":1213,"value":1479},"8545",{"type":1213,"value":1481},"),\nthe chain ID (",{"type":1208,"tag":1379,"props":1483,"children":1485},{"className":1484},[],[1486],{"type":1213,"value":1487},"31337",{"type":1213,"value":1489},"),\nand 10 different test wallet addresses and their private keys.\nThese wallets are all pre-funded with ETH so you don't need to worry about adding funds.",{"type":1208,"tag":1209,"props":1491,"children":1492},{},[1493],{"type":1213,"value":1494},"Keep the node running until you are done with this tutorial.",{"type":1208,"tag":1209,"props":1496,"children":1497},{},[1498,1500,1506],{"type":1213,"value":1499},"Note that this is an ",{"type":1208,"tag":1501,"props":1502,"children":1503},"em",{},[1504],{"type":1213,"value":1505},"in-memory",{"type":1213,"value":1507}," node,\nmeaning that if you stop it at any time,\nany contracts you deployed or transactions you sent will be lost.",{"type":1208,"tag":1509,"props":1510,"children":1511},"style",{},[1512],{"type":1213,"value":1513},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1202,"searchDepth":1283,"depth":1283,"links":1515},[1516],{"id":1369,"depth":1283,"text":1372},"content:00.zksync-network:10.quick-start:_partials:_local-setup.md","00.zksync-network/10.quick-start/_partials/_local-setup.md","00.zksync-network/10.quick-start/_partials/_local-setup",{"_path":1350,"_dir":1521,"_draft":1201,"_partial":1301,"_locale":1202,"title":1522,"description":1202,"body":1523,"_type":1286,"_id":1594,"_source":1288,"_file":1595,"_stem":1596,"_extension":1291},"_zksyncos","Add testnet to wallet",{"type":1205,"children":1524,"toc":1587},[1525,1531,1536,1541,1546,1552,1557,1575,1582],{"type":1208,"tag":1267,"props":1526,"children":1528},{"id":1527},"add-zksync-os-developer-preview-to-your-metamask-wallet",[1529],{"type":1213,"value":1530},"Add ZKsync OS Developer Preview to your MetaMask wallet",{"type":1208,"tag":1209,"props":1532,"children":1533},{},[1534],{"type":1213,"value":1535},"You can add ZKsync OS Developer Preview to your MetaMask wallet using the button below:",{"type":1208,"tag":1537,"props":1538,"children":1540},"network-adder",{"network":1539},"ostestnet",[],{"type":1208,"tag":1209,"props":1542,"children":1543},{},[1544],{"type":1213,"value":1545},"If you are using a different in-browser wallet, the button above may also work for them.",{"type":1208,"tag":1267,"props":1547,"children":1549},{"id":1548},"manually-add-zksync-os-developer-preview",[1550],{"type":1213,"value":1551},"Manually add ZKsync OS Developer Preview",{"type":1208,"tag":1209,"props":1553,"children":1554},{},[1555],{"type":1213,"value":1556},"To manually add ZKsync OS Developer Preview as a custom network in your wallet, follow these steps:",{"type":1208,"tag":1317,"props":1558,"children":1559},{},[1560,1565,1570],{"type":1208,"tag":1321,"props":1561,"children":1562},{},[1563],{"type":1213,"value":1564},"Find the “Add Network” option in your wallet (in MetaMask, you can find this in the networks dropdown).",{"type":1208,"tag":1321,"props":1566,"children":1567},{},[1568],{"type":1213,"value":1569},"Click on “Add Network\" and \"Add network manually\".",{"type":1208,"tag":1321,"props":1571,"children":1572},{},[1573],{"type":1213,"value":1574},"Fill in the following details for the ZKsync OS Developer Preview testnet:",{"type":1208,"tag":1576,"props":1577,"children":1579},"h3",{"id":1578},"network-details",[1580],{"type":1213,"value":1581},"Network details",{"type":1208,"tag":1583,"props":1584,"children":1586},"zksync-era-network-details",{":showzksyncos":1585},"true",[],{"title":1202,"searchDepth":1283,"depth":1283,"links":1588},[1589,1590],{"id":1527,"depth":1283,"text":1530},{"id":1548,"depth":1283,"text":1551,"children":1591},[1592],{"id":1578,"depth":1593,"text":1581},3,"content:_partials:_zksyncos:_testnet-network.md","_partials/_zksyncos/_testnet-network.md","_partials/_zksyncos/_testnet-network",{"_path":1354,"_dir":1521,"_draft":1201,"_partial":1301,"_locale":1202,"title":1598,"description":1202,"body":1599,"_type":1286,"_id":1965,"_source":1288,"_file":1966,"_stem":1967,"_extension":1291},"Get testnet funds",{"type":1205,"children":1600,"toc":1960},[1601,1607,1619,1625,1639,1670,1682,1815,1913,1923,1956],{"type":1208,"tag":1267,"props":1602,"children":1604},{"id":1603},"get-funds-for-your-wallet",[1605],{"type":1213,"value":1606},"Get funds for your wallet",{"type":1208,"tag":1209,"props":1608,"children":1609},{},[1610,1612,1618],{"type":1213,"value":1611},"Once you have your wallet connected to the ZKsync OS Developer Preview environment,\nyou can bridge testnet ETH from Sepolia Testnet.\nYou can get testnet funds on Sepolia from one of many ",{"type":1208,"tag":1327,"props":1613,"children":1615},{"href":1614},"/zksync-network/zksync-era/ecosystem/network-faucets#sepolia-faucets",[1616],{"type":1213,"value":1617},"testnet faucets",{"type":1213,"value":1336},{"type":1208,"tag":1576,"props":1620,"children":1622},{"id":1621},"bridging-testnet-eth",[1623],{"type":1213,"value":1624},"Bridging testnet ETH",{"type":1208,"tag":1209,"props":1626,"children":1627},{},[1628,1630,1637],{"type":1213,"value":1629},"The easiest way to bridge funds to the testnet is by using the ",{"type":1208,"tag":1327,"props":1631,"children":1634},{"href":1632,"rel":1633},"https://zksync-os.portal.zksync.io/",[1331],[1635],{"type":1213,"value":1636},"ZKsync OS Portal",{"type":1213,"value":1638}," to bridge testnet ETH over.",{"type":1208,"tag":1209,"props":1640,"children":1641},{},[1642,1644,1655,1657,1668],{"type":1213,"value":1643},"You can also bridge funds in your terminal with ",{"type":1208,"tag":1327,"props":1645,"children":1648},{"href":1646,"rel":1647},"https://www.getfoundry.sh/cast",[1331],[1649],{"type":1208,"tag":1379,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":1213,"value":1654},"cast",{"type":1213,"value":1656},"\nor in a script using ",{"type":1208,"tag":1327,"props":1658,"children":1661},{"href":1659,"rel":1660},"https://matter-labs.github.io/zksync-js/latest/overview/index.html",[1331],[1662],{"type":1208,"tag":1379,"props":1663,"children":1665},{"className":1664},[],[1666],{"type":1213,"value":1667},"zksync-js",{"type":1213,"value":1669}," as shown in the examples below.",{"type":1208,"tag":1671,"props":1672,"children":1674},"h4",{"id":1673},"bridging-with-cast",[1675,1677],{"type":1213,"value":1676},"Bridging with ",{"type":1208,"tag":1379,"props":1678,"children":1680},{"className":1679},[],[1681],{"type":1213,"value":1654},{"type":1208,"tag":1449,"props":1683,"children":1685},{"className":1451,"code":1684,"language":1453,"meta":1202,"style":1202},"export BRIDGEHUB_ADDRESS=0xc4fd2580c3487bba18d63f50301020132342fdbd\nexport CHAIN_ID=8022833\nexport SEPOLIA_RPC=\u003CYOUR_SEPOLIA_RPC_ENDPOINT>\nexport ADDRESS=\u003CYOUR_WALLET_ADDRESS>\nexport VALUE_TO_BRIDGE=\u003CAMOUNT_TO_BRIDGE_IN_WEI>\n",[1686],{"type":1208,"tag":1379,"props":1687,"children":1688},{"__ignoreMap":1202},[1689,1715,1736,1763,1789],{"type":1208,"tag":1459,"props":1690,"children":1691},{"class":1461,"line":1462},[1692,1698,1704,1709],{"type":1208,"tag":1459,"props":1693,"children":1695},{"style":1694},"--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583",[1696],{"type":1213,"value":1697},"export",{"type":1208,"tag":1459,"props":1699,"children":1701},{"style":1700},"--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[1702],{"type":1213,"value":1703}," BRIDGEHUB_ADDRESS",{"type":1208,"tag":1459,"props":1705,"children":1706},{"style":1694},[1707],{"type":1213,"value":1708},"=",{"type":1208,"tag":1459,"props":1710,"children":1712},{"style":1711},"--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[1713],{"type":1213,"value":1714},"0xc4fd2580c3487bba18d63f50301020132342fdbd\n",{"type":1208,"tag":1459,"props":1716,"children":1717},{"class":1461,"line":1283},[1718,1722,1727,1731],{"type":1208,"tag":1459,"props":1719,"children":1720},{"style":1694},[1721],{"type":1213,"value":1697},{"type":1208,"tag":1459,"props":1723,"children":1724},{"style":1700},[1725],{"type":1213,"value":1726}," CHAIN_ID",{"type":1208,"tag":1459,"props":1728,"children":1729},{"style":1694},[1730],{"type":1213,"value":1708},{"type":1208,"tag":1459,"props":1732,"children":1733},{"style":1711},[1734],{"type":1213,"value":1735},"8022833\n",{"type":1208,"tag":1459,"props":1737,"children":1738},{"class":1461,"line":1593},[1739,1743,1748,1753,1758],{"type":1208,"tag":1459,"props":1740,"children":1741},{"style":1694},[1742],{"type":1213,"value":1697},{"type":1208,"tag":1459,"props":1744,"children":1745},{"style":1700},[1746],{"type":1213,"value":1747}," SEPOLIA_RPC",{"type":1208,"tag":1459,"props":1749,"children":1750},{"style":1694},[1751],{"type":1213,"value":1752},"=\u003C",{"type":1208,"tag":1459,"props":1754,"children":1755},{"style":1700},[1756],{"type":1213,"value":1757},"YOUR_SEPOLIA_RPC_ENDPOINT",{"type":1208,"tag":1459,"props":1759,"children":1760},{"style":1694},[1761],{"type":1213,"value":1762},">\n",{"type":1208,"tag":1459,"props":1764,"children":1766},{"class":1461,"line":1765},4,[1767,1771,1776,1780,1785],{"type":1208,"tag":1459,"props":1768,"children":1769},{"style":1694},[1770],{"type":1213,"value":1697},{"type":1208,"tag":1459,"props":1772,"children":1773},{"style":1700},[1774],{"type":1213,"value":1775}," ADDRESS",{"type":1208,"tag":1459,"props":1777,"children":1778},{"style":1694},[1779],{"type":1213,"value":1752},{"type":1208,"tag":1459,"props":1781,"children":1782},{"style":1700},[1783],{"type":1213,"value":1784},"YOUR_WALLET_ADDRESS",{"type":1208,"tag":1459,"props":1786,"children":1787},{"style":1694},[1788],{"type":1213,"value":1762},{"type":1208,"tag":1459,"props":1790,"children":1792},{"class":1461,"line":1791},5,[1793,1797,1802,1806,1811],{"type":1208,"tag":1459,"props":1794,"children":1795},{"style":1694},[1796],{"type":1213,"value":1697},{"type":1208,"tag":1459,"props":1798,"children":1799},{"style":1700},[1800],{"type":1213,"value":1801}," VALUE_TO_BRIDGE",{"type":1208,"tag":1459,"props":1803,"children":1804},{"style":1694},[1805],{"type":1213,"value":1752},{"type":1208,"tag":1459,"props":1807,"children":1808},{"style":1700},[1809],{"type":1213,"value":1810},"AMOUNT_TO_BRIDGE_IN_WEI",{"type":1208,"tag":1459,"props":1812,"children":1813},{"style":1694},[1814],{"type":1213,"value":1762},{"type":1208,"tag":1449,"props":1816,"children":1818},{"className":1451,"code":1817,"language":1453,"meta":1202,"style":1202},"cast send -r $SEPOLIA_RPC $BRIDGEHUB_ADDRESS \"requestL2TransactionDirect((uint256,uint256,address,uint256,bytes,uint256,uint256,bytes[],address))\" \"($CHAIN_ID,$VALUE_TO_BRIDGE,$ADDRESS,50,0x,300000,800,[],$ADDRESS)\" --value $VALUE_TO_BRIDGE --private-key=$PRIVATE_KEY\n",[1819],{"type":1208,"tag":1379,"props":1820,"children":1821},{"__ignoreMap":1202},[1822],{"type":1208,"tag":1459,"props":1823,"children":1824},{"class":1461,"line":1462},[1825,1829,1835,1840,1845,1850,1855,1860,1865,1870,1874,1879,1884,1888,1893,1898,1903,1908],{"type":1208,"tag":1459,"props":1826,"children":1827},{"style":1466},[1828],{"type":1213,"value":1654},{"type":1208,"tag":1459,"props":1830,"children":1832},{"style":1831},"--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[1833],{"type":1213,"value":1834}," send",{"type":1208,"tag":1459,"props":1836,"children":1837},{"style":1711},[1838],{"type":1213,"value":1839}," -r",{"type":1208,"tag":1459,"props":1841,"children":1842},{"style":1700},[1843],{"type":1213,"value":1844}," $SEPOLIA_RPC $BRIDGEHUB_ADDRESS ",{"type":1208,"tag":1459,"props":1846,"children":1847},{"style":1831},[1848],{"type":1213,"value":1849},"\"requestL2TransactionDirect((uint256,uint256,address,uint256,bytes,uint256,uint256,bytes[],address))\"",{"type":1208,"tag":1459,"props":1851,"children":1852},{"style":1831},[1853],{"type":1213,"value":1854}," \"(",{"type":1208,"tag":1459,"props":1856,"children":1857},{"style":1700},[1858],{"type":1213,"value":1859},"$CHAIN_ID",{"type":1208,"tag":1459,"props":1861,"children":1862},{"style":1831},[1863],{"type":1213,"value":1864},",",{"type":1208,"tag":1459,"props":1866,"children":1867},{"style":1700},[1868],{"type":1213,"value":1869},"$VALUE_TO_BRIDGE",{"type":1208,"tag":1459,"props":1871,"children":1872},{"style":1831},[1873],{"type":1213,"value":1864},{"type":1208,"tag":1459,"props":1875,"children":1876},{"style":1700},[1877],{"type":1213,"value":1878},"$ADDRESS",{"type":1208,"tag":1459,"props":1880,"children":1881},{"style":1831},[1882],{"type":1213,"value":1883},",50,0x,300000,800,[],",{"type":1208,"tag":1459,"props":1885,"children":1886},{"style":1700},[1887],{"type":1213,"value":1878},{"type":1208,"tag":1459,"props":1889,"children":1890},{"style":1831},[1891],{"type":1213,"value":1892},")\"",{"type":1208,"tag":1459,"props":1894,"children":1895},{"style":1711},[1896],{"type":1213,"value":1897}," --value",{"type":1208,"tag":1459,"props":1899,"children":1900},{"style":1700},[1901],{"type":1213,"value":1902}," $VALUE_TO_BRIDGE ",{"type":1208,"tag":1459,"props":1904,"children":1905},{"style":1711},[1906],{"type":1213,"value":1907},"--private-key=",{"type":1208,"tag":1459,"props":1909,"children":1910},{"style":1700},[1911],{"type":1213,"value":1912},"$PRIVATE_KEY\n",{"type":1208,"tag":1671,"props":1914,"children":1916},{"id":1915},"bridging-with-zksync-js",[1917,1918],{"type":1213,"value":1676},{"type":1208,"tag":1379,"props":1919,"children":1921},{"className":1920},[],[1922],{"type":1213,"value":1667},{"type":1208,"tag":1209,"props":1924,"children":1925},{},[1926,1928,1934,1936,1942,1944,1955],{"type":1213,"value":1927},"You can find examples for bridging with ",{"type":1208,"tag":1379,"props":1929,"children":1931},{"className":1930},[],[1932],{"type":1213,"value":1933},"ethers",{"type":1213,"value":1935}," or ",{"type":1208,"tag":1379,"props":1937,"children":1939},{"className":1938},[],[1940],{"type":1213,"value":1941},"viem",{"type":1213,"value":1943}," in the ",{"type":1208,"tag":1327,"props":1945,"children":1947},{"href":1659,"rel":1946},[1331],[1948,1953],{"type":1208,"tag":1379,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":1213,"value":1667},{"type":1213,"value":1954}," docs",{"type":1213,"value":1336},{"type":1208,"tag":1509,"props":1957,"children":1958},{},[1959],{"type":1213,"value":1513},{"title":1202,"searchDepth":1283,"depth":1283,"links":1961},[1962],{"id":1603,"depth":1283,"text":1606,"children":1963},[1964],{"id":1621,"depth":1593,"text":1624},"content:_partials:_zksyncos:_testnet-funds.md","_partials/_zksyncos/_testnet-funds.md","_partials/_zksyncos/_testnet-funds",1775502525730]