You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update README for multi-chain support and CCTP V1 (Legacy) notice
Reflects that the relayer now supports EVM destinations alongside Solana, and adds a deprecation note since Circle is phasing out CCTP V1 in favour of V2.
Made-with: Cursor
Copy file name to clipboardExpand all lines: README.md
+42-19Lines changed: 42 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,12 @@
1
-
# CCTP Relayer - Noble to Solana
1
+
# CCTP Relayer - Noble to Solana & EVM
2
2
3
-
**Work in progress.** This tool is currently focused on **manual recovery of USDC transfers from Noble (Cosmos) to Solana** using Circle's Cross-Chain Transfer Protocol (CCTP). Other chains and flows are not supported yet. Should you want other recoveries e.g. EVM, [Buy me a coffee and pop me a message here](https://buymeacoffee.com/jasbanza).
3
+
> **Note:** This tool uses **CCTP V1 (Legacy)**. Circle is [deprecating V1](https://developers.circle.com/cctp/migration-from-v1-to-v2) in favour of CCTP V2, with phase-out beginning July 2026. V1 remains fully functional until then, but a migration to V2 will be needed in the future.
4
4
5
-
This is an independent, community-built tool and is **not affiliated with or endorsed by Circle, Solana, Phantom, or any other referenced project.**
5
+
A community-built tool for **recovering and sending USDC transfers from Noble (Cosmos)** using Circle's Cross-Chain Transfer Protocol (CCTP V1). Supports relaying to **Solana** and all major **EVM chains**: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, and Polygon PoS.
6
+
7
+
[Buy me a coffee](https://buymeacoffee.com/jasbanza)
8
+
9
+
This is an independent, community-built tool and is **not affiliated with or endorsed by Circle, Solana, Phantom, MetaMask, or any other referenced project.**
6
10
7
11
## Live deployments
8
12
@@ -11,26 +15,37 @@ This is an independent, community-built tool and is **not affiliated with or end
11
15
12
16
## Features
13
17
14
-
- Fetch Noble transaction details and extract CCTP message
15
-
-Convert message from Base64 to Hex
16
-
-Compute keccak256 message hash
17
-
-Fetch attestation from Circle's API
18
-
-Connect Phantom wallet
19
-
-Build and send `receiveMessage` transaction on Solana
18
+
-**Recover transfers**: Fetch Noble transaction details, extract the CCTP message, and relay to the destination chain
19
+
-**Send USDC**: Burn USDC on Noble and prepare a CCTP transfer to any supported destination
20
+
-**Lookup pending transfers**: Search for in-flight transfers by destination address
21
+
-**Multi-chain support**: Relay to Solana (Phantom) or any EVM chain (MetaMask / injected wallet)
22
+
-**Auto-detection**: Destination chain is detected automatically from the CCTP message
23
+
-Compute keccak256 message hash and fetch Circle attestation
20
24
- All fields are editable for power users
21
25
- External tool links for manual fallback
22
26
23
27
## Usage
24
28
25
-
### Option 1: Full Flow
29
+
### Recover a Transfer
26
30
27
31
1. Enter your Noble transaction hash
28
32
2. Click "Fetch TX" to retrieve the message data (the tool will auto-convert to hex, compute the hash, and fetch the attestation)
29
33
3. Wait until the attestation status shows `complete`
30
-
4. Connect your Phantom wallet
31
-
5. Click "Relay to Solana"
34
+
4. The destination chain is detected automatically — connect the appropriate wallet:
35
+
-**Solana**: Connect Phantom wallet, then click "Relay to Solana"
36
+
-**EVM chains**: Connect MetaMask (or any injected wallet), then click "Relay to [Chain]"
37
+
38
+
### Send USDC from Noble
39
+
40
+
1. Connect your Keplr wallet
41
+
2. Select the destination chain and enter the recipient address
42
+
3. Enter the amount and send
32
43
33
-
### Option 2: Manual Entry
44
+
### Lookup Pending Transfers
45
+
46
+
Enter a destination address (Solana or EVM) to search for in-flight CCTP transfers waiting to be relayed.
47
+
48
+
### Manual Entry
34
49
35
50
If you already have any intermediate values (message hash, attestation, etc.), you can paste them directly into the corresponding fields.
36
51
@@ -43,9 +58,11 @@ cctp-relayer/
43
58
│ ├── config.js # Allowed origins config
44
59
│ └── relay.js # POST /api/relay (proxies Solana RPC)
45
60
├── public/ # Static website files
46
-
│ ├── app.js
61
+
│ ├── app.js # Main application logic (all chains)
47
62
│ ├── index.html
48
63
│ └── styles.css
64
+
├── .github/workflows/ # CI/CD
65
+
│ └── deploy-gh-pages.yml # Auto-deploy to GitHub Pages
49
66
├── .gitignore
50
67
├── package.json
51
68
└── README.md
@@ -90,6 +107,8 @@ All configuration values can be edited in the UI:
90
107
| MessageTransmitter |`CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd`| Solana CCTP program |
91
108
| TokenMessengerMinter |`CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3`| Solana CCTP program |
92
109
110
+
EVM chain contract addresses (MessageTransmitter, TokenMessenger) are auto-configured based on the selected destination chain.
111
+
93
112
## Domain IDs
94
113
95
114
| Chain | Domain ID |
@@ -107,20 +126,23 @@ All configuration values can be edited in the UI:
107
126
108
127
If any step in the UI fails, you can use these external tools:
0 commit comments