## [[ZKP/ZKP Testnet/Developer Resources/Smart Contract Example - Hello World on ZKP|Deploy EVM-compatible smart contracts ]]on our substrate-based blockchain:
**Prerequisites:**
- MetaMask or compatible wallet connected to [[ZKP/ZKP Testnet/Getting Started/Network|ZKP testnet]]
- [[ZKP/ZKP Testnet/Getting Started/Claim Test Coins|Testnet coins]] from our faucet
- Solidity knowledge for smart contract development
## Deployment Methods:
**Option 1: Using Remix IDE**
1. Open [Remix IDE](https://remix.ethereum.org/)
2. Connect to "Injected Web3" provider
3. Ensure your wallet is connected to ZKP testnet
4. Compile your Solidity contract
5. Deploy using the "Deploy & Run Transactions" tab
6. Gas fees will be paid in (testnet) ZKP coins
**Option 2: Using Hardhat**
javascript
// hardhat.config.js
module.exports = {
networks: {
zkpTestnet: {
url: "https://rpc.testnet.zkp.com",
chainId: [500000],
accounts: ["YOUR_PRIVATE_KEY"]
}
}
};
**Option 3: Using Truffle**
javascript
// truffle-config.js
module.exports = {
networks: {
zkpTestnet: {
host: "[https://rpc.testnet.zkp.com](http://rpc.testnet.zkp.com)",
port: 443,
network_id: [500000],
gas: 5000000,
gasPrice: 20000000000
}
}
};
**Important Notes:**
- Our substrate blockchain includes an EVM pallet for Ethereum compatibility
- Gas calculations may differ slightly from standard Ethereum
- [[ZKP/ZKP Base Layer/ZKP Blockchain/Technical Build Application Layer/Privacy-Preserving Computations with ZK Wrappers/Architecture and Workflow of ZK Wrappers|ZK Wrapper]] integration will soon be available for privacy-preserving contracts
- Test your contracts thoroughly before mainnet deployment
See also: [[ZKP/ZKP Testnet/Bug Bounty Programme|Bug Bounty Programme]]