I am new to the concept of Dapps and I was just wondering about an incentive question I had in mind.

When Dapps are deployed to the ethereum VM what are the benefits it has to its creators if they are paying fees in terms of ether to deploy it there?

According to this link, "Once deployed to Ethereum, dapp code can’t be taken down. And anyone can use the dapp’s features."

Therefore, how will the dapp developers be compensated for the work they have done in designing the dapp.

Is it by being the first individuals who initiate the dapp and becoming the first players/users of this app? For example, the individual who designed the Bitcoin (the first dapp) people who may have knew that it exist (I think by the web or by knowing him) took advantage of this idea and initiated the first bitcoins (Genesis block) to create their first crypto-money which will be worth millions in the future! Hence, creating money! Is that true?

But according to another link, It seems that not each dapp is truly a decentralized app as it has centralized weak link ‘administrator access’! This means that in order to update a dapp there is no proper upgrade process!

I am just struggling to understand the main/big picture of incentives for developers.

1 Answer 1


Usually the dApp take fees from user somehow, or it includes a token, which the developper gets a large amount of, and can sell as the token gains value. Its actually a pretty profitable market for a developper trust me haha

EDIT : ANSWER TO 2ND COMMENT : (You seem to be fairly new to decentralized finance (or even not familiar with the concept at all, in that case look it up 😊) and as im writing it this is turning into an essay on how the DeFi world works. Also English isn’t my native language so I hope its… readable)

Yes, the code is out there for anyone to mimic. (at least compiled bytecode is no matter what, its on the chain, and some people way smarter than me can make sense of it. But it is an extremely common practice to publish the solidity code as open source anyways (and its highly disregarded to not do so)) but that's just how it works. Blockchain is open source no matter what so you just deal with it. Assuming that you have good intentions, deploying a smart contract with any kind of exploit or anything wrong in it, or operating it wrong once its on chain implies A LOT of consequences (usually a huge lot of money lost, potentially legal trouble…) so if you’re an organization working on a project you REALLY want a developer that knows his stuff. Now there is people that’s going to hire developers to fork existing projects, but they’re usually kids or lazy guys that want to try to make some quick money by creating a token or something like that, they’re the “wrong” side of the fact that the blockchain is an open source world IMO. You can also create a project by yourself, using some preexisting code or doing it from scratch if you want, that’s what a lot of blockchain developers do.

And for taking fees well, there’s plenty of ways to do it, it entirely depends on what your project is about. Let’s say you’re creating a staking pool where people can deposit ETH, and you want to take 2% on each deposit, you could write something like that :

address payable devWallet = yourWalletAddress;
mapping (address => uint256) stakedAmount; // You probably want to keep track of what people has staked in your contract
function payable deposit() {
       uint256 devFee = msg.value.mul(2).div(100) // msg.value is the amount of ETH sent to the contract. .mul and .div are "safe" (=that checks for over/underflows) variants of the native operators. They're from the extremely widely used safeMath library.
       devWallet.transfer(devFee) // This sends 'devFee' ETH to the dev wallet.  
       stakedAmount[msg.sender] = stakedAmount[msg.sender] + msg.value.sub(devFee); // Records in the stakedAmount mapping that the user has staked in the contract whatever he sent - the fees. 

But once again, there's as many ways of doing it that there is projects out there 😊.

  • about this "But according to another link, It seems that not each dapp is truly a decentralized app as it has centralized weak link ‘administrator access’! This means that in order to update a dapp there is no proper upgrade process!" Smart contract's code can be updated like you'd change the whole code of a web page that would still stay at the same URL for example, but a contract could contain something like this uint256 public importantVariable = 2; Where importantVariable would be used somewhere critical in the dApp normal execution, and then a function like this (next comment)
    – Foxxxey
    Aug 11, 2021 at 19:33
  • function updateImportantVariable (uint256 newImportantVariable) public onlyOwner { importantVariable = newImportantVariable; } That could only be called by the contract creator, this wouldnt change the code in itself, but it could make the smart contracts normal operation completely different
    – Foxxxey
    Aug 11, 2021 at 19:35
  • It sounds simple the way you said it but if we examine carefully the code is out there for anyone to mimic, why would someone pay money to the developer. you said take fees somehow. How exactly? This is still unclear. I think I am not the only one who does not get this!
    – Anonymous
    Aug 11, 2021 at 20:12
  • 1
    answered in more detail in an edit. Maybe DM me if you have more questions?
    – Foxxxey
    Aug 11, 2021 at 21:07

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.