Timelock UI : une interface open source pour utiliser TimelockController depuis le navigateur

Dans de nombreux protocoles Web3, les décisions importantes ne sont pas exécutées immédiatement. Les mises à jour de contrats, les changements de paramètres, les mouvements de trésorerie ou les actions de gouvernance passent souvent par une période d’attente avant de pouvoir être exécutés on-chain.
Ce délai n’est pas accidentel : c’est une couche de sécurité.
Les timelocks permettent de programmer une opération on-chain avant son exécution, afin de laisser aux équipes le temps de vérifier l’action, de détecter d’éventuelles erreurs, de réagir à des changements inattendus ou d’annuler une opération si quelque chose ne semble pas correct.
Pour faciliter ce processus, l’équipe de Stakely a développé Timelock UI, une interface minimaliste, open source et agnostique en matière de réseau, qui permet d’utiliser n’importe quel contrat OpenZeppelin TimelockController directement depuis le navigateur.
L’outil est disponible sur timelock.stakely.io, et son code peut être consulté dans le dépôt public Stakely/timelock-ui.
Qu’est-ce que Timelock UI ?
Timelock UI est une application frontend qui permet de programmer, surveiller, exécuter et annuler des opérations timelock sur des réseaux EVM.
L’idée est simple : connecter un wallet, saisir l’adresse d’un contrat TimelockController et opérer depuis une interface claire, sans backend, sans configuration complexe et sans dépendre de déploiements prédéfinis.
L’outil est conçu pour les équipes qui travaillent avec des contrats de gouvernance, des multisigs, des DAOs, des protocoles ou tout système utilisant un TimelockController d’OpenZeppelin comme couche de sécurité pour des opérations sensibles.
Pourquoi une interface pour timelocks est utile
Le flux classique d’un timelock peut sembler simple sur le papier :
schedule -> wait delay -> execute
En pratique, utiliser ce type de contrat implique souvent de vérifier le calldata, de suivre l’état des opérations, de contrôler les périodes d’attente, de confirmer les rôles et de coordonner l’exécution avec le wallet ou la multisig concernée.
Timelock UI réduit cette friction en proposant une interface visuelle pour suivre le cycle complet d’une opération :
-
Schedule : programme une opération en envoyant une transaction
schedule()avec le contrat cible, le calldata et le délai correspondant. -
Wait : permet de suivre la période d’attente jusqu’à ce que l’opération passe de
WaitingàReady. -
Execute : exécute l’opération une fois le délai écoulé, si le compte connecté dispose du rôle requis.
-
Cancel : annule une opération si le compte connecté dispose du rôle
CANCELLER_ROLE.
Cela rend les opérations timelock plus lisibles, en particulier lorsque plusieurs membres d’une équipe doivent vérifier ou coordonner une action avant son exécution.
Un outil agnostique en matière de réseau et de contrat
L’un des aspects les plus importants de Timelock UI est qu’il n’est pas limité à un réseau spécifique ni à des contrats hardcodés.
L’interface permet de travailler avec :
-
Ethereum mainnet.
-
Sepolia.
-
Hoodi.
-
Des L2 compatibles EVM.
-
Des réseaux personnalisés via configuration RPC.
-
Tout contrat compatible avec OpenZeppelin
TimelockController.
Cela rend l’outil utile aussi bien pour les équipes opérant en mainnet que pour les protocoles travaillant sur des testnets, des environnements de staging ou des réseaux EVM moins courants.
Au lieu de dépendre d’une intégration fermée, l’utilisateur peut ajouter le réseau et le contrat dont il a besoin.
Sans backend et non custodial
Timelock UI fonctionne entièrement depuis le navigateur.
Il n’y a pas de backend propriétaire qui stocke les opérations ou gère des identifiants. L’état est conservé dans localStorage, sous le namespace tl-ui:*, et toutes les interactions on-chain sont réalisées via le wallet connecté.
Cela signifie que :
-
L’application ne conserve jamais les clés privées.
-
Chaque transaction doit être signée par le wallet de l’utilisateur.
-
L’état local peut être réinitialisé en supprimant les données du site.
-
L’outil peut être auto-hébergé sur une instance propre à l’équipe.
Cette approche convient particulièrement aux équipes qui souhaitent réduire les dépendances externes lorsqu’elles opèrent une infrastructure critique ou des contrats de gouvernance.
Pas de vendor lock-in : vous pouvez aussi l’auto-héberger
Bien que Stakely maintienne une démo publique sur timelock.stakely.io, Timelock UI peut également être déployé sur une infrastructure propre.
Le projet est une application frontend construite avec Vite, React, TypeScript, wagmi, viem, RainbowKit et TailwindCSS. Il n’inclut ni Solidity ni backend, ce qui simplifie la revue technique comme le déploiement.
Une équipe peut cloner le dépôt, installer les dépendances, générer le build de production et servir le dossier résultant via Vercel, Netlify, Nginx, IPFS ou un autre hébergeur statique.
Synchronisation des opérations depuis la chain
Une autre fonctionnalité importante est la possibilité de synchroniser des opérations qui n’ont pas été créées depuis l’interface elle-même.
Grâce au bouton Sync chain, Timelock UI scanne les événements CallScheduled du contrat afin de détecter les opérations programmées directement on-chain ou depuis d’autres outils.
L’interface peut ainsi être utilisée non seulement pour créer de nouvelles opérations, mais aussi pour surveiller des timelocks existants, même si l’équipe n’a pas utilisé Timelock UI dès le départ.
À qui s’adresse Timelock UI ?
Timelock UI peut être utile pour :
-
Les DAOs qui exécutent des actions via des timelocks.
-
Les protocoles avec gouvernance on-chain.
-
Les équipes techniques qui gèrent des mises à jour de contrats.
-
Les multisigs qui doivent coordonner des opérations sensibles.
-
Les équipes d’infrastructure qui veulent surveiller des opérations programmées.
-
Les builders qui travaillent avec OpenZeppelin
TimelockControllersur différents réseaux EVM.
Dans tous ces cas, l’outil permet de rendre plus visible et plus simple à opérer un processus qui reste souvent réparti entre scripts, explorers, calldata et documentation interne.
Une contribution supplémentaire au tooling open source de Stakely
Chez Stakely, nous opérons de l’infrastructure blockchain sur de nombreux réseaux Proof-of-Stake, mais nous pensons aussi que l’adoption passe par la création d’outils pratiques pour les autres équipes de l’écosystème.
Timelock UI suit cette même logique : un outil ouvert, spécifique et léger, conçu pour répondre à un besoin réel des équipes qui travaillent avec des contrats critiques.
Il ne remplace pas les processus internes de sécurité d’un protocole, mais fournit une couche visuelle et accessible pour opérer des timelocks avec plus de clarté.
Vous pouvez tester l’outil sur timelock.stakely.io ou consulter le code sur GitHub.





