Como começar a desenvolver no zkSync (2025)
Escrito por Petar Todorov
A Matter Labs agora tem uma representante na corrida contra a Scroll e a Polygon para operar o primeiro EVM de conhecimento zero do mundo – zkSync Era.
Lançada em março de 2023, zkSync Era é um ZK Rollup compatível com EVM que utiliza provas de conhecimento zero para escalar a velocidade e o poder 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 explicará 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?
zkSync Era é uma nova solução Layer-2 da Matter Labs que combina provas ZK e a tecnologia da Ethereum Virtual Machine para escalar o throughput da mainnet da Ethereum. Ao unir as duas tecnologias, a zkSync Era permite transações mais rápidas e seguras na Ethereum.
Além da equivalência total com EVM, a Era introduz o conceito de account abstraction na stack da Ethereum, proposto inicialmente na EIP-4337.
Com account abstraction, as carteiras se tornam smart contracts que podem ter recursos como algoritmo de assinatura customizado, transações patrocinadas e autenticação de dois fatores.
Como começar a desenvolver na zkSync era
Desenvolver na zkSync Era envolve, em grande parte, as mesmas ferramentas que um desenvolvedor web3 usaria para fazer o deploy de um contract na Ethereum. Este tutorial vai mostrar 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
- Test ether
- IDE Hardhat (Integrated Development Environment) com os plugins necessários
- Um gerenciador de pacotes (NPM ou Yarn)
- VScode
- Compreensão básica de Typescript
1. Configurar uma IDE para 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 preenchendo previamente 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 desenvolvedor.
- $ typescript ts-node: instalação do Typescript e do motor 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 contract.
- $ 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 previamente os próximos campos com seus valores padrão.
É assim que a estrutura de pastas do projeto deve ficar:
Na pasta contracts, delete o contract Lock.sol, que é gerado automaticamente por padrão, já que não será necessário.
O último passo da configuração da IDE é acessar 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 contract será implantado
- Versão do compilador Solidity na qual o contract será escrito.
Delete 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 contract que vai 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 contract precisa ser compilado antes do deploy. No terminal, digite:
npx hardhat compile
3. Configurar uma carteira para zkSync era
Não é necessário criar uma nova carteira, já que a zkSync Era suporta carteiras Ethereum existentes.
Portanto, qualquer carteira já existente, como a Metamask, pode ser usada.
Nota: Não é recomendado usar uma carteira Ethereum pessoal que armazene investimentos ou economias, pois o procedimento de deploy requer a exportação da chave privada.
4. Obter Goerli ETH de teste e fazer bridge para zkSync era
Pode ser necessário ter test ether na testnet da zkSync Era para fazer o deploy do contract.
Para obter test ether, faça bridge de Goerli ETH da carteira do deployer para sua instância na zkSync Era.
-
Para fazer isso, acesse o faucet Goerli da Alchemy para obter ether na testnet Goerli.
-
Crie uma conta gratuita na Alchemy antes de continuar.
-
Em seguida, abra a Metamask e clique no endereço da carteira para copiá-lo.
-
No site do faucet Goerli, cole o endereço da carteira e clique em Send Me ETH.
Em seguida, acesse a bridge da zkSync Era.
Clique em "Connect via a browser wallet Metamask".
Selecione a carteira que será usada para o deploy do contract.
Clique em MAX (ou insira uma quantidade de sua escolha, mas certifique-se de que seja pelo menos 0.1 gETH) e clique em Deposit.
Nota: Verifique se o campo no canto inferior direito mostra: "zkSync Era Goerli".
Enquanto aguarda a conclusão da bridge, 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:
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 para o 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 sua chave privada.
Clique nos três pontos verticais e depois em Account details, depois 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 apagadas.
Por fim, vá até o terminal do VScode e digite: npx hardhat deploy-zksync
6. Verificar o smart contract via block explorer
Use o block explorer da testnet da zkSync Era para verificar o contract implantado.
Acesse o block explorer. Na barra de busca, cole o endereço do contract implantado.
Quando o contract for encontrado, clique na aba Contract e depois em Verify Smart Contract.
Em seguida, preencha os detalhes necessários:
Contract Name deve ser "Registry".
Zksolc version - v1.3.
Solc version - 0.8.17.
Tanto Zksolc Version quanto 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 contract implantado na ZkSync Era
No block explorer, encontre o contract novamente pelo endereço e clique na aba Contract.
Desta vez, o block explorer deve mostrar dois novos campos:
- Read para as funções de leitura (getters)
- Write para as funções de escrita (setters)
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 vai se expandir, e dois novos campos vão aparecer - um para definir o nome da pessoa e outro para a idade dela.
Depois de preencher esses campos, clique em Write e confirme a transação.
Após a confirmação da transação, clique em personInfo e informe 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.