SwapDEX Token Logo

bSDX [SwapDEX] Token

ALERT: honeypot scam

About bSDX


Token 20 months
CoinGecko 2 years
CoinMarketCap 2 years
white paper

SwapDEX consists of a leading network called SmartDEX-Network and a research chain called Kusari-Network, forming the initial seed of an open, decentralized, and independent DeFi platform. This platform aims to become the industry-wide standard for decentralized finance.

The SmartDEX-Network is maintained by validators selected through a Nominated Proof-of-Stake (NPoS) consensus design. The validators are responsible for block production and chain finality.

Rewards are given out when validators behave correctly, and any misbehavior is punished via a slashing mechanism.

Furthermore, SwapDEX has a decentralized, community-run governance scheme that can change any SwapDEX design or parameter decision through formal consensus. Governance council members are required to be elected by holders of the relevant coin (SDX for SwapDEX, KSI for Kusari) with proposals requiring majority approval from council members to be implemented.

Unlike other projects, SwapDEX keeps validator selection completely independent from governance and the user’s right to participate in governance is never delegated.

NPoS is a Proof-of-Stake (PoS) variant that substitutes Nakamoto's consensus protocol's highly inefficient Proof-of-Work (PoW) design with a Proof-of-Stake (PoS) architecture.

SwapDEX utilizes NPoS to advance chain security, enable a fair representation and satisfaction of users, and boost efficiency. Networks following a similar path include Polkadot, Kusama, Chainlink, Moonbeam, to name a few.

While similar in spirit, the approaches in these networks vary in design choices, such as the incentive structure, the number of validators elected, and the election rule used to select them.

In the SwapDEX ecosystem, we focus on fully decentralized finance. Therefore, every SDX holder is free to become a validator candidate or a nominator to maintain the blockchain.

Validators participate in the consensus mechanism by producing blocks and validating blocks constructed by other validators. Nominators vote for validator candidates they trust and back them with their coins.

Once per era (a certain period), a committee of validators gets elected according to the current nominator's preference. In SwapDEX, the number of validators elected is in the order of hundreds and potentially thousands.

Both validators and nominators lock their coins as collateral and receive staking rewards on a pro-rata basis, but may also be slashed and lose their collateral in case backed validators show malicious or negligent behavior.

Nominators thus participate indirectly in the consensus protocol with an economic incentive to pay close attention to the evolving set of validator candidates and make sure that only the most capable and trustworthy among them get elected.

Laser Scorebeta Last Audit: 18 January 2023

Token seems to be a scam (type: honeypot scam).



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

ERC20.constructor(string,string).name (#813) shadows:
- ERC20.name() (#822-824) (function)
ERC20PresetMinterPauser.constructor(string,string).symbol (#1228) shadows:
- ERC20.symbol() (#830-832) (function)
ERC20Custom.constructor(string,string,uint8).name (#1289) shadows:
- ERC20.name() (#822-824) (function)
ERC20Custom.constructor(string,string,uint8).symbol (#1289) shadows:
- ERC20.symbol() (#830-832) (function)
ERC20.constructor(string,string).symbol (#813) shadows:
- ERC20.symbol() (#830-832) (function)
ERC20Custom.constructor(string,string,uint8).decimals (#1289) shadows:
- ERC20.decimals() (#847-849) (function)
ERC20PresetMinterPauser.constructor(string,string).name (#1228) shadows:
- ERC20.name() (#822-824) (function)
Rename the local variables that shadow another component.

Additional information: link

Address.isContract(address) (#50-59) uses assembly
- INLINE ASM (#57)
Do not use evm assembly.

Additional information: link

SafeMath.mul(uint256,uint256) (#683-695) is never used and should be removed
AccessControl._setRoleAdmin(bytes32,bytes32) (#516-518) is never used and should be removed
Address.sendValue(address,uint256) (#77-83) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (#300-302) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (#307-309) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#758-761) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#723-730) is never used and should be removed
Context._msgData() (#22-25) is never used and should be removed
SafeMath.mod(uint256,uint256) (#743-745) is never used and should be removed
SafeMath.div(uint256,uint256) (#708-710) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (#314-316) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (#328-330) is never used and should be removed
Address.isContract(address) (#50-59) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (#290-292) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.6.0 (#1) allows old versions
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) (#77-83):
- (success) = recipient.call{value: amount}() (#81)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Redundant expression "this (#23)" inContext (#13-26)
Remove redundant statements if they congest code but offer no value.

Additional information: link

transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#909-913)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#1096-1101)
mint(address,uint256) should be declared external:
- ERC20PresetMinterPauser.mint(address,uint256) (#1244-1247)
decimals() should be declared external:
- ERC20.decimals() (#847-849)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#946-949)
symbol() should be declared external:
- ERC20.symbol() (#830-832)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#861-863)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#873-876)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#927-930)
getRoleMemberCount(bytes32) should be declared external:
- AccessControl.getRoleMemberCount(bytes32) (#412-414)
name() should be declared external:
- ERC20.name() (#822-824)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (#452-456)
getRoleMember(bytes32,uint256) should be declared external:
- AccessControl.getRoleMember(bytes32,uint256) (#428-430)
unpause() should be declared external:
- ERC20PresetMinterPauser.unpause() (#1272-1275)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (#467-471)
totalSupply() should be declared external:
- ERC20.totalSupply() (#854-856)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#892-895)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (#487-491)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#1081-1083)
pause() should be declared external:
- ERC20PresetMinterPauser.pause() (#1258-1261)
getRoleAdmin(bytes32) should be declared external:
- AccessControl.getRoleAdmin(bytes32) (#438-440)
Use the external attribute for functions never called from the contract.

Additional information: link


Attempt to swap token was unsuccessful. For some reason it is untradeable. If token is not in presale stage and is not traded outside PancakeSwap, then it's a scam

Additional information: link

Average 30d PancakeSwap liquidity is less than $100. Token is either dead or inactive.

Average 30d PancakeSwap volume is less than $100. Token is either dead or inactive.

Average 30d number of PancakeSwap swaps is less than 1. Token is either dead or inactive.

Average PancakeSwap trading volume, liqudity, number of swaps are extremely low. Token seems to be dead.

Number of Binance Smart Chain (BSC) token holders is low.

No disclosed threats

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

Additional information: link

Token was delisted (assigned to inactive / untracked listing) from CoinMarketCap

Additional information: link

Unable to find token contract audit

Unable to find audit link on the website

Token is not listed at Mobula.Finance

Additional information: link

Unable to find token on CoinHunt

Additional information: link

Token is marked as scam (rug pull, honeypot, phishing, etc.)

Additional information: link

Token has no active CoinMarketCap listing / rank

Token has a considerable age, but average PancakeSwap 30d trading volume is low

Token has relatively low CoinGecko rank

Young tokens have high risks of price dump / death

Price for bSDX

News for bSDX