Insights & Learnings from our Guild.xyz integration
🔥Ambire🔥 means getting most creative when hitting a true challenge.
This is the story of how one simple solution can change a great deal for many.
As smart contract wallets made their way into the crypto scene, dApps were exploding and gave us a glimpse of what future Web3 could mean. Ambire was in the middle of it all: developed during 2021 and launched in December, we offered dApp connection from the get-go, via WalletConnect. The new year and our roadmap had us pumped 🚀
Yet as we gained more users, it became clear that there was a fundamental issue with some of the dApps not identifying smart (contract) wallet signatures. We started investigating, only to realize this was a recurring problem across our category — the same was happening to [Gnosis] Safe, Argent, Sequence etc. 😰
In short, some dApps are built without taking into account all signature formats, specifically those for smart contracts on Ethereum (namely smart contract on-chain verification).
The situation has two underlying issues, as we see it:
— back in 2020, smart contract wallets were a lesser known niche in the MetaMask & exchanges-dominated landscape of crypto wallets; devs just didn’t know 🤷
— the first also contributed to the second aspect, which was developers eager to build dApps without having full grasp of the Ethereum wallet space, with most developers only testing the dApps with MetaMask 🦊
Those factors grew to exclude smart contract wallet signature validations from a large number of dApps, such as OpenSea, Looksrare, Snapshot, Curve, Avalanche Bridge, Collab.land, Pangolin, dYdX, Loopring and many others.
However, in recent months we felt the winds changing 💨 Both online and at events we attended, we’re seeing the Ethereum community gradually embracing the power of account abstractions — and the possibilities they unleash for smart wallets 🎇
⏪Back to spring 20022 — we 🔥ambired-up 🔥and created a simple solution: an NPM library that enables universal EthSignature verification. ☑️
The library is open-source, easy to verify and audit — only 80 lines of code — and just as easy to implement.
- Standard message verification (eth_sign)
- 712 Typed data verification (eth_signTypedData_v*)
- 1271 Smart contract on-chain verification (isValidSignature)
- An optional smart contract signature off-chain verification (e.g. if the smart wallet is counterfactual and not deployed yet)
We shared it with our peers and by spring we were already pushing for dApps to integrate it — Guild.xyz was one of the first to implement easily.
Guild.xyz is one of the most popular tokenized membership platforms on Ethereum, designed to manage access and create layers for communities, in a decentralized approach: an infrastructure for platformless membership. So it’s a must for them to be easily available to as many users as possible.
When the proposal was raised in GuildDAO to integrate the Ambire Signature Library, they started realising their own code was also gatekeeping users🚪They were open to understanding the situation and less frightened of ‘security issues’, as we found in discussions with less Ethereum-versed organizations:
🗳 After the vote went through successfully, our team partnered-up with that of Guild for a smooth integration of the library and to ensure full Ambire Wallet support. The result is a clear success:
- Guild is now available to all Ethereum users, on 10+ chains, regardless of which type of wallet or asset management tool they are using 🥳
- Guild now has a smooth user journey for Ambire Wallet users 🔥
- the Ethereum community can now take full advantage of the 1M+ tokens, 100K+ NFT projects and tens of thousands of users and community members that Guild hosts 🎉
🔮 Next: we’re sure that more and more protocols will embrace our Universal Sig Lib and open-up to smart wallets also. It’s up to all of us to educate the industry about smart wallets, and now it’s also easy — after all, it’s obvious they are the future 😉
P. S. Hey, Ambire fam 🌈 here’s our short user guide for what to do when a dApp you want to use doesn’t support Ambire/smart wallet signatures:
- 📯Reach-out to the dApp team and let them know that their code excludes smart wallets like Ambire or [Gnosis] Safe, and share with them the solution: our Universal Signature Validator Library
- 🗣Give us a holler on any Ambire community channel so we can connect with the dApp team from our end to help speed integration
- ⏰Wait for integration announcement ➡️ enjoy the dApp using Ambire 🚀
P.P.S. If you’re a dApp developer, well… Vitalik says it best 😆: