CLIENT: Loodemaa Labs🇪🇪Estonia

Kindlus - Smart Contract Admin Console with Reviewed, Simulated and Multi-Signed Changes

Smart Contract Operations Console for an Estonian Web3 Infrastructure Company

Designed and built a clickable smart contract admin console for a Tallinn infrastructure company that serves protocol teams and token issuers: a registry of deployed contracts across chains, a role map that flags single keys with admin power, and a queue where every upgrade, role change, parameter change or pause is reviewed, simulated and signed through a Safe and a timelock.

Scope of Work
Product design, UI build and clickable demo
Industry
Web3 / Smart Contract Admin
Web3SaaSEnterprise
Compliance & Certifications
MiCADORAGDPR

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, contracts registry, role map with matrix and graph views, the proposed actions queue and action detail. Every one of the 19 demo actions opens its own detail page.

6 Stages
From draft to executed

Each privileged change moves through Draft, Review, Approved, Signatures, Timelock and Executed, with the date each stage was reached, the Safe signature count and a live timelock countdown.

5 Risk Checks
On the role map

EOAs with admin power, Safes below the 3 of 5 workspace minimum, roles with no holder, holders missing from the address book and upgrades with no timelock. EOA cells with admin or upgrade power get a red outline.

18 Contracts
Realistic demo data

18 registered contracts on 5 mainnets and Sepolia, 8 admin accounts (Safes, a 48 h timelock, EOAs and a relayer contract), 9 team users and 19 proposed actions across all 10 statuses.

The Problem

Loodemaa Labs' customers ran their admin work from Safe tabs, block explorers, Foundry scripts on engineers' laptops, a spreadsheet of who holds which key and alerts posted to a Slack channel nobody owned. An upgrade meant one engineer building calldata by hand and hoping the signers checked it, nobody could say which contracts a single hot wallet could still upgrade, and one customer took 41 minutes to pause a contract during a live exploit because the signers could not find the right calldata.

Our Solution

Kindlus keeps one registry of every deployed contract across chains, maps who holds which admin role, and turns every privileged change into a proposal with decoded calls, a simulation, an approval policy, Safe signatures and a timelock. The emergency pause path sits in the top bar, and Kindlus never holds a customer's signing keys.

The Challenge: Admin Power Spread Across Keys and Chains

A token issuer or protocol team runs the same contracts on several chains, each with its own proxies, roles, Safes and timelocks. Every change has to be prepared, checked and signed the same way, and the emergency path has to work under pressure.

Nobody Knew Who Held Power

Contracts use OpenZeppelin Ownable or AccessControl roles, and unless a contract is enumerable the current holders have to be rebuilt from RoleGranted and RoleRevoked events. Finding an EOA that could still upgrade a contract took an afternoon.

Calldata Signers Could Not Read

Upgrades through transparent, UUPS or beacon proxies, role grants and parameter changes were built by hand and posted in chat. Signers saw raw hex in their wallet and had no simulation, storage layout check or audit status next to it.

Four Eyes on Every Mainnet Change

The proposer cannot be the only approver, and both the Safe threshold and the workspace approval policy apply. Many changes also pass a timelock delay so users can see them coming, while pauses stay outside it with a guardian Safe.

Regulated Customers, Unregulated Tool

Kindlus is not a regulated crypto-asset service, but its customers may be e-money or asset-referenced token issuers under MiCA, or financial entities under DORA. They need an audit trail and change history they can show, without Kindlus deciding their compliance.

Our Approach: From Admin Rules to a Clickable Console

01

Spec and Rules Research

Mapped 8 user roles from workspace owner and signer to guest auditor, 39 screens including a mobile signer review page and a public transparency page, and the data model for contracts, role assignments, admin accounts, proposed actions, simulations, Safe transactions, timelock operations, deployments, monitors, incidents and a hash-chained audit trail. Wrote down the rules the design follows: role-based access control, multisig admin keys, ERC-1967 proxies, timelocks, four-eyes change management, MiCA, DORA and GDPR.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production Web3 dashboard kit: the dashboard with KPIs, my work, timelock countdowns and alerts by severity, the contracts registry with a quick view panel, the role map with matrix and graph views and an address panel, the proposed actions queue, and action detail with decoded calls, route diagram, upgrade checks, simulation diff viewer, policy check and Safe signatures. Network scope chips, the incident banner and the emergency pause panel work across the shell.

03

What a Production Build Adds

Integration with RPC and archive nodes (such as Alchemy, Infura or QuickNode), Etherscan and Sourcify, the Safe Transaction Service, WalletConnect, Tenderly simulation, monitoring feeds such as Forta or OpenZeppelin Monitor, Slack and PagerDuty routing, GitHub Actions or GitLab CI deployment records and Immunefi. SSO with SCIM, an append-only hash-chained audit trail, and the remaining screens: the action builder, Safe transactions, timelock queue, monitoring and incidents with runbooks, audits and findings, reports, the signer review page and the public transparency page.

Why It Works: Every Change Checked the Same Way

Single Keys Stand Out

The role map lists every holder against every contract, coloured by admin, upgrade, emergency or operational power. A deployer laptop key holding DEFAULT_ADMIN_ROLE shows a red outline, and the fix is a proposal to grant the role to the timelock and then revoke it from the EOA.

Signers See What They Sign

Each call is decoded with labelled addresses, role names and token amounts, with the raw calldata behind a toggle. The Safe transaction hash is shown so signers can compare it with what their own wallet displays.

Checks Next to the Change

Upgrades show the deployment from CI, the bytecode match, the storage layout check and audit coverage. The simulation shows its block, gas and state diff and turns stale after the policy limit, and the policy check names the rule that applies.

The Emergency Path Is Ready

A pause shortcut sits in the top bar for users with incident rights, an open incident shows as a red banner in the sidebar, and emergency pauses take the guardian Safe route with no timelock instead of the 48 h delay.

Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab