Vyqno (VQ) is a feature-rich ERC20 token built with modern Solidity practices and OpenZeppelin's battle-tested contracts. The token includes advanced features like gasless transactions through EIP-2612 permits, controlled minting, and efficient burning mechanisms.
- β Initial Supply: 1,000 VQ tokens
- β Decimals: 18 (Standard ERC20)
- β Owner-controlled minting
- β Burnable tokens
- β EIP-2612 Permit support
- β Comprehensive test coverage
| Feature | Description | Status |
|---|---|---|
| ERC20 Standard | Full ERC20 compliance with transfer, approve, allowance | β |
| Minting | Owner can mint new tokens to any address | β |
| Burning | Token holders can burn their own tokens | β |
| Burn From | Approved spenders can burn tokens on behalf of others | β |
| Permit | Gasless approvals using EIP-2612 signatures | β |
| Access Control | Owner-based access control for sensitive operations | β |
Token Name: vyqno
Symbol: vq
Decimals: 18
Initial Supply: 1,000 VQ
vyqno-token/
βββ π .github/ # GitHub workflows and templates
βββ π broadcast/ # Foundry deployment broadcasts
βββ π cache/ # Build cache files
βββ π lib/ # Dependencies (forge-std, openzeppelin)
βββ π out/ # Compiled contract artifacts
βββ π script/ # Deployment scripts
β βββ π vyqnoDeploy.s.sol # Main deployment script
βββ π src/ # Smart contracts source code
β βββ π vyqnoERC20.sol # Main Vyqno token contract
βββ π test/ # Test files
β βββ π vyqnoDeploymentTest.t.sol # Deployment tests
β βββ π vyqnoTest.t.sol # Core functionality tests
βββ π .env # Environment variables (not tracked)
βββ π .gas-snapshot # Gas usage snapshots
βββ π .gitignore # Git ignore rules
βββ π .gitmodules # Git submodules configuration
βββ π foundry.lock # Foundry dependencies lock file
βββ π foundry.toml # Foundry configuration
βββ π README.md # Project documentation
| Directory | Purpose |
|---|---|
src/ |
Contains the main smart contract (vyqnoERC20.sol) |
script/ |
Deployment scripts for different networks |
test/ |
Comprehensive test suite with 100% coverage |
lib/ |
External dependencies (OpenZeppelin, Forge-std) |
out/ |
Compiled contract artifacts and ABIs |
broadcast/ |
Deployment transaction records |
| Parameter | Value |
|---|---|
| Network | Sepolia Testnet |
| Contract Address | 0x73Bc0123F2454561a9A63740cdF0918f7F0193FC |
| Transaction Hash | 0x783a906da08abd5e3fe944e3359fdff70caa62117b776361a4b7e2da88152141 |
| Block Number | 9,283,362 |
| Deployment Date | September 26, 2025 |
| Gas Used | 1,978,419 |
β
testIfInitialSupplyGivenToRecipient (Gas: 17906)
β
testIfInitialOwnerHasMintingRights (Gas: 54537)
β
testIfOtherAddressCanMint (Gas: 27544)
β
testAllowance (Gas: 83841)
β
testBurnTokenByCaller (Gas: 41349)
β
testBurnFromWithAllowance (Gas: 57644)
β
testBurnFromWithInsufficientAllowance (Gas: 45371)
β
testBurnWithInsufficientBalance (Gas: 16296)
Total: 10 tests passed β
β
testDeploymentReturnsValidContract (Gas: 1796257)
β
testDeployedTokenHasCorrectName (Gas: 1802352)
β
testDeployedTokenHasCorrectSymbol (Gas: 1802304)
β
testDeployedTokenHasCorrectDecimals (Gas: 1797969)
Total: 4 tests passed β
π 14 tests passed, 0 failed, 0 skipped
β±οΈ Total execution time: 25.99ms (6.50ms CPU time)
# Clone the repository
git clone <repository-url>
cd vyqno-token
# Install dependencies
forge install
# Compile contracts
forge build
# Run tests
forge test
# Run tests with gas reporting
forge test --gas-report- Set up environment variables:
export RECIPIENT_ADDRESS=<recipient_address>
export INITIAL_OWNER=<owner_address>
export PRIVATE_KEY=<your_private_key>
export SEPOLIA_RPC_URL=<your_alchemy_rpc_url>
export ETHERSCAN_API_KEY=<your_etherScan_api>- Deploy to Sepolia:
forge script script/vyqnoDeploy.s.sol:DeployVyqnoToken --rpc-url $(SEPOLIA_RPC_URL) --private-key $(PRIVATE_KEY) --broadcast --verify --etherscan-api-key $(ETHERSCAN_API_KEY)
This project is licensed under the MIT License - see the LICENSE file for details.