Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d5dd1ff
docs(website): add Use Cases section with Wallet integration guide
dalibran Apr 14, 2026
7582fe1
docs(website): fix prettier formatting on wallet use case pages
dalibran Apr 14, 2026
560989e
docs(website): fix Discord button icon/text alignment
dalibran Apr 14, 2026
90ae569
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
b9aab97
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
1828f71
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
5994434
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
c7d80b7
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
ebdff23
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
2239a8e
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
fbb0d4d
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
c867cbd
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
fe0790e
Update docs/website/root/use-cases/wallets.mdx
dalibran Apr 17, 2026
0e35084
Refine Light Wallets use case page and navbar
dalibran Apr 17, 2026
5d25ca2
Trim wallet page security admonition and mobile bindings note
dalibran Apr 23, 2026
2285d60
docs(website): add Bridges use case page
dalibran May 13, 2026
69a3bd4
docs(website): add Daedalus case study page
dalibran May 13, 2026
30aee05
Update docs/website/root/case-studies/daedalus.mdx
dalibran May 14, 2026
b42f3f3
Update docs/website/root/use-cases/bridges.mdx
dalibran May 14, 2026
65dccb7
docs(website): restructure Wallets use case with card landing
dalibran May 14, 2026
8939ec1
docs(website): refine bridges page integration guidance and finality …
dalibran May 20, 2026
61bf30c
docs(website): add sync timing to Daedalus case study, tidy punctuation
dalibran May 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions docs/website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,14 +240,31 @@ const config = {
type: "doc",
docId: "manual/welcome",
position: "left",
label: "User manual",
label: "Manual",
},
{
type: "doc",
docId: "mithril/intro",
label: "About Mithril",
label: "Protocol",
position: "left",
},
{
type: "dropdown",
label: "Use Cases",
position: "left",
items: [
{
type: "doc",
docId: "use-cases/wallets/index",
label: "Wallets",
},
{
type: "doc",
docId: "use-cases/bridges",
label: "Bridges",
},
],
},
{
type: "docsVersionDropdown",
position: "right",
Expand Down
46 changes: 46 additions & 0 deletions docs/website/root/case-studies/daedalus.mdx
Comment thread
dalibran marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
id: daedalus
title: Daedalus
sidebar_label: "Case Study: Daedalus Wallet"
---

# Daedalus: faster initial sync with Mithril

<div
style={{
display: "flex",
flexDirection: "column",
alignItems: "center",
gap: "0.5rem",
margin: "0 auto 2rem",
}}
>
<img src="/doc/img/daedalus-logo.svg" alt="Daedalus logo" width="180" />
<div
className="daedalus-wordmark"
style={{
fontFamily: "'Montserrat', sans-serif",
fontWeight: 300,
fontSize: "1.5rem",
letterSpacing: "0.15em",
textTransform: "uppercase",
margin: 0,
}}
>
Daedalus <strong style={{ fontWeight: 600 }}>Wallet</strong>
</div>
</div>

[Daedalus](https://daedaluswallet.io/) is a full-node Cardano wallet, supported by Input Output. In its 8.0.0 release, Daedalus integrated Mithril bootstrapping to dramatically reduce the time required for a fresh installation to start using the wallet for the first time.

## The problem

Daedalus runs a full Cardano node locally. On first install, that node must sync the entire Cardano blockchain from genesis, replaying every block. Even on modern hardware, this usually takes more than 24-36 hours, historically a major friction point for users picking up a full-node wallet.

## How Mithril helps

Fresh installations of Daedalus now download a Mithril-certified snapshot of the Cardano node database and restore it locally, rather than replaying the chain. The snapshot's integrity is verified against the Mithril certificate chain, anchored in Cardano's stake distribution, so users get the same trust guarantees as a chain-replayed node, without the wait. In practice, this brings the initial sync down to roughly 30 minutes to an hour, depending on hardware and internet connection.

## What's next

The current integration covers fresh installations. Partial sync resumption via Mithril, using snapshots to fast-forward a wallet that has been offline for a while, is planned for a future release.
96 changes: 96 additions & 0 deletions docs/website/root/use-cases/bridges.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
id: bridges
title: Bridges
sidebar_label: Bridges
---

# Using Mithril for bridges
Comment thread
dalibran marked this conversation as resolved.

## For bridge developers

A bridge is only as secure as the data it acts on. When a relayer or validator authorizes a mint on a destination chain, it is asserting that a corresponding lock or burn really happened on Cardano. Today, bridges learn about Cardano state in one of a few ways: by querying a centralized API, by relying on a federation of trusted nodes, or by running a full Cardano node. The first two options place trust in infrastructure that can be compromised, and a compromise can lead to unauthorized mints. Running a full node avoids that trust assumption, but at a real cost: a fully synced Cardano node requires substantial compute, storage, and ongoing operational effort.

Mithril offers a fourth option: cryptographic proof that a Cardano transaction was included, backed by a stake-weighted quorum of SPOs, that the bridge can verify independently — without trusting a third party, and without operating a full node.

:::info

Before integrating, review the [Protocol security](/mithril/advanced/mithril-protocol/security) page to understand the protocol's guarantees.

:::

### What Mithril provides for bridges

When a user locks assets on Cardano, the bridge needs to confirm that the lock transaction was included on-chain before authorizing the corresponding action on the destination chain. With Mithril, the bridge can verify this using a Merkle proof linked to a certificate signed by a stake-weighted quorum of SPOs. The proof can be checked locally, without trusting the source of the data.

This changes the bridge's security posture. The integrity of cross-chain transfers no longer depends on the honesty of any single data provider or on the operational security of any one node. A compromised API, a misconfigured indexer, or a hostile relayer cannot produce a valid Mithril proof. If verification fails, the bridge treats the underlying Cardano transaction as unconfirmed and does not authorize the corresponding action on the destination chain.

Crucially, the bridge gets this assurance from a lightweight client. The proof is fetched and verified on demand, with no full Cardano node to sync, store, or operate. For bridge teams, that means the most secure verification path is also the cheapest one — there is no longer a trade-off between trust assumptions and infrastructure overhead.

### How it fits into existing bridge architectures

Most bridges have an off-chain component — relayers, validators, or watchers — that observes events on the source chain and submits attestations to the destination chain. Mithril does not replace this component. It strengthens it: instead of trusting whatever endpoint the relayer happens to query, the relayer verifies a Mithril proof against the current certificate chain before treating a Cardano transaction as certified.

This preserves the existing architecture while removing the implicit trust placed in centralized infrastructure. For bridge designs that already rely on a multi-signature or threshold scheme among relayers, Mithril provides an additional, independent check rooted in Cardano's stake distribution — making collusion among relayers insufficient to forge a transfer if proofs are verified.

### Integration

Bridge relayers, validators, and watchers typically run as server-side services, so most bridge teams will integrate via the [Rust client library](https://crates.io/crates/mithril-client) or the [Mithril client CLI](https://mithril.network/doc/manual/develop/nodes/mithril-client). The library is the most direct path for native services that want to embed proof verification in their existing process; the CLI is a good fit for teams that prefer to shell out from a relayer written in another language.

A [WASM package](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm) is also available for any browser-facing component of the bridge (e.g. a status dashboard or user-facing transfer UI that verifies proofs client-side).

The core flow is straightforward:

1. Observe the lock or burn transaction on Cardano
2. Query the Mithril aggregator for a transaction proof of membership once the transation hash is known
3. Verify the proof against the current Mithril certificate chain
4. Apply your finality criteria, then authorize the corresponding action on the destination chain.

Proofs are generated approximately every 30 blocks. Mithril certifies that a Cardano transaction was included, but the bridge decides how many additional confirmations to require before acting on it. Under the current [Cardano transaction certification](/mithril/advanced/mithril-certification/cardano-transactions), certification runs around 100 blocks behind the chain tip — generally sufficient for smaller transfers, but bridge teams may want a wider margin for high-value ones.

Under the upcoming [Cardano blocks and transactions certification](/mithril/advanced/mithril-certification/cardano-blocks-and-transactions), each proof carries a depth from the chain tip at snapshot time, so the bridge can pick its own threshold per transfer. Bridge teams should factor this into their finality model and user-facing expectations around transfer latency.

### Questions?

Have a question during integration? Reach out in the [#ask-mithril](https://discord.gg/5kaErDKDRq) channel on the IOG Discord — the team is active there and happy to help.

<a
href="https://discord.gg/5kaErDKDRq"
target="_blank"
rel="noopener noreferrer"
style={{
display: "inline-flex",
alignItems: "center",
gap: "8px",
backgroundColor: "#5865F2",
color: "white",
height: "40px",
padding: "0 20px",
borderRadius: "8px",
textDecoration: "none",
fontWeight: "bold",
marginTop: "4px",
marginBottom: "1rem",
lineHeight: "40px", // fixes vertical alignment
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 127.14 96.36"
width="20"
height="20"
fill="white"
style={{ display: "block", flexShrink: 0 }}
>
<path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z" />
</svg>
<span>#ask-mithril</span>
</a>

## For bridge users

When a bridge supports Mithril, cross-chain transfers from Cardano are more secure. Whether you interact with the bridge directly, or through a wallet or cross-chain DEX aggregator (e.g. 1inch) that abstracts the swap behind a simpler interface, the underlying assertion is the same: that your Cardano transaction was actually included on-chain before the bridge took action on the other side.

With Mithril, that assertion is backed by a cryptographic proof signed by a stake-weighted quorum of Cardano's stake pool operators, rather than by the bridge's own infrastructure. This means a transfer cannot be authorized on the basis of a compromised API, a faulty indexer, or a single dishonest operator — the proof would simply fail to verify.

**Does my bridge support Mithril?**
Mithril integration is still being adopted across the ecosystem. Check the bridge's release notes or documentation, or contact the support team. Developers building a bridge can refer to the section above.
34 changes: 34 additions & 0 deletions docs/website/root/use-cases/wallets/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: Wallets
sidebar_label: Wallets
---

import Link from '@docusaurus/Link';

# Mithril for wallets

Cardano wallets come in two broad shapes: **light wallets** that delegate ledger storage to hosted infrastructure, and **full-node wallets** that run a Cardano node locally. Mithril improves user experience for both — in different ways.

For **light wallets**, Mithril enables trustless verification of transaction inclusion. Instead of trusting a hosted API response, a wallet verifies a stake-weighted Mithril proof locally — preserving familiar infrastructure while adding a cryptographic guarantee.

For **full-node wallets**, Mithril dramatically shortens the time to a usable wallet on first install. Rather than replaying the chain from genesis, the wallet bootstraps from a Mithril-certified snapshot of the Cardano node database, with the same trust guarantees as a chain-replayed node.

<div className="wallet-card-grid">
<Link to="/use-cases/wallets/light-wallets" className="wallet-card">
<div className="wallet-card__content">
<h3>Light wallets</h3>
<p>An integration guide for light wallets</p>
</div>
</Link>
<Link to="/case-studies/daedalus" className="wallet-card">
<div className="wallet-card__content">
<h3>Daedalus Wallet</h3>
<p>A full-node wallet case study</p>
</div>
<img
src="/doc/img/daedalus-logo.svg"
alt="Daedalus"
className="wallet-card__logo"
/>
</Link>
</div>
96 changes: 96 additions & 0 deletions docs/website/root/use-cases/wallets/light-wallets.mdx
Comment thread
dalibran marked this conversation as resolved.
Comment thread
dalibran marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
id: light-wallets
title: Light wallets
sidebar_label: Light wallets
---

# Using Mithril for light wallets

## For wallet developers

Cardano users expect fast, reliable confirmation that their transactions have landed. Traditionally, delivering that required either running a full node or trusting a third-party service. Mithril offers a third option: cryptographic proof of transaction inclusion, backed by Cardano's stake pool operators, that any wallet can verify independently.

:::info

Before integrating, review the [Protocol security](/mithril/advanced/mithril-protocol/security) page to understand the protocol's guarantees.

:::

### What Mithril provides for wallets

When a user submits a transaction, Mithril verifies that it was included on the Cardano blockchain without running a full node or relying on a centralized API. Instead of depending on a server response, the wallet receives a Merkle proof linked to a certificate signed by a stake-weighted quorum of SPOs. The wallet verifies this proof locally.

For users, this provides faster perceived finality. A wallet can present a meaningful ‘confirmed’ state earlier, with stronger guarantees than relying on block confirmations alone.

### How it fits into existing stacks

Most light wallets already rely on a hosted API or indexer for balance lookups and UTXO queries, such as Blockfrost or Koios. Mithril does not replace these services. Instead, it adds a trustless verification layer: rather than relying on a data provider to confirm that a transaction was included, the wallet can verify this cryptographically against a certificate chain secured by Cardano’s stake distribution.

This improves security. If a data provider is compromised or returns incorrect data, a Mithril proof will fail to verify, allowing the wallet to detect the discrepancy instead of presenting an incorrect state. A compromised API cannot produce a valid Mithril proof.

The result is an architecture that preserves existing components while reducing the level of trust required in third-party infrastructure.

### Integration

The easiest path for most wallet teams to integrate is using the official WASM package:

```bash
npm install @mithril-dev/mithril-client-wasm
```

It works in the browser and in Node.js. All major browsers are supported — see the [Browser Compatibility](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm#browser-compatibility) section of the npm package for details. A [browser integration example](https://github.com/input-output-hk/mithril/tree/main/examples/client-wasm-web) is available if you want to see it in action. A [Rust crate](https://crates.io/crates/mithril-client) is also available for native desktop applications.

The core flow is straightforward:

1. Submit the transaction as you normally would
2. Query the Mithril aggregator for a transaction proof once the tx hash is known
3. Verify the proof against the current Mithril certificate chain
4. Surface the confirmation to the user.

Proofs are generated approximately every 30 blocks, with certification operating around 100 blocks behind the chain tip to ensure finality. This should be considered when presenting confirmation status to users.

### Questions?

Have a question during integration? Reach out in the [#ask-mithril](https://discord.gg/5kaErDKDRq) channel on the IOG Discord — the team is active there and happy to help.

<a
href="https://discord.gg/5kaErDKDRq"
target="_blank"
rel="noopener noreferrer"
style={{
display: "inline-flex",
alignItems: "center",
gap: "8px",
backgroundColor: "#5865F2",
color: "white",
height: "40px",
padding: "0 20px",
borderRadius: "8px",
textDecoration: "none",
fontWeight: "bold",
marginTop: "4px",
marginBottom: "1rem",
lineHeight: "40px", // fixes vertical alignment
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 127.14 96.36"
width="20"
height="20"
fill="white"
style={{ display: "block", flexShrink: 0 }}
>
<path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z" />
</svg>
<span>#ask-mithril</span>
</a>

## For wallet users

If a wallet supports Mithril, transaction confirmations are faster and more reliable. Instead of relying on the wallet’s servers to confirm that a transaction was included, Mithril provides a cryptographic proof, verified against Cardano’s network of stake pool operators.

In practice, this reduces uncertainty around transaction status and provides greater confidence when a transaction is confirmed.

**Does my wallet support Mithril?**
Mithril integration is still being adopted across the ecosystem. Check the wallet’s release notes or documentation, or contact the support team. Developers building a wallet can refer to the section above.
13 changes: 13 additions & 0 deletions docs/website/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ const sidebars = {
dirName: "mithril",
},
],
useCasesSideBar: [
{
type: "category",
label: "Wallets",
link: { type: "doc", id: "use-cases/wallets/index" },
collapsed: false,
items: [
{ type: "doc", id: "use-cases/wallets/light-wallets" },
{ type: "doc", label: "Case Study: Daedalus Wallet", id: "case-studies/daedalus"},
],
},
{ type: "doc", id: "use-cases/bridges" },
],
};

module.exports = sidebars;
Loading
Loading