Fixing Taggr community's broken update issue – announcing imminent NNS proposal

Taggr ( is one of the most important projects on the Internet Computer. It represents the first fully self-governed social media, which also has sophisticated tokenization systems that create positive incentives, contribute to content ranking etc. It should have the support of everyone who cares about the future of open internet services and Web3 social media.

The service is currently created by a canister smart contract that doesn’t have a controller (i.e. where the controller-id is set to null) and it is updated by custom DAO functionality that is hosted within the canister itself.

Over the weekend, the DAO pushed a bad update, and now the canister smart contract is inoperable. Because the canister does not have a human or organization controlling it, and is instead fully controlled by its DAO (as I strongly believe is the future!) it cannot reapply a good update, since the DAO functionality, which is hosted inside the canister, has become inoperable.

We in the broad ICP community need to help the Taggr community get up and running as quickly as possible. Therefore, DFINITY will propose a one-time replica patch that allows the Taggr community to apply a canister code update and get up and running again. This is imminent, please be available to vote on the proposal, which I personally strongly advocate is adopted

Going forwards, the consensus is that open internet services using this architecture assign the NNS DAO to the controller id, so that it can more easily act as a decentralized administrator of last resort if something likes this occurs.

We also need to add features to ICP to de-risk such upgrades. For example, could canister memory snapshots be created before upgrades to prevent against an upgrade or bug causing corruption (snapshots would seem to be generally useful too)

Taggr uses highly custom tokenization, so simply assigning control to an SNS DAO would be no easy feat, albeit as the SNS platform becomes more sophisticated and configurable over time, this might one day be a solution for them. Taggr also reflects how a heterogeneous DAO ecosystem is the future and should be encouraged

Thanks all


Thank you Dom :pray:

Decentralization is the future but also has its risks and think this more apparent now than ever before! So, while we definitely have some lessons learned here and will need to proceed in the uncharted waters with more care we will continue to push boundaries of web3!


Thank you for the post and support, Dom! TAGGRDAO appreciates it!

What sort of technical benefit would be gained from the NNS DAO controlling the canister versus the NNS DAO having ‘root-level’ authority over the whole of the IC?


I was wondering last week why the website suddenly disappeared. Governance should still be available even if the website is not working, so that a faulty update can be undone. Hopefully it will work out

1 Like

This is a learning exercise for everyone in the community, but generally, the proposed solution is another example of the power of having a master DAO (i.e. the NNS) controlling the Internet Computer network. As ICP and the world computer paradigm scales, I think we are going to eventually see a hierarchy of DAOs, with communities of projects assigning themselves domain-specific DAOs.


Thank you for opening the discussion for Taggr. It is for sure an interesting case as we are pioneering and pushing the boundaries of what a DAO can do. Challenges like this and probably many others will come our way.


Thank you for being so responsive and quick off the mark here.


I fully support this! Its an interesting dev case study as well. I hadnt thought about canister snapshots.


That’s a good question. In principle, any smart contract can be updated on any chain using a replica/client software fork that the hosting network’s community agrees upon, as per Ethereum fork after “The DAO” got hacked in 2016. The ICP community also wields the same power, but it is mediated via the NNS DAO that controls and updates the network, through which it exercises control in a more transparent, decentralized and algorithmic way. But in essence, it’s the same thing.

What is clear with respect to blockchains, is that no network/community wants to exercise this power regularly or arbitrarily. When the Ethereum network was forked to fix The DAO token theft, people’s discomfort, and debate about the real meaning of the “Code is Law” doctrine, allowed unscrupulous crypto money men to exploit the problem and create Ethereum Classic, which imo, caused widespread harm.

So, in my view, we need to keep pushing forwards with systems and patterns that allow communities to fix problems themselves wherever possible, and the NNS should be a last resort, even when it might offer a shortcut to fixing problems. Hierarchies of domain-specific DAOs, snaps shots, and technical things like that, will provide the best way forward


Yes, this hierarchy was also discussed as it would be great for the possibility to have a test/quality DAOs as controllers to push updates for when this inevitably happens again!

I think there would need to be some portability of II principals to work though…


Thank you for posting your support Dom. Taggr is a great example of what can be achieved with the Internet Computer. I’m glad we can help them recover from this unfortunate accident.



  1. Taggr is great and deserves help. Check
  2. Dfinity cant satisfy everyone when making choices. Check.
  3. We want to avoid endless discussions and move forward. Check.
  4. ‘allow communities to fix problems themselves’ check

But here’s a totally honest question:
How is helping a project out by patching the system bring more value to our ecosystem?

Short answer will suffice.
(I use taggr and I love it)


Here’s my view and one I shared with many people… if the simplest of errors can blow up a dapp then there’s systemic platform risk and people either 1) won’t build on IC or 2) won’t decentralize

Also what’s your Taggr name?! :joy:


It brings more value by not scaring people away. If you show that even in the worst case we still don’t say ‘tough luck, try harder next time’ but instead we say ‘let’s come together to find a way forward’ it sends a strong signal that mistakes can be fixed, and that psychological safety of having some help available makes it IMO much easier to build something cool


Fair point and this kind of flexibility is not toally wrong.

And I appreciate the willingness to let go of old entrenched crypto beliefs and move forward in a very practical manner.

But immutibility is core to the crypto ethos and one can argue that we only ought to perform system patches when absolutly needed


Yes and thats what we should work on.

On taggr I’m also Samer :slight_smile:


I want to agree, but please define “absolutely needed”. For example, as we know NNS already has the ability to delete any canister, but will it be used to delete Spinner when “absolutely needed”?


System critical operation risk.


The soul of DAO is public opinion, so just listen to the public by voting


My concern with this DAO hierarchy is that the parent DAO’s governance token detracts value from the child DAO’s governance token. The child DAO’s tokens are distributed as a result of some investment, which may be monetary, as is the case of Open Chat, or it could be in the form of engagement, as is the case in TAGGR .

If TAGGR tokens are the only way of updating the TAGGR canister, then these tokens are very valuable as they give exclusive control of TAGGR to the TAGGR investors. If we build this DAO hierarchy, now ICP tokens will give some level of control over every DAO, regardless of what the investors in the child DAO own. So TAGGR tokens no longer give exclusive control over the TAGGR canister.

These tokens are also important for the alignment of interests and incentives. ICP holders are aligned with ICP interests and TAGGR holders are aligned with TAGGR interests. Those token holders may not always be the same people and their interests may not always be aligned. In our current state, they probably are the same people with the same interests, but in the long term there could be users of TAGGR that know barely anything about ICP.

If the NNS crosses this line, it will not be able to come back. Anyone who wants to build a fully autonomous DAO will not build it on the IC, because they can’t. They can at best, build a semi-autonomous DAO and hope that the parent DAO does not interfere in a way that is misaligned with the child DAO’s interests.