Connect · one check, every identity

One check. Every identity.

Any company, any platform, any agent, any model, any person. Whatever identifier a counterparty holds, one call returns one signed ALLOW or REFUSE. Link every identity you hold to your proof once, and your proof follows you everywhere.

Domains, APIs, agent endpoints, code, models, keys. And every chain, through adapters: MIZAN belongs to none.

ICheck any identity

Paste anything. Get one signed answer.

A company domain, an API, an MCP server, an A2A agent card, a GitHub account, a Hugging Face model, an npm or PyPI package, an SSH key. A wallet too. MIZAN reads what it is, resolves it to its owner's proof, and signs the answer.

IIEvery world, one subject

15 kinds of identity link today. Each by proving control.

An identifier joins your subject only when you prove you control it, with the method native to its world: a DNS record for a company, a file for a service, a publish for a package, a signature for a key. Nothing is inferred, and nothing is linked for you.

Landing next: sign-in platforms (Google, Microsoft, LinkedIn, X, Discord, Slack, Okta), work email, passkeys for people, legal entities by LEI, brokerage and exchange accounts through a read-only key, and more chains. The live list is always at GET /api/link/kinds.

IVContracts

Every chain reads it. We deploy nothing.

The same proof, signed for each chain's own verifier: one ecrecover on EVM chains, native ed25519 on Solana, Sui, Aptos, NEAR, Stellar, TON and the rest. Import one library, add one check, and your contract refuses capital to anything unproven. No oracle, no call to MIZAN.

Solidity · your contractlive
import {MizanProof, MizanGated} from "./MizanProof.sol";

contract Vault is MizanGated {
  function allocate(address agent,
      MizanProof.Receipt calldata r, bytes calldata sig)
    external onlyProven(agent, r, sig) { … }
}
The receiptone call, or stapled
GET /api/staple/0xAgentWallet
→ receipt   (agents verify offline)
→ eip712[]  (contracts verify on-chain)

# same answer, two signatures
# issued only while the owner passes
Rust · NEAR, Stellar, CosmWasm, MultiversX, ICP, Solanano_std · wasm
use mizan_onchain::{verify_with, kind};

// the chain's own ed25519 verifier does the math
verify_with(&receipt, &sig, kind::NEAR, caller.as_bytes(), now,
            |k, m, s| env::ed25519_verify(s, m, k))?;
On-chain cost

~9,000 gas

to verify one receipt: one ecrecover, measured in Foundry.

One conformance suite

42 of 42

vectors pass in Python and JavaScript; Solidity and Rust pass every vector in their format. The same 31 bad receipts (expired, tampered, malleable, wrong key, wrong subject) are refused everywhere. The vectors · GET /api/interop/conformance

Libraries (MIT): MizanProof.sol · ProvenPayout.sol · mizan-onchain (Rust). Every chain receipt uses one fixed 86-byte layout (mizan-compact/1), so contracts parse it with no JSON. The signer is published in /.well-known/mizan-keys.json. Receipts last 24 hours, state a fact about an identity, and authorise nothing.

VThe top 100 chains

Every one of them. One answer.

Ranked live by DeFi value locked (DefiLlama). For each chain: how a smart contract reads a MIZAN proof, and whether its wallets link today.

See all 100 chains
#ChainContracts read MIZAN throughWallet link
Loading the live list…

Source: GET /api/chains. MIZAN integrates signature curves, not chains: secp256k1 and ed25519 cover every programmable chain on this list. Where a chain has no general smart contracts, agents, wallets and platforms verify the receipt off-chain.

VIThe rules

Consent in. Proof out.

Consent

Proven control only

An identifier links only by a signature or a published nonce from its owner. A declared link is shown, never trusted: it cannot turn a check into ALLOW.

Control moves with the key

The key decides

If another identity proves control of the same key, the link moves to it and the change is logged. You can unlink any time.

Privacy

A hash in the log

Each link writes one leaf to the Bitcoin-anchored log carrying a hash of the identifier, never the identifier.

Neutral

Belongs to no platform

MIZAN never holds funds and belongs to no platform, protocol or chain. Every one of them reads the same signed answer.

Staple your proof · The check · Require it