SPELLFIRE Token [via ChainPort.io] Token Logo

SPELLFIRE [SPELLFIRE [via ChainPort.io]] Token



Token 2 years
CoinMarketCap 2 years
white paper

Spellfire is a unique Play-2-Earn collectible card game, proposing the first-ever hand-held NFT collection that can be placed in an actual drawer and generate passive income. Longing for realism, but being an NFT pioneer, Spellfire has moved time-tested concepts into the future to bridge the card fan generations together. Bringing nearly 30 years of history to the blockchain, whilst boasting an established community of avid and dedicated fans has led industry giants DAO Maker and Shima Capital to support the project as leading investors. Physical cards have a digital state, where some feature voice or gesture-empowered actions to create unique interactions for gamers avoiding age barriers, geo limits, and technology gaps. Spellfire’s interactive augmented reality cards are sure to create a unique feeling of immersion. Digital and physical cards are connected through a QR code printed on the back of each card, making them traceable, upgradable, and playable online and offline. The game connects three realities together - the Physical, the Digital and the Augmented reality. Ensuring that no one gets left behind, Spellfire is going multichain, making it one of the first to support multi chain NFTs. Imagine a “BSC vs Solana NFT battle” - it will be the new Spellfire’s reality. Limited edition NFT cards have been created to ensure that Spellfire’s community shares in the success of the game. Each card has been beautifully and uniquely illustrated and contains delicate artistic flourishes in addition to meticulous detailing. Every player is sure to find something to love. Original NFT cards are issued in playing card copies ranging from 1000 for legendary to 100,000 for common. Original NFT Card owners are eligible to earn up to 10x return on investment in passive income from the subsequent sales of cards, while also growing in value as a rare NFT. Unlike comparable NFTs on the market that offer little to no value to the long-term holder, Spellfire NFT cards allow the community to earn revenue through passive card ownership or active gameplay by earning Spellfire’s native $Spellfire token. The $Spellfire token is essential within the game’s ecosystem and offers owners various forms of utility. A total supply of 640,000,000 will be available with 128,000,000 reserved exclusively for distribution through in-game rewards and tournaments to ensure viable longevity for the game and its community. In addition to being Spellfire’s in-game currency for all forms of transactions, $Spellfire can also be staked, unlocking extra rewards for its holders.

Laser Scorebeta Last Audit: 15 February 2022

Token seems to be (relatively) fine. It still become a scam, but probability is moderate.



Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Contract name (SPELLFIRE Token [via ChainPort.io]) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.

TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#116-119) ignores return value by Address.functionDelegateCall(newImplementation,data) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#118)
UpgradeableProxy.constructor(address,bytes) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#24-30) ignores return value by Address.functionDelegateCall(_logic,_data) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#28)
Ensure that all the return values of the function calls are used.

Additional information: link

Modifier TransparentUpgradeableProxy.ifAdmin() (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#53-59) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.

Additional information: link

Proxy._delegate(address) (@openzeppelin/contracts/proxy/Proxy.sol#21-41) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/Proxy.sol#23-40)
TransparentUpgradeableProxy._admin() (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#124-130) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#127-129)
TransparentUpgradeableProxy._setAdmin(address) (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#135-142) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#139-141)
UpgradeableProxy._implementation() (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#47-53) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#50-52)
UpgradeableProxy._setImplementation(address) (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#68-77) uses assembly
- INLINE ASM (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#74-76)
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-35) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#33)
Address._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#171-188) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#180-183)
Do not use evm assembly.

Additional information: link

Different versions of Solidity is used:
- Version used: ['>=0.6.0<0.8.0', '>=0.6.2<0.8.0']
- >=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/Proxy.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#3)
- >=0.6.2<0.8.0 (@openzeppelin/contracts/utils/Address.sol#3)
Use one Solidity version.

Additional information: link

Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#79-81) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#89-91) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#104-106) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#129-131) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59) is never used and should be removed
Proxy._implementation() (@openzeppelin/contracts/proxy/Proxy.sol#47) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/Proxy.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/proxy/UpgradeableProxy.sol#3) is too complex
Pragma version>=0.6.2<0.8.0 (@openzeppelin/contracts/utils/Address.sol#3) is too complex
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.

Additional information: link

Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#57)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#119)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#143)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#163-169):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#167)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link


Unable to find PancakeSwap trading pair to compute liquidity.

Unable to find PancakeSwap trading pair to compute number of swaps.

Twitter account link seems to be invalid

BscScan page for the token does not contain additional info: website, socials, description, etc.

Additional information: link

Unable to find token contract audit

Unable to find audit link on the website

Unable to find whitepaper link on the website

Unable to find token on CoinHunt

Additional information: link

Unable to find code repository for the project

Young tokens have high risks of scam / price dump / death

Young tokens have high risks of scam / price dump / death

Young tokens have high risks of scam / price dump / death

Token has relatively low CoinGecko rank