SkillTradeToken (SKLT) is a custom ERC20 token deployed on the Arbitrum One network. This token integrates advanced administrative features, including pausable functionality, address blacklisting, and customizable airdrops.
Built for experimentation and education, this smart contract simulates real-world token control features often found in modern Web3 platforms and DAOs.
- 🔐 Admin Controls
- Only the deployer (owner) can pause/unpause or manage blacklists.
- ⏸️ Emergency Pause
- Temporarily disable all token transfers via
pause()and resume withunpause().
- Temporarily disable all token transfers via
- 🚫 Address Blacklist
- Prevent malicious addresses from sending or receiving tokens.
- 📤 Airdrops
- Distribute tokens to multiple recipients with a single call.
- 📦 Full ERC20 Compliance
- Supports
transfer,approve,transferFrom,balanceOf,totalSupply, etc.
- Supports
| Function | Description |
|---|---|
pause() |
Pauses all transfers |
unpause() |
Resumes all transfers |
blacklist(address) |
Blocks an address from transferring/receiving tokens |
removeFromBlacklist(address) |
Unblocks an address |
airdrop(address[], uint256[]) |
Distributes tokens in bulk |
transfer(address, uint256) |
Standard ERC20 transfer |
balanceOf(address) |
Returns current balance of a given address |
- Remix IDE: https://remix.ethereum.org
- Solidity Compiler:
v0.8.20 - Network: Arbitrum One
- Wallet: MetaMask (connected to Arbitrum)
- Open Remix IDE.
- Paste the
SkillTradeToken.solcode into a new file. - Compile with version
0.8.20. - Go to "Deploy & Run" tab:
- Environment:
Injected Provider - MetaMask - Network:
Arbitrum One - Deploy with no constructor arguments.
- Environment:
- ✅ Import token to MetaMask
- Use contract address from Blockscout
- Token symbol:
SKLT - Decimals:
18
| ✅ Feature | Test Summary |
|---|---|
| Token Creation | 1,000 SKLT minted at deployment to owner |
| Pause / Unpause | Paused transfers successfully blocked transfers, resumed with unpause() |
| Transfer | Sent 1 SKLT from owner to secondary MetaMask wallet |
| Blacklist | Prevented blacklisted address from transferring tokens |
| Remove Blacklist | Successfully restored transfer access after removing from blacklist |
| Airdrop | Sent batch tokens to multiple addresses using airdrop() |
| Visibility | Token appears correctly in MetaMask on both sender and receiver wallets |
- Inherits from OpenZeppelin contracts:
ERC20,Ownable,Pausable - Uses custom mappings for blacklist logic.
- Emits standard ERC20
Transferevents + customPaused/Unpaused.
- Blockscout transaction links
- MetaMask token balances
- Remix logs
- 🧠 Role-based Access (e.g., using OpenZeppelin
AccessControl) - 🌍 Front-end interface (React/Next.js dashboard)
- 🧾 On-chain metadata for reputation or utility
- ⚖️ DAO-based governance
- 🔁 Staking or burning mechanisms
This project is released under the MIT License.