Como começar a desenvolver na zkSync (2025)
Escrito por Petar Todorov
A Matter Labs agora tem um representante na corrida contra a Scroll e a Polygon para rodar a primeira EVM de conhecimento zero do mundo – a zkSync Era.
Lançada em março de 2023, a zkSync Era é um ZK Rollup compatível com EVM que utiliza provas de conhecimento zero para escalar a velocidade e a capacidade de processamento da rede Ethereum.
Desenvolver na zkSync traz benefícios como taxas de gas baixas para ETH e tokens ERC20, além de atomic swaps, ordens limitadas e suporte nativo a NFTs na Layer-2.
Este artigo explica o que é a zkSync Era e como fazer o deploy de um smart contract na testnet pública da zkSync em cinco passos.
O que é a zkSync Era?
A zkSync Era é uma nova solução Layer-2 da Matter Labs que combina ZK-Proofs e a tecnologia da Ethereum Virtual Machine para escalar o throughput da mainnet da Ethereum. Ao combinar as duas tecnologias, a zkSync Era permite transações na Ethereum mais rápidas e seguras.
Além da equivalência total com a EVM, a Era introduz o conceito de account abstraction ao stack da Ethereum, proposto inicialmente na EIP-4337.
Com account abstraction, as carteiras se tornam smart contracts que podem ter recursos como um algoritmo de assinatura personalizado, transações patrocinadas e autenticação de dois fatores.
Como começar a desenvolver na zkSync Era
O desenvolvimento na zkSync Era envolve, em grande parte, as mesmas ferramentas que um desenvolvedor web3 usaria para fazer o deploy de um contrato na Ethereum. Este tutorial aborda como fazer o deploy de um smart contract na testnet pública da zkSync.
Pré-requisitos
Para o tutorial, é necessário:
- Chave privada de uma carteira Ethereum
- Ether de teste
- Ambiente de desenvolvimento integrado Hardhat (IDE) com os plugins necessários
- Um gerenciador de pacotes (NPM ou Yarn)
- VScode
- Conhecimento básico de Typescript
1. Configurar uma IDE para a zkSync Era
Primeiro, crie uma pasta para o projeto.
Abra o VScode (ou o terminal da sua máquina) e digite:
Em seguida, inicialize o npm com o comando: npm init -y
A flag -y economiza tempo ao preencher automaticamente todos os campos do arquivo package.json com seus valores padrão.
Agora que o npm e a pasta do projeto estão configurados, instale as dependências necessárias.
No terminal do VScode, digite:
Aqui está o detalhamento do comando:
- $ npm i -D: Um alias para o comando install. A flag -D salva todos os pacotes como dependências de desenvolvimento.
- $ typescript ts-node: instalação do Typescript e do engine de execução do Typescript para Node.js.
- $ ethers@^5.7.2 zksync-web3@^0.13.1: Duas bibliotecas que ajudam a fazer o deploy e interagir com o contrato.
- $ hardhat: A IDE em uso.
- $ @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy: Dois plugins do Hardhat que ajudam a compilar e fazer o deploy do smart contract.
Em seguida vem a inicialização do projeto Hardhat.
No terminal, digite:
npx hardhat init
Selecione 'Create a TypeScript Project' e pressione enter para preencher automaticamente os próximos campos com seus valores padrão.
É assim que a estrutura de pastas do projeto deve ficar:
Na pasta contracts, exclua o contrato Lock.sol, que é gerado automaticamente por padrão, já que não será necessário.
O último passo da configuração da IDE é ir até o arquivo hardhat.config.ts.
O arquivo hardhat.config.ts é o "centro de comando" que define estes parâmetros para o deploy:
- Versão do compilador zkSync
- Chain na qual o contrato será implantado
- Versão do compilador Solidity em que o contrato será escrito.
Exclua o conteúdo do arquivo hardhat.config.ts e substitua pelo seguinte:
A configuração da IDE está pronta e o próximo passo é criar o smart contract.
2. Criar o smart contract
O contrato que registrará o nome e a idade de uma pessoa.
Vá até a pasta contracts no diretório do projeto e crie um novo arquivo chamado Registry.sol
Em seguida, copie e cole o seguinte código do smart contract no arquivo:
O contrato precisa ser compilado antes do deploy. No terminal, digite:
npx hardhat compile
3. Configurar uma carteira para a zkSync Era
Não é necessário criar uma nova carteira, já que a zkSync Era é compatível com carteiras Ethereum já existentes.
Portanto, qualquer carteira existente, como a Metamask, pode ser usada.
Nota: Não é recomendado usar uma carteira Ethereum pessoal que armazena investimentos ou economias, já que o processo de deploy exige exportar a chave privada.
4. Obter ETH de teste na Sepolia e fazer a bridge para a zkSync Era
Pode ser necessário ter ether de teste na testnet da zkSync Era para fazer o deploy do contrato.
Para obter ether de teste, faça a bridge de ETH da Sepolia da carteira do deployer para a instância dela na zkSync Era.
-
Para isso, acesse o faucet da Sepolia da Alchemy para obter ether na Sepolia.
-
Crie uma conta gratuita na Alchemy antes de prosseguir.
-
Depois, abra a Metamask e clique no endereço da carteira para copiá-lo.
-
Na página do faucet, cole o endereço da carteira e solicite ETH da Sepolia.
Em seguida, vá até a bridge atual da Sepolia na zkSync Era.
Clique em "Connect via a browser wallet Metamask".
Selecione a carteira que será usada para o deploy do contrato.
Clique em MAX (ou digite um valor de sua escolha, mas certifique-se de que seja pelo menos 0.1 ETH) e clique em Deposit.
Nota: Verifique se a rede de destino é a testnet Sepolia atual da zkSync Era.
Enquanto espera a bridge ser concluída, finalize o deploy criando o script de deploy.
5. Criar um script de deploy e exportar a chave privada
Em seguida, crie um script de deploy e exporte a chave privada da Metamask, copie a chave privada e faça o deploy do smart contract.
Veja como fazer isso:
Criar um script de deploy
De volta ao VSCode, renomeie a pasta scripts para deploy e, dentro dela, crie um arquivo chamado deploy.ts.
Depois disso, copie o seguinte código no arquivo:
Os comentários, marcados com "//", explicam a lógica do código.
Exportar a chave privada da MetaMask
Na Metamask, abra a carteira que foi usada durante a bridge e exporte a chave privada dela.
Clique nos três pontos verticais e depois em Account details, em seguida Export private key.
Digite a senha e copie a string revelada.
Colar a chave privada e fazer o deploy do smart contract
De volta ao arquivo deploy.ts, encontre a seguinte linha:
** const wallet = new Wallet("<WALLET-PRIVATE-KEY>");**
Cole a chave privada no lugar de <WALLET-PRIVATE-KEY>.
Certifique-se de que as aspas duplas não sejam removidas.
Por fim, vá até o terminal do VScode e digite: npx hardhat deploy-zksync
6. Verificar o smart contract pelo block explorer
Use o block explorer da testnet da zkSync Era para verificar o contrato implantado.
Vá até o block explorer. Na barra de busca, cole o endereço do contrato implantado.
Assim que o contrato for encontrado, clique na aba Contract e depois em Verify Smart Contract.
Em seguida, preencha os dados necessários:
Contract Name deve ser "Registry".
Zksolc version - v1.3.
Solc version - 0.8.17.
Tanto o Zksolc Version quanto o Solc Version podem ser obtidos no arquivo hardhat.config.ts.
No campo Enter the Solidity Contract Code, cole o conteúdo do arquivo Registry.sol.
Clique em Verify Smart Contract para finalizar o processo.
7. Interagir com o contrato implantado na ZkSync Era
No block explorer, encontre o contrato pelo endereço novamente e clique na aba Contract.
Desta vez, o block explorer deve mostrar dois novos campos:
- Read para as funções getter
- Write para as funções setter
Como a visibilidade do mapping personInfo é definida como public, um método getter para ele é gerado automaticamente.
Certifique-se de que a carteira do deployer esteja conectada ao explorer. Clique em addPerson.
A seção se expandirá e dois novos campos aparecerão - um para definir o nome da pessoa e outro para a idade dela.
Após preencher esses campos, clique em Write e confirme a transação.
Após a confirmação da transação, clique em personInfo e digite o nome da pessoa que acabou de ser adicionada.
A GUI deve retornar a idade da pessoa adicionada.
Visões gerais relacionadas
Técnico17 de junho de 2026
Um guia do desenvolvedor para o stack web3
O stack web3 em 2026, camada por camada: redes, infraestrutura, smart contracts, wallets, frontends, armazenamento, aplicações e a nova camada agentic.
Técnico19 de maio de 2026
Webhooks vs. WebSockets vs. gRPC
Três protocolos dominam a entrega de dados em tempo real. Veja como webhooks, WebSockets e gRPC se diferenciam, quando cada um falha e como escolher entre eles.
Técnico20 de outubro de 2025
O guia do desenvolvedor para custos de desenvolvimento de apps blockchain em 2025
Quer saber que tipo de orçamento você vai precisar para construir um app onchain?

Construa magia blockchain
A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.