ERC-3525 Semi-Fungible Token Transfer Tool
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This tool enables developers and token holders to transfer ERC-3525 semi-fungible tokens, a standard that combines characteristics of fungible and non-fungible tokens. ERC-3525 tokens represent a value within a specific "slot" of a token ID — meaning you can have multiple slots per token, each holding a fungible amount. This is useful for loyalty points, game currencies, financial instruments, and other applications where value needs to be tracked within a token. It connects to your wallet and reads the token contract address, token ID, slot ID, value amount, recipient address, current balance, transfer history, and timestamps. The tool signs and submits transactions to transfer ERC-3525 semi-fungible tokens, update slot balances, record transfer metadata, and emit transfer events.
HOW TO USE
1. Connect your wallet using the wallet bridge (supports MetaMask, WalletConnect, and other EVM-compatible wallets).
2. Select the target network that matches your token contract deployment.
3. Enter the token contract address and click "load contract" to initialize the connection.
4. Enter the token ID, slot ID, and click "fetch balance" to check your current balance in that slot.
5. Enter the recipient address, the value amount to transfer, and verify the token ID and slot ID.
6. Click "validate transfer" to verify that the transfer is valid, including sufficient balance.
7. Review the transfer details including token ID, slot ID, value, recipient, and current balance.
8. Click "transfer" to sign and submit the transaction that transfers the value from your token/slot to the recipient.
9. After execution, the balance will be updated and the transfer will be recorded in the history.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with any EVM-compatible ERC-3525 token contract that implements a standard interface (balanceOf(uint256, uint256) view returns (uint256), transferValue(uint256, uint256, address, uint256) external, getTransferHistory(address) view). The balanceOf function takes a token ID and a slot ID, returning the fungible value held in that specific slot. The transferValue function transfers a specified value from the caller's token/slot to the recipient's address, deducting from the sender's balance and adding to the recipient's balance in the same slot. This is the core operation that distinguishes ERC-3525 from standard ERC-20 or ERC-721 — it allows fractional value transfers within a token context. The contract also supports approval mechanisms and event emissions for auditability. Transaction handling follows EIP-1559 gas price calculations using receipt.effectiveGasPrice for accurate cost reporting. Transfer metadata is recorded both in the contract's history and locally for the user's reference.
WHAT IT CANNOT SEE
This tool operates purely on-chain and cannot verify token authenticity — it does not check that the token contract is a genuine ERC-3525 implementation or that the token ID is valid. It cannot validate slot ownership — the tool cannot confirm that the caller owns the specified slot or has the authority to transfer from it. It cannot ensure recipient eligibility — the tool does not verify that the recipient is allowed to receive tokens or that the transfer is permitted by the contract's rules. It cannot detect fraud — the tool cannot identify attempts to transfer tokens that are locked, restricted, or subject to other constraints. The tool also cannot verify that tokens are used appropriately — it cannot track how the recipient uses the tokens after they are transferred.
PLEASE NOTE
This tool works exclusively with EVM-compatible blockchain networks (Ethereum, Polygon, Arbitrum, Optimism, Base, etc.). It requires the token contract to implement the ERC-3525 interface described above. All transactions incur gas fees paid by the connected wallet. The tool maintains no persistent storage — all state is refreshed from the blockchain on each session. Always verify the token ID, slot ID, and value before transferring. Ensure you have sufficient balance in the specified slot. Consider the contract's transfer restrictions — some ERC-3525 implementations may have additional requirements for transfers.