INRC Token Issuer is a fully-featured platform for issuing, managing, and interacting with the $INRC token, a custom ERC20 implementation with enhanced security and administrative features. The platform consists of a robust Solidity smart contract and a React-based web interface for users and administrators.
The token is designed with advanced capabilities including blacklisting, pausability, and standard ERC20 functionality, making it suitable for regulated financial applications.
Experience the INRC Token Issuer platform on Sepolia testnet: https://inrc-token-issuer.vercel.app/
To interact with the demo:
- Connect with MetaMask set to Sepolia testnet
- Request test ETH from a Sepolia faucet if needed
- Explore the user dashboard and token functionality
The $INRC token contract has been verified on Etherscan: View Verified Contract on Sepolia Etherscan
This verification allows anyone to inspect the deployed contract code and interact with it directly through Etherscan's interface.
- Standard ERC20 Functions: Complete implementation of the ERC20 interface including transfer, approval, and allowance mechanisms
- Minting & Burning: Controlled token supply management through secure minting and burning functions
- Blacklist System: Ability to restrict specific addresses from participating in token transfers (similar to USDT)
- Pause Mechanism: Emergency pause functionality to halt all token transfers if necessary
- Ownership Controls: Secure ownership management with privilege restriction
- User Dashboard: Easy-to-use interface for checking balances, transferring tokens, and managing approvals
- Admin Panel: Comprehensive admin tools for contract management, including:
- Token minting and burning
- Blacklist management
- Contract pause/unpause
- Ownership transfer
- MetaMask Integration: Seamless connection with MetaMask wallet for secure transaction signing
- Real-time Status Updates: Clear transaction status indicators and notifications
The INRC token contract follows best practices for security and efficiency:
- Built on Solidity ^0.8.0 with automatic overflow checking
- Custom error messages for gas-efficient failure handling
- Comprehensive event logging for all state changes
- Modular design with internal functions for core operations
- Rigorous access control through function modifiers
transfer(address _to, uint256 _value)
: Transfer tokens to another addressapprove(address _spender, uint256 _value)
: Approve an address to spend tokenstransferFrom(address _from, address _to, uint256 _value)
: Transfer tokens on behalf of another addressmint(address _to, uint256 _amount)
: Create new tokens (admin only)burn(address _from, uint256 _amount)
: Destroy existing tokens (admin only)blacklist(address _address)
&unBlacklist(address _address)
: Manage blacklisted addressespause()
&unpause()
: Emergency controls for token transferstransferOwnership(address _newOwner)
: Change contract owner
Our smart contract has undergone rigorous testing, ensuring reliability and security:
- Unit tests covering all contract functions
- Integration tests for complex user flows
- Edge case testing for security vulnerabilities
- Gas optimization analysis
- Node.js (v14+)
- npm or yarn
- MetaMask browser extension
-
Clone the repository
git clone https://github.com/yourusername/INRC-token-issuer.git cd INRC-token-issuer
-
Install dependencies
npm install
-
Deploy the contract
npx hardhat run scripts/deploy.js --network your-network
-
Navigate to the frontend directory
cd frontend
-
Install dependencies
npm install
-
Update the contract address in
src/App.tsx
-
Start the development server
npm start
- Connect your MetaMask wallet to the application
- View your token balance in the user dashboard
- Use the transfer function to send tokens to other addresses
- Approve other addresses to spend tokens on your behalf
- Connect the owner wallet to access admin functions
- Use the minting feature to issue new tokens
- Manage blacklisted addresses as necessary
- Control the pause state of the contract in emergency situations
The INRC token contract implements several security measures:
- Admin-only functions restricted through modifiers
- Checks-Effects-Interactions pattern to prevent reentrancy
- Blacklisting capabilities for regulatory compliance
- Emergency pause functionality for threat mitigation
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for a stronger digital India