Skip to content

Mero.js

The JavaScript client for Calimero 1.0, the confidential cloud. It checks that a node is a genuine TEE running a signed release, seals every request to it, and signs people in with passkeys. From the browser or Node.

Get Started

Install the package, connect to a cluster, create an account with a passkey and call an app. Quickstart →

Understand

What the client checks before it sends anything, and how one request travels. Read the overview →

Reference

Every CalimeroClient method and the route it calls, the typed errors, and what replaced the v1 client. Open the reference →

import { CalimeroClient, browserPasskey } from '@calimero-network/mero-js';
const client = new CalimeroClient({
baseUrl: 'https://eu1.cloud.calimero.network',
policy: { release: { minReleaseVersion: '2.3.109' } },
});
await client.signIn(browserPasskey());
const { result } = await client.view(appId, 'get', { key: 'a' });

Every request goes through the same three steps:

  1. Attest. GET /attestation returns the node’s TDX quote. The client verifies it in the page (Intel’s signature chain, TCB status, the measurements of a signed mero-tee release) and that the quote binds the node’s transport key and a fresh nonce.
  2. Seal. The client opens a Noise NK session to that key and encrypts the request, credentials included, end to end to the enclave.
  3. Authorize. The node checks the session token or API key inside the envelope, and routes the call to the app’s replicated log.

The node side is Calimero Core 1.0 (merod); this package is byte-compatible with core’s calimero-sealed and calimero-client.