We refreshed our doc site!
Bookmarked links may have changed
Read release notesNoble is a Cosmos application-specific blockchain (or "appchain") that provides native asset issuance for the Cosmos ecosystem. USDC is natively issued on Noble and can be transferred via the Inter-Blockchain Communication Protocol (IBC) to other supported appchains in Cosmos, or via CCTP to any supported domain (e.g. Ethereum).
Note that there are key differences between Cosmos appchains like Noble and EVM-compatible blockchains. Unlike on EVM chains where CCTP is a set of smart contracts, CCTP on Noble is a Cosmos SDK module, which is deployed by Noble governance and built into the Noble blockchain. Cosmos appchains can use IBC to build composable flows with CCTP on Noble.
Chain | Domain | Address |
---|---|---|
Noble | 4 | noble12l2w4ugfz4m6dd73yysz477jszqnfughxvkss5 |
CCTP on Noble source code is available at https://github.com/circlefin/noble-cctp. The full message spec is defined at noble-cctp/x/cctp/spec/02_messages.md. The interface below serves as a reference for permissionless messaging functions exposed by the module.
Message: MsgDepositForBurn
Broadcast a transaction that deposits for burn to a provided domain.
Arguments:
Amount
- The burn amountDestinationDomain
- Domain of destination chainMintRecipient
- address receiving minted tokens on destination chain as a 32 length byte arrayBurnToken
- The burn token address on source domainMessage:MsgDepositForBurnWithCaller
Broadcast a transaction that deposits for burn with caller to a provided domain.
This message wraps MsgDepositForBurn
. It adds one extra argument, destinationCaller
.
Arguments:
Amount
- The burn amountDestinationDomain
- Domain of destination chainMintRecipient
- address receiving minted tokens on destination chain as a 32 length byte arrayBurnToken
- The burn token address on source domainDestinationCaller
- authorized caller as 32 length byte array of receiveMessage() on destination domainMessage: MsgReplaceDepositForBurn
Broadcast a transaction that replaces a deposit for burn message. Replace the mint recipient and/or
destination caller.
Allows the sender of a previous BurnMessage (created by depositForBurn or depositForBurnWithCaller)
to send a new BurnMessage to replace the original. The new BurnMessage will reuse the amount and
burn token of the original without requiring a new deposit.
Arguments:
OriginalMessage
- original message bytes to replaceOriginalAttestation
- attestation bytes of OriginalMessage
NewDestinationCaller
- the new destination caller, which may be theNewMintRecipient
- the new mint recipient. May be the same as theMessage: MsgReceiveMessage
Broadcast a transaction that receives a provided message from another domain. After validation, it performs a mint.
Arguments:
message
Message Formatattestation
- Concatenated 65-byte signature(s) of message
, in increasing orderMessage:MsgSendMessage
Broadcast a transaction that sends a message to a provided domain.
Arguments:
DestinationDomain
- Domain of destination chainRecipient
- Address of message recipient on destination chainMessageBody
- Raw bytes content of messageMessage:MsgSendMessageWithCaller
Broadcast a transaction that sends a message with a caller to a provided domain.
Specifying a Destination caller requires that only the specified caller can call receiveMessage()
on destination domain.
This message wraps SendMessage
It adds one extra argument, DestinationCaller
.
Arguments:
DestinationDomain
- Domain of destination chainRecipient
- Address of message recipient on destination chainMessageBody
- Raw bytes content of messageDestinationCaller
- caller on the destination domain, as 32 length byte arrayMessage: MsgReplaceMessage
Broadcast a transaction that replaces a provided message. Replace the message body and/or destination caller.
Arguments:
OriginalMessage
- original message bytes to replaceOriginalAttestation
- attestation bytes of OriginalMessage
NewMessageBody
- new message body of replaced messageNewDestinationCaller
- the new destination caller, which may be the same as the original destination caller, a new destination caller, or an empty destination caller, indicating that any destination caller is valid.