seal

For the complete documentation index, see llms.txt

Seal supports two server types for key management: Decentralized (committee mode) and Independent.

Decentralized server type

A decentralized server appears onchain as a single logical key server — one object ID and public key — while internally being operated by a committee of multiple independent providers coordinating through threshold cryptography. The committee maintains a stable public key with rotatable membership, allowing operators to be added, removed, or replaced over time without client updates or data re-encryption.

Behind the scenes, operators participate in a Distributed Key Generation (DKG) ceremony that produces distributed key shares. Each operator runs a key server that holds only its partial share. When a client requests a decryption key, the request flows through an aggregator, which collects encrypted partial responses from operators and combines them into a single encrypted result. The client then decrypts the final key locally.

Importantly, no single operator ever holds the full master key. The aggregator cannot decrypt data. And the public key exposed onchain remains stable even if membership changes.

Distributed trust becomes infrastructure-native, while your integration remains unchanged.

How it works

Open deployment

Aggregator gateway

Key properties

Use cases

Independent server type

Independent servers are operated by a single entity. They offer two modes: Open, which anyone can use for any package, and Permissioned, which provides per-client access control with approved package IDs.

How it works

An independent server is registered with one object ID and one server URL. Clients configure the threshold and communicate directly with the key servers. Each independent server counts as one server in your threshold configuration. Changing the selection of key servers requires re-encryption of existing data, since public keys change.

Open mode

Permissioned mode

Key properties

Open mode

Permissioned mode

Use cases

Open mode

Permissioned mode

Next steps

For client usage, see Using Seal to learn how to integrate different Seal server types into your application.

For server operators: