> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperlane.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# ISM Overview

Hyperlane is secured by Interchain Security Modules (ISMs). ISMs are smart contracts that are responsible for verifying that interchain messages being delivered on the destination chain were on the origin chain.

```mermaid theme={null}
flowchart LR
    subgraph Destination Chain
      ISM[InterchainSecurityModule]
      Recipient[Recipient]
      M_D[(Mailbox)]

      M_D -- "verify(metadata, message)" --> ISM
      ISM -. "interchainSecurityModule()" .- Recipient
      M_D -- "handle(origin, sender, body)" --> Recipient

    end
```

## Core Concepts

### Default vs Custom ISM

Developers can either use the [Mailbox's](/docs/protocol/core/mailbox) default ISM or specify their own application-specific ISM.

Application-specific ISM can be:

* **Configured**: Use pre-built ISMs with custom parameters
* **Composed**: Combine multiple ISMs together like security "legos"
* **Customized**: Create entirely new ISMs tailored to specific needs

<Note>
  The "default ISM" refers to the pre-configured security module on the Mailbox
  contract (that is the Multisig ISM) which is used when applications don't
  specify their own custom ISM.
</Note>

#### Configure

Hyperlane defines a set of [pre-built ISMs](#standard-isms). Developers can deploy any of these contracts "off-the-shelf" and configure them with their own parameters.

For example, application developers that want increased sovereignty over interchain security could deploy a [Multisig ISM](/docs/protocol/ISM/standard-ISMs/multisig-ISM) configured with validators sourced from their own community.

#### Compose

ISMs act as "security legos". Developers can mix and match different ISMs together to encode a security model that best fits their needs.

For example, application developers that want additional security could deploy an [Aggregation ISM](/docs/protocol/ISM/standard-ISMs/aggregation-ISM) that requires verification by both a [Multisig ISM](/docs/protocol/ISM/standard-ISMs/multisig-ISM) configured with validators from the Hyperlane community, **and** a Wormhole ISM that verifies that a quorum of the [Wormhole](https://wormhole.com/) validator set verified the message.

#### Customize

ISMs are fully customizable. Developers can write their own ISMs, tailoring them to the needs of their application.

For example, application developers can build ISMs that adjust security models based on message content. High value and infrequent messages (e.g. governance) could be verified by a security model that prioritizes safety over latency and gas costs. Lower value and more frequent messages could be verified by a security model that prioritizes latency and gas costs over safety.

<Tip>Learn how to [Create your own ISM](/docs/protocol/ISM/custom-ISM)</Tip>
