How It Works
Learn how the OneClick Deployer helps you deploy contracts without coding
Introduction
OneClick Deployer allows you to deploy three types of Ethereum smart contracts without writing code:
- Simple Contract - A basic smart contract that handles deployment fees
- Token Contract (ERC20) - A simple ERC20 token with customizable supply
- NFT Contract (ERC721) - A basic NFT contract with minting capabilities
Key Features
- Deploy to 85+ EVM networks including Ethereum, Monad, Somnia, other testnets
- No coding required - just fill in basic information
- Low gas fees optimization
- Track deployments across all chains
- Instantly verify and share your contract
Deployment Process
Connect Your Wallet
Click the "Connect Wallet" button to connect your Web3 wallet (MetaMask, WalletConnect, etc.)
Select Network
Choose the blockchain network you want to deploy to from the dropdown menu
Choose Contract Type
Select the type of contract you want to deploy (Simple, Token, or NFT)
Configure Parameters
Fill in the required parameters (name, symbol, supply, etc.) or use the default values
Deploy
Click the "Deploy" button and confirm the transaction in your wallet
View Results
After deployment, you'll receive the contract address and transaction hash
Smart Contract Code
View the actual code that will be deployed
Simple Contract
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleContract {
constructor(address payable _feeReceiver, bool _feeRequired, uint256 _feeAmount) payable {
if (_feeRequired) {
require(msg.value >= _feeAmount, "Fee amount too low");
require(_feeReceiver != address(0), "Invalid fee receiver address");
(bool success, ) = _feeReceiver.call{value: msg.value}("");
require(success, "Fee transfer failed");
}
}
}
Token Contract (ERC20)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleToken {
string public name;
string public symbol;
uint8 public decimals = 18;
uint256 public totalSupply;
mapping(address => uint256) public balances;
constructor(
string memory _name,
string memory _symbol,
uint256 _initialSupply,
address payable _feeReceiver,
bool _feeRequired,
uint256 _feeAmount
) payable {
name = _name;
symbol = _symbol;
totalSupply = _initialSupply * 10**decimals;
balances[msg.sender] = totalSupply;
if (_feeRequired) {
require(msg.value >= _feeAmount, "Fee amount too low");
require(_feeReceiver != address(0), "Invalid fee receiver address");
(bool success, ) = _feeReceiver.call{value: msg.value}("");
require(success, "Fee transfer failed");
}
}
}
NFT Contract (ERC721)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleNFT {
string public name;
string public symbol;
uint256 public maxSupply;
uint256 public totalSupply;
mapping(uint256 => address) public ownerOf;
constructor(
string memory _name,
string memory _symbol,
uint256 _maxSupply,
address payable _feeReceiver,
bool _feeRequired,
uint256 _feeAmount
) payable {
name = _name;
symbol = _symbol;
maxSupply = _maxSupply;
totalSupply = 0;
if (_feeRequired) {
require(msg.value >= _feeAmount, "Fee amount too low");
require(_feeReceiver != address(0), "Invalid fee receiver address");
(bool success, ) = _feeReceiver.call{value: msg.value}("");
require(success, "Fee transfer failed");
}
// Auto mint one token to contract deployer
mint();
}
function mint() public {
require(totalSupply < maxSupply, "Max supply reached");
totalSupply++;
ownerOf[totalSupply] = msg.sender;
}
}
Note: These contracts are simple examples with basic functionality.