# Introducing Omnity new component: Doge Customs With SPV Node Verify

**URL:** <https://forum.dfinity.org/t/introducing-omnity-new-component-doge-customs-with-spv-node-verify/42213>\
**Category:** Developers\
**Tags:** Functional-Programming\
**Created:** [March 13, 2025, 7:26am UTC](https://forum.dfinity.org/t/introducing-omnity-new-component-doge-customs-with-spv-node-verify/42213 "2025-03-13T07:26:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![hsxyl](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/hsxyl/32/16990_2.png) [@hsxyl](https://forum.dfinity.org/u/hsxyl)\
**Post date:** [March 13, 2025, 7:26am UTC](https://forum.dfinity.org/t/introducing-omnity-new-component-doge-customs-with-spv-node-verify/42213/1 "2025-03-13T07:26:59Z")

</div>

# What is Omnity

Omnity is an omni-chain interoperability protocol built by Omnity Network on the Internet Computer (IC) specially designed to fit the modular blockchain landscape. It is implemented by a set of smart contracts deployed on IC.

## High-level Design

 ![omnity](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/f/2/f28973b921694b8c825554c20cca76b63f73b889.jpeg)

- E : settlement chains. currently we have bitcoin(supports both runes and brc20) and icp as the settlement chains.
- S : execution chains. currently we have the icp, bevm, bitlayer, b² network, x layer, merlin, bob, rootstock, bitfinity, ailayer, core, ethereum, osmosis and solana as the execution chains.
- Ticket: a transaction message.
- Hub: a canister (smart contract) on icp that handles chain and token registration and ticket (transaction) execution, and it also lists settlement chains and execution chains.
- Customs: the customs is where the assets are listed, each custom represents a settlement chain. the customs generates transfering tickets.
- Route: each route represents a execution chain. the routes generates redeeming tickets.

# Doge Customs

## Transfer

 ![transfer(1)](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/c/2/c22f9637dd00e58cd6ebf42443833732b65c31e8.jpeg)

1. Cross-chain users input Destination information (target\_chain, receiver), obtain the Doge Chain payment address (Pay Address), and complete the transfer.
2. Call the generate ticket interface, input tx\_hash and Destination information, verify the transaction and generate a ticket.

- Doge Customs needs to maintain the utxo set corresponding to the Destination. (Map\<Destination, utxo set\>). When using utxo later, knowing the Destination information will indicate which public-private key pair to use for signing.

## Redeem

 ![redeem](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/0/3/03be4cb83dc9f8c75d87cc363acbeb974bce6bbf.jpeg)

## 

 ![spvnode](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/6/7/67c80a4e35193113ad4529a5727d8e469d071a52.jpeg)

# Open Source

Check code in this pull request:  
[https://github.com/octopus-network/omnity-interoperability/pull/189](https://github.com/octopus-network/omnity-interoperability/pull/189)
