Making systems secure from the ground up

OKcontract Labs advances research in verifiable interfaces, transaction security, and resilient software.

  • We make critical operations inspectable and enforceable even when an interface, backend, or administrator fails.
  • Our long-term view is that blockchains can become a fortified execution layer for onchain actions first, and eventually for critical operations across the internet.
Cloud
Onchain execution

Chainwall

Execute only the actions you approve.

Treasury, protocol, vault, and smart-account teams define who can act, which contracts and assets they can use, and what approval each action requires. Chainwall stores those settings in contracts and reads the current state again at execution.

Smart contracts require the submitted function, arguments, value, deadline, operator, and account to match the approved action before a protected account calls the protocol. Cells powers the console's live application state, LambdaScript provides typed formulas and programs, and MiniScript defines the onchain workflows that Chainwall executes.

Explore Chainwall
Chainwall transaction execution pathOperators, interfaces, and automation prepare an action. Chainwall checks current approved settings, the exact action, allowed calls, and the protected account before the protocol call runs. Select any part for an explanation.PREPARECHECKED ONCHAINEXECUTEPERSONOperatorINTERFACEChainwallweb portalSDK / BOTAutomationAPPROVED CATALOGOnchain registryLIVE APPROVALExact action+ policyALLOWED CALLSApproved workflowBYPASS BLOCKEDProtected accountSMART ACCOUNTSafe orvaultTARGETProtocolall checks passed

Scroll to explore the diagram →

Approved catalog

Define precisely what is allowed

Create trusted, programmable onchain action templates for protocol calls, transfers, governance actions, and vault operations.
Chainwall transaction execution path. Contracts check a prepared action against the current approved catalog and policy before the protected account calls the protocol.

oksolc

Get the same compiler output faster.

oksolc compiles Solidity in Zig with byte-for-byte compatible solc output, using parallel compilation and cached work to shorten the wait after each edit.

Uniswap V4

Full compilation

5.3×faster

solc · serial
59.02 s
oksolc · 4 jobs
11.18 s

Seconds · lower is better

Pendle V2

Recompile after a small edit

27.6×faster

solc · serial
38.89 s
oksolc · 4 jobs
1.41 s

Seconds · lower is better

Chainwall

Full compilation

5.1×faster

solc · serial
709.84 s
oksolc · 4 jobs
138.42 s

Seconds · lower is better

Our published benchmarks compare serial solc with four-job oksolc for the same sources, compiler settings, and compiler output. Pendle V2 measures recompilation after a small edit with cached work. See the full results.

Put your CPU cores to work

Compiling independent contracts in parallel with four jobs brought full builds of both Uniswap V4 and Pendle V2 to more than five times the speed of serial solc in our benchmarks.

Reuse work after every edit

Incremental compilation keeps earlier compiler work available, with SQLite backing the persistent cache. A small change to Chainwall recompiled in 17.2 seconds with four jobs.

Explore as you build

Use oksolc with Foundry, watch sources as you edit, and browse definitions, diagnostics, and bytecode locally. The Zig codebase opens room for experiments in compiler features and language design.

The GPLv3 project builds on the work of Solidity contributors and our team's experience in compilers and formal verification.

Vitalik Buterin speaking about OKcontract at Ethereum Community Conference
“A more specialized and more focused way to secure onchain interactions.”

Vitalik Buterin

Cells

Model async state as a graph.

Cells is the 10 kB TypeScript dataflow runtime behind our products, starting with Chainwall. A Sheet connects writable and computed values, waits for promises, propagates errors, ignores obsolete results, and follows dependencies that change at runtime.

Graph settled

Change either value.

Cells waits 620 ms after typing stops, then resolves the sum after 240 ms. The last stable result remains readable while the next one runs.

Delayed sum
30

Published after the graph settled

debouncer(620) → delayed(a + b, 240)

LambdaScript

Turn a formula into a live, typed part of your application.

LambdaScript is the core language for customizing Chainwall policies and interactions. It compiles formulas written by users or loaded from configuration into Cells, so each result stays connected to every input that can change.

λscript

Compiling typed graph

Compiling the expression into Cells…

Start with the call that must be allowed

A security claim is useful when another team can inspect the rule, reproduce the test, and see what remains outside the check.

  1. 01

    Write down the exact call.

    Name the contract, function, arguments, value, account, deadline, and the person or program allowed to request it.

  2. 02

    Put the decisive check near execution.

    Use deterministic code or a smart contract so an interface, backend, or operator cannot replace the approved call before it runs.

  3. 03

    Publish what passed and what remains.

    Publish tests, assumptions, known failures, and every person, service, contract, and dependency that users must still trust.

Supported by
NVIDIA InceptionProtocol LabsLongHash VenturesSparkle VenturesOptimismStarknetCompoundNVIDIA InceptionProtocol LabsLongHash VenturesSparkle VenturesOptimismStarknetCompound