Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Martinh/ntt sol reshape #257

Closed
wants to merge 81 commits into from
Closed
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
7631d34
fixes llms (#249)
albertov19 Feb 19, 2025
51794b6
add sendToEvm comment for consistency level optimizations (#252)
evgeniko Feb 24, 2025
fb34098
Ilariae/token bridge build (#246)
ilariae Feb 25, 2025
0670528
Update index page icons for consistency (#250)
eshaben Feb 25, 2025
f126cac
Martinh/goat chain (#253)
martin0995 Feb 25, 2025
3a1d030
Ilariae/wormhole settlements (#254)
ilariae Feb 25, 2025
37df8b6
first draft of page reshape
martin0995 Feb 25, 2025
059caa3
grammarly check
martin0995 Feb 25, 2025
014bcf9
update burn and mint section
martin0995 Feb 25, 2025
1872c5f
update expandable
martin0995 Feb 25, 2025
2ff51ed
update links
martin0995 Feb 25, 2025
55f189a
llm check
martin0995 Feb 25, 2025
a7e1ec1
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Feb 25, 2025
685af45
Ilariae/product table (#255)
ilariae Feb 25, 2025
a14c276
Martinh/ntt launchpad (#251)
martin0995 Feb 26, 2025
66a8c0a
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Feb 26, 2025
0cb5b60
llm check
martin0995 Feb 26, 2025
2177c8f
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Feb 26, 2025
f1803ee
add link to settlements (#259)
ilariae Feb 26, 2025
6108b5a
fix typo (#260)
ilariae Feb 26, 2025
f64967b
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Feb 27, 2025
ce9d771
Martinh/sdk v1.11.0 (#266)
martin0995 Mar 4, 2025
494848a
update ubuntu version (#271)
martin0995 Mar 4, 2025
9811013
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Mar 4, 2025
c8e1cb8
Martinh/light link read only contract (#270)
martin0995 Mar 4, 2025
16c6bb5
Ilariae/use cases (#261)
ilariae Mar 4, 2025
8db7104
product page in build section (#264)
ilariae Mar 5, 2025
80cce26
sdk update to v.1.11.1 (#273)
martin0995 Mar 5, 2025
45e2b32
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Mar 5, 2025
83149a7
Martinh/multigov sol architecture (#267)
martin0995 Mar 7, 2025
913a206
Martinh/multigov deployment (#269)
martin0995 Mar 7, 2025
20021d3
Martinh/multigov upgrade sol (#274)
martin0995 Mar 7, 2025
6f2ecb5
Martinh/update sdk v1.13.1 (#277)
martin0995 Mar 7, 2025
bde163c
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Mar 10, 2025
4ed594f
update token steps
martin0995 Mar 10, 2025
e8ba1f5
update token setup section
martin0995 Mar 11, 2025
06cdef4
update sections
martin0995 Mar 11, 2025
9246988
update token authority section
martin0995 Mar 11, 2025
9651fa8
details to step
martin0995 Mar 11, 2025
7c5fb4a
reorg content
martin0995 Mar 11, 2025
ece6fc1
post deployment for solana
martin0995 Mar 11, 2025
601ac88
grammarly check
martin0995 Mar 11, 2025
b9e115f
llm check
martin0995 Mar 11, 2025
d176482
update names
martin0995 Mar 11, 2025
67b0c9f
llm check
martin0995 Mar 11, 2025
b881fa4
page reorg
martin0995 Mar 11, 2025
4ff0324
llm check
martin0995 Mar 11, 2025
fb9423c
Ilariae/consistency (#285)
ilariae Mar 11, 2025
77d9610
Multigov repo and change emoji (#286)
ilariae Mar 11, 2025
70ec179
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Mar 12, 2025
47889ba
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Mar 13, 2025
97360f3
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Mar 13, 2025
f7492e9
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Mar 13, 2025
62c414a
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Mar 13, 2025
8e0dbe2
llm check
martin0995 Mar 13, 2025
a81ea77
Martinh/update sdk v1.13.2 (#292)
martin0995 Mar 13, 2025
0735eef
Apply suggestions from code review
martin0995 Mar 17, 2025
6a05ebe
Merge branch 'main' into martinh/ntt-sol-reshape
martin0995 Mar 17, 2025
5bbec0a
llm check
martin0995 Mar 17, 2025
540dea5
update anchor version
martin0995 Mar 17, 2025
d772723
reorg networks
martin0995 Mar 17, 2025
5155a27
add cli link
martin0995 Mar 17, 2025
2eb0c4c
add link to transfer hooks
martin0995 Mar 17, 2025
845aa56
add details
martin0995 Mar 17, 2025
e8e7077
update links
martin0995 Mar 17, 2025
ae5a2fc
add devnet
martin0995 Mar 17, 2025
f2f5196
action oriented
martin0995 Mar 17, 2025
cf37098
add description
martin0995 Mar 17, 2025
161a59a
update connect description
martin0995 Mar 17, 2025
bfc2de0
buffer account details
martin0995 Mar 17, 2025
25b2ae2
add details to inbound conifg
martin0995 Mar 17, 2025
b0d3035
update link to metadate example
martin0995 Mar 17, 2025
ff63096
create overview section
martin0995 Mar 18, 2025
12a4af9
update mint authority section
martin0995 Mar 18, 2025
69df41a
manual relaying
martin0995 Mar 18, 2025
d61e580
remove redundancy
martin0995 Mar 18, 2025
65dc6e8
update wording
martin0995 Mar 18, 2025
03f17b7
llm check
martin0995 Mar 18, 2025
928559b
Update build/contract-integrations/native-token-transfers/deployment-…
martin0995 Mar 18, 2025
3a66003
llm check
martin0995 Mar 18, 2025
d827a01
lower ntt cli required version
martin0995 Mar 19, 2025
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
1 change: 1 addition & 0 deletions .github/workflows/check-llms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyyaml requests

- name: Get SHA256 hash of the PR's llms.txt file
id: pr_llms_hash
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
=== "Mainnet"

<table data-full-width="true" markdown><thead><th>Chain Name</th><th>Contract Address</th></thead><tbody><tr><td>Corn</td><td><code>0xa683c66045ad16abb1bCE5ad46A64d95f9A25785</code></td></tr><tr><td>Gnosis</td><td><code>0xa321448d90d4e5b0A732867c18eA198e75CAC48E</code></td></tr><tr><td>Rootstock</td><td><code>0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6</code></td></tr><tr><td>Sonic</td><td><code>0x352A86168e6988A1aDF9A15Cb00017AAd3B67155</code></td></tr><tr><td>Telos</td><td><code>0x352A86168e6988A1aDF9A15Cb00017AAd3B67155</code></td></tr></tbody></table>
<table data-full-width="true" markdown><thead><th>Chain Name</th><th>Contract Address</th></thead><tbody><tr><td>Corn</td><td><code>0xa683c66045ad16abb1bCE5ad46A64d95f9A25785</code></td></tr><tr><td>Gnosis</td><td><code>0xa321448d90d4e5b0A732867c18eA198e75CAC48E</code></td></tr><tr><td>Goat</td><td><code>0x352A86168e6988A1aDF9A15Cb00017AAd3B67155</code></td></tr><tr><td>Rootstock</td><td><code>0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6</code></td></tr><tr><td>Sonic</td><td><code>0x352A86168e6988A1aDF9A15Cb00017AAd3B67155</code></td></tr><tr><td>Telos</td><td><code>0x352A86168e6988A1aDF9A15Cb00017AAd3B67155</code></td></tr></tbody></table>
4 changes: 3 additions & 1 deletion build/contract-integrations/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ nav:
- index.md
- 'Wormhole Relayer': 'wormhole-relayers.md'
- 'Core Contracts': 'core-contracts.md'
- 'Token Bridge': 'token-bridge.md'
- 'CCTP': 'cctp.md'
- native-token-transfers
- multigov
- settlements
- 'Development Environment': 'dev-env.md'
- 'FAQS': 'faqs.md'
- 'FAQs': 'faqs.md'
16 changes: 16 additions & 0 deletions build/contract-integrations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ The content in this section will teach you how to create smart contracts that in

[:custom-arrow: Get started with CCTP](/docs/build/contract-integrations/cctp/)

- :octicons-arrow-switch-16:{ .lg .middle } **Token Bridge**

---

Learn how to integrate Wormhole's Token Bridge for seamless multichain token transfers with a lock-and-mint mechanism and cross-chain asset management.

[:octicons-arrow-right-16: Get started with Token Bridge](/docs/build/contract-integrations/token-bridge/)

- :octicons-sync-16:{ .lg .middle } **Native Token Transfers**

---
Expand All @@ -51,6 +59,14 @@ The content in this section will teach you how to create smart contracts that in

[:custom-arrow: Get started with MultiGov](/docs/build/contract-integrations/multigov/)

- :octicons-code-16:{ .lg .middle } **Wormhole Settlements**

---

Build with Wormhole Settlements, including integrating the Liquidity Layer into your application and running a Solver for efficient cross-chain asset transfers.

[:custom-arrow: Get started with Settlements](/docs/build/contract-integrations/settlements/)

- :octicons-terminal-16:{ .lg .middle } **Development Environment**

---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,28 @@ description: Deploy and configure Wormhole’s Native Token Transfers (NTT) for

# Native Token Transfers (NTT) Solana Deployment

## Install Dependencies
## Introduction

Ensure you have the following dependencies installed:
Native Token Transfers enable seamless cross-chain transfers of SPL tokens on Solana using Wormhole’s messaging protocol. Instead of creating wrapped tokens, NTT allows native assets to move across chains while maintaining their original properties.

- [Rust](https://www.rust-lang.org/tools/install){target=\_blank}
- [Solana](https://docs.solanalabs.com/cli/install){target=\_blank} **`{{ ntt.solana_cli_version }}`**
- [Anchor](https://www.anchor-lang.com/docs/installation){target=\_blank} **`{{ ntt.anchor_version }}`**
This guide walks you through deploying NTT on Solana, including setting up dependencies, configuring token compatibility, and using the NTT CLI to deploy in Hub-and-Spoke or Burn-and-Mint mode.

!!!Warning
Ensure you are using the above versions of Solana and Anchor. Running the deployment with a different version may cause issues.
By the end, a fully deployed NTT will be set up, allowing your token to transfer between Solana and other supported chains.

## Deploy NTT
## Prerequisites

Create a new NTT project (or use an existing NTT project):
Before deploying NTT on Solana, ensure you have the following:

```bash
ntt new my-ntt-deployment
cd my-ntt-deployment
```

Initialize a new `deployment.json` file specifying the network:

=== "Testnet"
- [Rust](https://www.rust-lang.org/tools/install){target=\_blank}
- [Solana](https://docs.solanalabs.com/cli/install){target=\_blank} **`{{ ntt.solana_cli_version }}`**
- [Anchor](https://www.anchor-lang.com/docs/installation){target=\_blank} **`{{ ntt.anchor_version }}`**

```bash
ntt init Testnet
```
!!!Warning
Ensure to use the Solana and Anchor versions listed above to avoid compatibility issues.

=== "Mainnet"
## Token Setup

```bash
ntt init Mainnet
```

## Deploy Your Solana Token
You must create and configure an SPL token on Solana to enable cross-chain transfers. If you already have a deployed SPL token, you can [skip this section](#set-up-ntt-deployment).

???- interface "Deploy an SPL Token"

Expand All @@ -53,14 +40,15 @@ Initialize a new `deployment.json` file specifying the network:
solana config set --keypair INSERT_PATH_TO_KEYPAIR_JSON
```

3. Set the Solana configuration to use the default RPC URL for Devnet:
3. If deploying on Devnet, configure Solana to use the default RPC URL:
```bash
solana config set -ud
```

4. Request an airdrop of two SOL and check the balance:
```bash
solana airdrop 2 & solana balance
solana airdrop 2
solana balance
```

5. Install or update the SPL Token CLI:
Expand All @@ -86,112 +74,129 @@ Initialize a new `deployment.json` file specifying the network:
!!! note
NTT versions `>=v2.0.0+solana` support SPL tokens with transfer hooks.

### Deployment Mode Requirements
## Set Up NTT Deployment

The NTT CLI supports two deployment models: **Hub-and-Spoke** and **Burn-and-Mint**.
For a detailed explanation of these models, see the [Deployment Models](/docs/learn/messaging/native-token-transfers/deployment/){target=\_blank} page.
Once your SPL token is set up, deploy the NTT program on Solana.

#### Hub-and-Spoke
1. **Create a new NTT project** - set up a deployment workspace

No additional configuration is required for hub-and-spoke deployments. Tokens retain their original mint authority, so the steps below are not necessary. You can [generate a new NTT program key pair](/docs/build/contract-integrations/native-token-transfers/deployment-process/deploy-to-solana/#generate-ntt-program-key-pair) and [deploy the NTT program](/docs/build/contract-integrations/native-token-transfers/deployment-process/deploy-to-solana/#__tabbed_2_2) directly.
```bash
ntt new INSERT_PROJECT_NAME
cd INSERT_PROJECT_NAME
```

#### Burn-and-Mint
2. **Initialize the deployment** - generate a `deployment.json` file with your deployment settings

For burn-and-mint deployments, you must configure the token's mint authority to enable cross-chain transfers. To complete the required setup, follow the steps in the following sections.
=== "Testnet"

## Configuration and Deployment
```bash
ntt init Testnet
```

### Generate NTT Program Key Pair
=== "Mainnet"

When you deploy a Solana program, you need to hardcode the program ID (a Pubkey) into the program code. The NTT CLI allows you to do this seamlessly.
```bash
ntt init Mainnet
```

Generate a new NTT program key pair using:
The NTT CLI supports two [deployment models](/docs/learn/messaging/native-token-transfers/deployment/){target=\_blank}. If using hub-and-spoke, skip the below steps and proceed to [Deploy and Configure NTT](#deploy-and-configure-ntt).

```bash
solana-keygen grind --starts-with ntt:1 --ignore-case
```
???+ interface "Burn-and-Mint Required Steps"

### Derive Token Authority
1. **Generate an NTT program key pair** - create a unique key pair for the NTT program

In this step, you'll derive the token authority Program Derived Address (PDA) of the newly generated NTT program ID:
```bash
solana-keygen grind --starts-with ntt:1 --ignore-case
```

```bash
ntt solana token-authority INSERT_YOUR_NTT_PROGRAM_KEY_PAIR
```
2. **Derive the token authority** - generate the Program Derived Address (PDA), which will manage token minting

This script will output the derived PDA, which you will use in the next step.
```bash
ntt solana token-authority INSERT_YOUR_NTT_PROGRAM_KEY_PAIR
```

### Set SPL Token Mint Authority
3. **Set SPL token mint authority** - delegate minting control to the derived PDA

!!!Warning
You must create your token's metadata before delegating mint authority. [See an example on how to create metadata for your SPL token](https://github.com/wormhole-foundation/demo-metaplex-metadata){target=\_blank}.
```bash
spl-token authorize INSERT_TOKEN_ADDRESS mint INSERT_DERIVED_PDA
```

If deploying in `burning` mode, you'll set the SPL token mint authority to the newly generated token authority PDA:
!!!Warning
You must create your token's metadata before delegating mint authority. [See an example on how to create metadata for your SPL token](https://github.com/wormhole-foundation/demo-metaplex-metadata){target=\_blank}.

```bash
spl-token authorize INSERT_TOKEN_ADDRESS mint INSERT_DERIVED_PDA
```
## Deploy and Configure NTT

!!! note
Please ensure that you are using Anchor CLI version `0.29.0`. Running the deployment with a different version may cause compatibility issues.
After setting up your deployment, finalize the configuration and deploy the NTT program on Solana.

1. **Deploy NTT to Solana** - run the appropriate command based on your deployment mode:

### Deploy NTT
=== "Burn-and-Mint"

Generate or export your payer key pair, then run:
```bash
ntt add-chain Solana --latest --mode burning --token INSERT_TOKEN_ADDRESS --payer INSERT_YOUR_KEYPAIR_JSON --program-key INSERT_YOUR_NTT_PROGRAM_KEYPAIR_JSON
```

=== "Burn-and-Mint"
=== "Hub-and-Spoke"

```bash
ntt add-chain Solana --latest --mode burning --token INSERT_TOKEN_ADDRESS --payer INSERT_YOUR_KEYPAIR_JSON --program-key INSERT_YOUR_NTT_PROGRAM_KEYPAIR_JSON
```
```bash
ntt add-chain Solana --latest --mode locking --token INSERT_TOKEN_ADDRESS --payer INSERT_YOUR_KEYPAIR_JSON --program-key INSERT_YOUR_NTT_PROGRAM_KEYPAIR_JSON
```

=== "Hub-and-Spoke"
!!! note
The `add-chain` command accepts an optional `--solana-priority-fee` flag, which sets the priority fee in microlamports. The default is `50000`.

2. **Verify deployment status** - after deployment, check if your deployment.json file matches the on-chain configuration

```bash
ntt add-chain Solana --latest --mode locking --token INSERT_TOKEN_ADDRESS --payer INSERT_YOUR_KEYPAIR_JSON --program-key INSERT_YOUR_NTT_PROGRAM_KEYPAIR_JSON
ntt status
```

!!! note
The `add-chain` command accepts an optional `--solana-priority-fee` flag, which sets the priority fee in microlamports. The default is `50000`.
If needed, sync your local configuration with the on-chain state:

The NTT Solana program will then compile and deploy, returning the program ID.
```bash
ntt pull
```

!!! note
Refer to the [Solana docs](https://solana.com/docs/programs/deploying#program-buffer-accounts){target=\_blank} for failed deployments, which provide instructions on finding buffer accounts and closing them to reclaim allocated SOL.
3. **Configure inbound and outbound rate limits** - by default, the inbound and outbound limits are set to `0`. You must update them before pushing the deployment.

### Configure NTT
Open your `deployment.json` file and adjust the values based on your use case:

The NTT CLI takes inspiration from [git](https://git-scm.com/){target=\_blank}. You can run:
=== "Solana (9 decimals)"

- `ntt status` - checks whether your `deployment.json` file is consistent with what is on-chain
- `ntt pull` - syncs your `deployment.json` file with the on-chain configuration and sets up rate limits with the appropriate number of decimals, depending on the specific chain. For example:
```json
"inbound": {
"Sepolia": "1000.000000000" // inbound limit from Sepolia to Solana
},
"outbound": {
"Sepolia": "1000.000000000" // outbound limit from Solana to Sepolia
}
```

For Solana, the limits are set with 9 decimal places:
```json
"inbound": {
"Sepolia": "1000.000000000" // inbound limit from Sepolia to Solana
}
```
=== "Sepolia (18 decimals)"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this specific to an EVM deployment?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, values must be set using 18 decimals for EVM chains, while Solana uses 9 decimals.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So you think it for sure belongs on the Solana deployment page? Or is this something that should only matter for EVM deployments and should only be on the EVM deployment page?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's necessary to have it here. Devs will mostly use NTT between EVM and Solana, so they should definitely know how to set the decimals for the EVM chain so their transactions go through.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do they have to deploy their token on EVM too then?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like where are these configurations added if this is the Solana deployment?


For Sepolia (Ethereum Testnet), the limits are set with 18 decimal places:
```json
"inbound": {
"Solana": "1000.000000000000000000" // inbound limit from Solana to Sepolia
}
```
```json
"inbound": {
"Solana": "1000.000000000000000000" // inbound limit from Solana to Sepolia
},
"outbound": {
"Solana": "1000.000000000000000000" // outbound limit from Sepolia to Solana
}
```

This initial configuration ensures that the rate limits are correctly represented for each chain's token precision.
4. **Push the final deployment** - once rate limits are set, push the deployment to Solana

### Deploy NTT to Solana
```bash
ntt push --payer INSERT_YOUR_KEYPAIR_JSON
```

You can now push the deployment to the Solana network, specifying the key pair that will cover the gas fees:
By default, NTT transfers to Solana require manual relaying, meaning the user must perform a transaction on Solana to complete the transfer. UI components such as [Wormhole Connect](/docs/build/applications/connect/){target=\_blank} support this automatically.

```bash
ntt push --payer INSERT_YOUR_KEYPAIR_JSON
```
## Next Steps and Resources

By default, NTT transfers to Solana support manual relaying, which requires the user to perform a transaction on Solana to complete the transfer. UI components such as Wormhole Connect support this out of the box. For automatic Wormhole relaying support on Solana, [contact](https://forms.clickup.com/45049775/f/1aytxf-10244/JKYWRUQ70AUI99F32Q){target=\_blank} Wormhole contributors.
Your NTT deployment on Solana is now complete! To proceed, explore the following:

!!!important
To proceed with testing and find integration examples, check out the [NTT Post Deployment](/docs/build/contract-integrations/native-token-transfers/deployment-process/post-deployment/){target=\_blank} page.
- **Test your deployment** – follow the [NTT Post Deployment Guide](/docs/build/contract-integrations/native-token-transfers/deployment-process/post-deployment/){target=\_blank} for integration examples and testing instructions
- **Integrate NTT into your application** – use [Wormhole Connect](/docs/build/applications/connect/){target=\_blank} to enable seamless cross-chain transfers in your UI
- **Troubleshoot deployment issues** – if your deployment fails, refer to the [Solana program deployment guide](https://solana.com/docs/programs/deploying#program-buffer-accounts){target=\_blank} to find and close buffer accounts
- **Understand the NTT CLI** – the NTT CLI takes inspiration from [Git](https://git-scm.com/){target=\_blank}. Many commands work similarly, making version control and configuration updates intuitive
- **Get automatic relaying support** – for automatic Wormhole relaying support, [contact Wormhole contributors](https://forms.clickup.com/45049775/f/1aytxf-10244/JKYWRUQ70AUI99F32Q){target=\_blank}
6 changes: 6 additions & 0 deletions build/contract-integrations/settlements/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
title: Wormhole Settlements
nav:
- index.md
- 'Build on the Wormhole Liquidity Layer': 'liquidity-layer.md'
- 'Run a Wormhole Settlement Solver': 'solver.md'

30 changes: 30 additions & 0 deletions build/contract-integrations/settlements/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: Wormhole Settlements
description: Start building with Wormhole Settlements; integrate with the Liquidity Layer and set up Solvers to enable seamless cross-chain asset transfers.
---

# Wormhole Settlements

## Get Started

This section provides resources to build with Wormhole Settlements, including integrating the Liquidity Layer into your application and running a Solver for efficient cross-chain asset transfers.

<div class="grid cards" markdown>

- :octicons-code-16:{ .lg .middle } **Build on the Liquidity Layer**

---

Integrate seamlessly with Wormhole's Liquidity Layer, learn key EVM contract functions for fast and secure cross-chain transfers.

[:custom-arrow: Build on the Liquidity layer](/docs/build/contract-integrations/settlements/liquidity-layer/)

- :octicons-code-16:{ .lg .middle } **Run a Settlement Solver**

---

Set up, configure, and run a Wormhole Settlement Solver on Solana's Matching Engine to fulfill cross-chain transfers efficiently and securely.

[:custom-arrow: Run a Solver](/docs/build/contract-integrations/settlements/solver/)

</div>
Loading
Loading