# Scope ## Problem `Gnosis` withdrawals mechanism differs from the `Ethereum` one because `ERC20 GNO` token used for staking. => Withdrawals are implemented by internal contract execution on EC side: e.g. Erigon: ```go // See https://github.com/gnosischain/specs/blob/master/execution/withdrawals.md func (c *AuRa) ExecuteSystemWithdrawals(withdrawals []*types.Withdrawal, syscall consensus.SystemCall) error { if c.cfg.WithdrawalContractAddress == nil { return nil } amounts := make([]uint64, 0, len(withdrawals)) addresses := make([]libcommon.Address, 0, len(withdrawals)) for _, w := range withdrawals { amounts = append(amounts, w.Amount) addresses = append(addresses, w.Address) } packed, err := withdrawalAbi().Pack("executeSystemWithdrawals", amounts, addresses) if err != nil { return err } _, err = syscall(*c.cfg.WithdrawalContractAddress, packed) return err } ``` As such execution creates no transaction receipts It breaks `ERC20` standard compliance as such transfer events will be not presented in network state. It may possibly affect tools and protocols that rely on transaction receipts and logs related to `GNO` token. Such behaviour may create `'shadow'` accounts that are not presented in holders lists but hold `GNO`. ## Probable impacted systems : #### Indexers, Block Explorers and Every tool that use circulation supply -- List of `GNO` holders on `Chiado` [blockscout](https://blockscout.com/gnosis/chiado/token/0x19C653Da7c37c66208fbfbE8908A5051B57b4C70/token-holders) -- GnosisDAO proposals [snapshots](https://snapshot.org/#/gnosis.eth) will not count abstain `GNO` on shadow accounts -- Voting threshold is based on circulation supply #### Dune -- Queries and dashboards that threat `GNO` as other`ERC20`s may provide unproper results e.g. [GNO-Holders-Snapshot](https://dune.com/gnosis.protocol/GNO-Holders-Snapshot) #### Tellor Oracle Protocol [link](https://tellor.io/); [Feeds specs](https://github.com/tellor-io/dataSpecs/tree/main/types) -- **[CrossChainBalance](https://github.com/tellor-io/crosschainBalances/tree/main)** data feed [provides](https://github.com/tellor-io/crosschainBalances/blob/main/src/Snapshot.js#L41) data for accounts list based on trasfer events #### Also there are couple of proprietary systems that have alerts/event interaction e.g. [https://www.curvegrid.com/](https://www.curvegrid.com/)