# \[Sunsetting\] Contractkit

**URL:** <https://forum.celo.org/t/sunsetting-contractkit/5337>\
**Category:** Developers\
**Created:** [March 15, 2023, 2:47pm UTC](https://forum.celo.org/t/sunsetting-contractkit/5337 "2023-03-15T14:47:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nicolasbrugneaux](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.celo.org/nicolasbrugneaux/32/7395_2.png) [@nicolasbrugneaux](https://forum.celo.org/u/nicolasbrugneaux)\
**Post date:** [March 15, 2023, 2:47pm UTC](https://forum.celo.org/t/sunsetting-contractkit/5337/1 "2023-03-15T14:47:18Z")

</div>

Hello Celo devs 👋

With the recent efforts from everyone at clabs to make CELO as eth-tooling-compatible as possible, it became clear that we should strive to support the existing ecosystem rather that create our own libraries.

That’s why contractkit is in the process of being **deprecated** for public usage. While our internal tools still rely on its existence, we will stop supporting the library on public channels and will slowly migrate away from using it ourselves.

If you are using Contractkit at the moment and don’t know how to migrate to ethers, web3 or viem, please contact us via [Github Discussions](https://github.com/celo-org/celo-monorepo/discussions/10222) .

If you have a particularly sensitive issue please reach out to [devrel@celo.org](mailto:devrel@celo.org).

_The contractkit code within the [celo-monorepo](https://github.com/celo-org/celo-monorepo/) **will not be removed** and it is possible that updates keep being pushed to npm. However I must emphasise that **no support will be provided** regarding its usage._

---

<div class="post-metadata">

**Author:** ![nicolasbrugneaux](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.celo.org/nicolasbrugneaux/32/7395_2.png) [@nicolasbrugneaux](https://forum.celo.org/u/nicolasbrugneaux)\
**Post date:** [March 30, 2023, 10:30am UTC](https://forum.celo.org/t/sunsetting-contractkit/5337/2 "2023-03-30T10:30:37Z")

</div>

# Amendment notice

## TLDR

- The above post was posted in error: cLabs currently plans to support [contractkit](https://www.npmjs.com/package/@celo/contractkit) indefinitely
- We are investigating the value/cost of [contractkit](https://www.npmjs.com/package/@celo/contractkit) in its current form
- We invite all developers potentially affected by an end of life announcement to [raise their voice on Github](https://github.com/celo-org/celo-monorepo/discussions/10222)

## More details

Recently we pledged to achieve “deep alignment with the Ethereum community” in the [Celo 2.0 roadmap](https://blog.celo.org/the-next-chapter-introducing-celo-2-0-by-clabs-b535db54a564). In an effort to move towards this goal, we (the cLabs developer tooling team) have been looking for ways to facilitate usage of Ethereum-compatible developer tools (such as [EthersJS](https://docs.ethers.org/v5/), [viem](https://viem.sh/) and [web3js](https://web3js.readthedocs.io/)), while continuing to provide access to Celo’s unique features (such as the ability to [pay for gas with custom tokens](https://docs.celo.org/protocol/transaction/erc20-transaction-fees#fee-currency-field) and Celo’s diverse set of [core contracts](https://github.com/celo-org/celo-monorepo/tree/master/packages/protocol/contracts)).

We often hear that bundle sizes matter (in particular for mobile developers), because they increase the time and bandwidth required to install your applications. We also know that [contractkit](https://www.npmjs.com/package/@celo/contractkit) is a large dependency (currently 2.93 MB) and have been trying our best to whittle down its size for a while. In comparison, the recently published client libraries with Celo support [advertise bundle sizes as small as 27kB](https://twitter.com/wagmi_sh/status/1632814459235500032?s=20).

> <https://twitter.com/wagmi_sh/status/1632814459235500032?s=20>

In an effort to improve your developer experience, we have been investigating the value/cost of [contractkit](https://www.npmjs.com/package/@celo/contractkit) in its current form and have been considering moving [core contract wrappers](https://docs.celo.org/developer/contractkit/contracts-wrappers-registry) (like accounts, governance, lockedGold, stableToken, etc) from [contractkit](https://www.npmjs.com/package/@celo/contractkit) into their own smaller package. We documented a proof of concept in this pull request: [PoC: Move Generated Typescript Web3 Core Contracts to their own package #9912](https://github.com/celo-org/celo-monorepo/pull/9912/files).

We also want to minimize unnecessary changes for developers who are happy with [contractkit](https://www.npmjs.com/package/@celo/contractkit) in its current format, while balancing that with ensuring our team can minimize maintenance work across developer tools and focus on providing access to Celo’s unique features

We would love to understand the many ways you use [contractkit](https://www.npmjs.com/package/@celo/contractkit) to ensure we can satisfy your needs while improving the overall developer experience. To date, we successfully collected feedback at the [Wallet and Dapp Council](https://github.com/celo-org/celo-monorepo/discussions/10157#discussioncomment-5322068), but have been struggling to hear from more [contractkit](https://www.npmjs.com/package/@celo/contractkit) users.

## Next steps

If you are a [contractkit](https://www.npmjs.com/package/@celo/contractkit) user today, we would love to hear from you (!).

We’d love to learn more about how you use [contractkit](https://www.npmjs.com/package/@celo/contractkit) and specifically what problems it solves for you.

👉 We invite [contractkit](https://www.npmjs.com/package/@celo/contractkit) users to comment on this [Github discussion](https://github.com/celo-org/celo-monorepo/discussions/10222) or reach out via [devrel@celo.org](mailto:devrel@celo.org). You can also [schedule a call](https://calendly.com/arthur-clabs) if you would prefer speaking in-person.

Thank you very much!

The cLabs developer tooling team (@aaronmgdr, @dckesler, @nicolasbrugneaux, and @arthurgousset)
