ShibaSwap does not offer staking , they are minting and burning 2 tokens at a 1:1 ratio which results in you getting nothing

Cryptocurrency News and Public Mining Pools

ShibaSwap does not offer staking , they are minting and burning 2 tokens at a 1:1 ratio which results in you getting nothing

Shiba Inu token has launched their own swap similar to uniswap. It now offers staking but not in a traditional sense, instead users deposit Shiba Inu tokens which are then locked, and those users are given newly minted tokens named xShib, which they can later come back and use to redeem their original tokens. The site claims they earn rewards for staking but based on my findings this is not the case at all.

I am not here to to spread fud, but the lack of transparency with this is a big red flag for me. There is no Certik audit as they have claimed is underway for over 2 months now, there is no documentation site, no faces on the project, and no links to any of the contracts which people are using. Through some deep digging I was able to find this live contract for xShib . Click 'contract' on the page and then the code tab and you will see the functions I am about to highlight:
function 1: Enter – This is the 'Bury Shib' under BURY on ShibaSwap.com , hence the contract name being BuryShib on the link above. It's also worth noting I looked at all 3 for 'Bury Shib' , 'Bury Bone' , and 'Bury Leash' they are all the same code:

// Enter the doghouse. Pay some SHIBs. Earn some shares.

// Locks Shib and mints xShib

function enter(uint256 _amount) public {

// Gets the amount of Shib locked in the contract

uint256 totalShib = shib.balanceOf(address(this));

// Gets the amount of xShib in existence

uint256 totalShares = totalSupply();

// If no xShib exists, mint it 1:1 to the amount put in

if (totalShares == 0 || totalShib == 0) {

_mint(msg.sender, _amount);

}

So this part of the function is taking the amount of Shiba inu token you want to deposit as an argument, then it gets the total amount of xShib already in existence as well as Shiba Inu locked in the contract, which at the time of this post is around $380 Million dollars and around 45 trillion tokens. It then does the following:

// Calculate and mint the amount of xShib the Shib is worth. The ratio will change overtime, as xShib is burned/minted and Shib deposited + gained from fees / withdrawn.

else {

uint256 what = _amount.mul(totalShares).div(totalShib);

//100*1000/1000

_mint(msg.sender, what);

}

// Lock the Shib in the contract

shib.transferFrom(msg.sender, address(this), _amount);

}

Take note of the variable 'what' I highlighted bold. Now take a look at this page of the contract , specifically the total supply of xShib in the top left , its around 45 trillion, the almost exact same amount locked in the contract. You can verify first link I provided again, and click the drop down in the top left where it shows the value in the contract and check how many ShibaInu are in the xShib contract, its almost identical. (Also RIP to whoever sent .72 LEASH to this address, thats around $1800 to never be seen again)

The section in bold is the important part, the function is taking the amount you want to deposit, multiplying that by the total supply of xShib, and then dividing that by the total Shiba Inu in the contract. Since its minting the amount someone deposits you'll only be getting back what you put in. This is obvious once you get to the next function for when you want to withdraw:

Method 2 – Leave – return your xShib tokens and redeem your Shiba tokens.
// Leave the doghouse. Claim back your SHIBs.

// Unclocks the staked + gained Shib and burns xShib

function leave(uint256 _share) public {

// Gets the amount of xShib in existence

uint256 totalShares = totalSupply();

// Calculates the amount of Shib the xShib is worth

uint256 what = _share.mul(shib.balanceOf(address(this))).div(totalShares);

_burn(msg.sender, _share);

shib.transfer(msg.sender, what);

}

Again the important part of the code is in bold, this function is passed a parameter which is _share , share represents how many xShiba tokens you are depositing back into the contract as you call Leave. It then does a calculation of your return in the 'what' variable which can be simplified as followed:
ProfitReturn = your xShib shares multiplied by their their wallets ShibaInu balance divided by the total number of xShib tokens in existence.

Analysis:
Currently the xShiba main net wallet holds $380 million dollars worth of Shiba in less than 24 hours since launch. The total max supply (which is constantly being minted or burned) is currently around 44 trillion xShiba.
Shiba Inu Tokens in wallet: 44,xxx,xxx,xxx,xxx (44 trillion)
If I deposited $38,000,000 or 10% of the Shiba Inu in the contract, then I would receive 4,xxx,xxx,xxx,xxx (4 trillion) xShiba coins which again is around 10% of the total 44 trillion coins in the wallet.
Based on the ‘what’ variable in the ‘Leave’ function above we can assume the following using our simplified explanation:
ProfitReturn = 4 trillion xShiba * 44 trillion Shiba Inu divided by 44 trillion total xShiba = 4 trillion.

After the calculation the leave function calls _burn(msg.sender, _share);and literally nothing has happened. I've verified this by going through transactions on the contract and finding wallets that have called the 'leave' function , I went through a few accounts and looked at how much they initially 'entered' vs how much they received when they 'left' and nothing happens in terms of value gained. The contract is literally taking what you put in and giving you that much back. If this is incorrect then it comes down to lack of transparency of how this entire swap is working. Again this is an open invite for the devs/founders to come in and provide some clarity.

Edit: Seeing a couple comments asking for the code, here it is

There are 55 total lines in the buryShib contract , and 4 other files which are OpenZeppelin libraries (standard for most tokens).

submitted by /u/A_sexy_black_man
[link] [comments]