I have a question. So there is a project named StarsLab that had it's mint live in the beginning of this year. They started first the WL sale. I wasn't WL but was able to mint so reported it to the team. They noticed something is going not right and paused the mint. Than they continued the mint after they fixed the problem in the smart contract. So than something weird happened. First things first: the smart contract developer was a freelancer (I know really stupid). While the mint was going on some other reports came in from people who have knowledge in smart contract. The team was told that their smart contract developer did something weird. From what I understood the developer changed the adress of the owner (or never wrote the right adress?) to an 0x adress. So the team of the project wasn't able to withdraw the funds out from the smart contract. But the weird thing is, if the developer did that why should he/she set the adress of the owner to an 0x adress? So himself/herself isn't even able to withdraw the funds out from the smart contract? And the funds are still stucked in the smart contract what is weird. Is there no possibilities to get the funds out from the smart contract? So the team has again some resources to work with?

Thats the smart contract adress:


2 Answers 2


The funds are not stuck, they are now controlled only by the creator (0x97ce82ccb3d8d6a02c87799f1d8d8af4dad77a0e). You need to contact them, asking to call again the transferOwnership function.

In any case, the creator will never lose control of the funds of this smart contract, or any other admin functions.

In fact, that smart contract is an awful example of programming: the owner can lose control of the contract, as in this case, but there's no way to change the creator, so they will always remain the owner, no one can change that, and they can act as an owner forever.

modifier onlyOwner() {
        owner() == _msgSender() || _creator == _msgSender(),
        "Ownable: caller is not the owner"

I saw other deployed smart contracts with the same code (i.e., 0xc0401c5a3e063438af065dbdba8f99a5c4060c84).

You need to pay attention when you externalize a job to develop a smart contract, or you can easily get scammed like this.


Ok, So you could use upgradeable contract, Here's the link, https://docs.openzeppelin.com/learn/upgrading-smart-contracts

You can create a new function, that may would allow you to withdraw funds from the smart contract, But you cannot delete the state variables that were already created, You can create new state variables and functions though. Hope you found what you were looking for.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.