Omni Core 0.9.0 Released

Dear Omni Layer integrators,

Today we announce the release of Omni Core 0.9.0.

This version is a major release and uses Segregated Witness wrapped in P2SH for newly generated addresses per default. It also adds two new transaction types to anchor arbitrary data in the blockchain. As an experimental feature, several new commands were added to support querying any Bitcoin balance.

While this release is not mandatory and doesn’t change the consensus rules of the Omni Layer protocol, an upgrade is nevertheless recommended.

Upgrading from 0.8.2, 0.8.1 or 0.8.0 does not require a rescan and can be done very fast without interruption.

To download and view more details about this release, please visit:

Previous Post: Omni Core 0.8.2 Released

Omni Core 0.9.0 Released

Omni Core 0.8.2 Released

Dear Omni Layer integrators,

Today we announce the release of Omni Core 0.8.2.

This version is a minor release and adds new RPCs to interact with the distributed exchange, which can be used to trade any tokens for bitcoins. It also incorporates significant performance improvements for the initial synchronization and upgrading from older versions of Omni Core.

Upgrading from 0.8.1 does not require a rescan and can be done very fast without interruption.

To download and view more details about this release, please visit:

Previous Post: Trading Against Bitcoin on the Omni Distributed Exchange Using Omni Core

Omni Core 0.8.2 Released

Omni Core Incident Report March 2020

On 2020-02-25 an Omni Core integrator, Antoine Le Calvez from Coin Metrics made us aware of a potential issue with Omni Core through responsible disclosure. After further inspection, we believed Omni Core v0.6 and later versions were affected by a potential replay of transactions after a block reorganization. The developer was provided a bounty for reporting the issue promptly and responsibly to the Omni Layer team. 

When a block reorganization occurs, the internal state of Omni Core is rolled back and the effects of the affected block or blocks are reverted. Omni Core then tries to catch up and scans for new transactions. When a new block is found or a longer chain is connected, the new transactions are processed.

However, we believe that due to an optimization of the locking code in Omni Core in an update from v0.5 to v0.6 multiple events may occur simultaneously, resulting in a faulty state:

  1. A block is orphaned
  2. Omni Layer transactions from the orphaned block are rolled back and an older state is restored
  3. A new block arrives and is registered
  4. Omni Core scans and executes new transactions up to the current chain tip, in case there is a gap between the old restored state and the current chain
  5. The transactions from the new block are processed

The correct order would be:

  1. Omni Layer transactions are reverted
  2. An older state is restored
  3. If the state is too old, Omni Core catches up and reparses the old transactions
  4. A new block arrives or a longer chain connects
  5. The new transactions are processed

In this edge case the new block is registered before Omni Core scans for potential transactions in the gap between the old state and the new chain tip. This leads to the transactions from the newly connected block getting executed, even though they will be executed again when the new block is processed in the regular way. The end result is that the effect of some transactions may be executed twice by the parsing engine of individual clients, depending on the order in which the blocks were received. 

Note: No new money is created out of thin air and all rules for sending tokens are still in place. For example: when A had a balance of 10 tokens and sent 10 tokens to B, then the second execution of the transaction would simply be considered as invalid and A still ends up with 0 tokens and B with 10 tokens.

However, if the second execution of the transaction was valid, for example if A had started with a balance of 100 tokens, then it’s effect would be applied twice, potentially moving more tokens than the sender originally intended.

Conclusion: The reach of this issue is difficult to determine. The local state may vary from node to node as it depends on which block the local node saw first during a block reorganization. This edge case was patched and released in Omni Core v0.8 and all future releases. Users of Omni Core versions prior to v0.6 and users of the OmniExplorer API were not affected.

Additionally, specific instructions for integrators on how to validate their local nodes data were included in the release notes of the upgrade and a previously planned protocol level upgrade (Feature ID 15: Activate trading of any token on the distributed exchange) was used to ensure affected clients were not subjected to further possible errors. 

The developers have not been made aware of any balance discrepancies resulting in loss of funds by users. The upgrade proceeded successfully and all running clients share the correct consensus state.

Omni Core Incident Report March 2020

Trading against Bitcoin on the Omni distributed exchange using Omni Core

This guide is based off the knowledge base article available on the Omni Core wiki. In the future for up to date information and procedures please always reference the knowledge base.

This guide provides some basic instructions on how to interact with the Bitcoin markets on the distributed exchange of the Omni Layer protocol using Omni Core.

Prerequisites: A fully synchronized Omni Core Client v0.8+, an address holding bitcoins and some basic knowledge of using the command line interface of Omni Core. For selling tokens, you also need the tokens you wish to post for sale on the address holding the bitcoins.

Table of contents:

Selling: Posting a new sell offer

In order to create a new sell offer you need to use the command omni_senddexsell, which can be used to place, update or cancel a sell offer on the distributed exchange. Any token can be traded against Bitcoin and the distributed exchange is not limited to trading of Omni or Test Omni.

For example this command:

$ omnicore-cli "omni_senddexsell" "123sellerswalletaddress45689abc" 1 "10" "0.75" 25 "0.00005" 1

Will create a new sell offer:

  • From the address 123sellerswalletaddress45689abc
  • For token ID #1 (Omni tokens)
  • Selling "10" token ID #1 (Omni tokens)
  • Requesting a total of "0.75" bitcoins for all
  • Allowing a payment window of 25 blocks. This is the length of time a buyer has to send payment after sending their “accept transaction”.
  • Requires the buyers payment transaction to have a minimum miner fee of "0.00005" BTC
  • Action 1 = Create new offer

Note: An Address can only have one active sell offer at a time, regardless of the token ID being sold. Attempts to post additional sales from the same address will be invalid.

Selling: Updating an existing sell offer

Just like posting a new sale, the same command is also be used to update an existing sell order with new information. Say you decide you want to change an offer, e.g. the number of coins you are offering for sale, or change the asking price.

Simply replace the action = 1 with action = 2 and send the new transaction with the new details.

For example this command:

$ omnicore-cli "omni_senddexsell" "123sellerswalletaddress45689abc" 1 "5" "0.5" 25 "0.00005" 2

Will update our previous sell offer:

  • From the address 123sellerswalletaddress45689abc
  • For token ID #1 (Omni tokens)
  • Selling "5" token ID #1 (Omni tokens) – Updated Parameter
  • Requesting a total of "0.5" bitcoins for all – Updated Parameter
  • Allowing a payment window of 25 blocks
  • Requires the buyers payment transaction to have a minimum miner fee of "0.00005" BTC
  • Action 2 = Update offer

Note that while the portion of an offer which has been accepted can’t be changed, sending an update message still has an effect, in that it affects any coins which have not been accepted, and it affects accepted coins, if the buyer fails to send payment.

Selling: Canceling your existing sell offer

Just like posting a new sale, the same command is also be used to cancel an existing sell order.

To cancel an offer, simply replace the action = 1 with action = 3 and use the same token ID to explicitly specify the offer to cancel. The fields amount for saleamount of bitcoins desiredpayment window and minimum miner fee are irrelevant and can be set to 0.

For example this command:

$ omnicore-cli "omni_senddexsell" "123sellerswalletaddress45689abc" 1 "0" "0" 25 "0.00005" 3

Will cancel our previous sell offer:

  • From the address 123sellerswalletaddress45689abc
  • For token ID #1 (Omni tokens)
  • Selling "0" token ID #1 (Omni tokens) – irrelevant for this action type
  • Requesting a total of "0" bitcoins for all – irrelevant for this action type
  • Allowing a payment window of 25 blocks – irrelevant for this action type
  • Requires the buyers payment transaction to have a minimum miner fee of "0.00005" BTC irrelevant for this action type
  • Action 3 = Cancel offer

Buying: Viewing available offers

You can view the complete list of available offers using the omni_getactivedexsells command.

For example:

$ omnicore-cli "omni_getactivedexsells"
    "txid" : "OriginalSaleTransactionID",
    "propertyid" : 1,                  
    "seller" : "123sellerswalletaddress45689abc",
    "amountavailable" : "2",  
    "bitcoindesired" : "0.5",
    "unitprice" : "0.1" ,    
    "timelimit" : 25,
    "minimumfee" : "0.00005",    
    "amountaccepted" : "3.0",
    "accepts": [
    "txid": "6a99305e39fb2874498a5503de7d191ff447472b19cad0be0e1ee3a8d0a57cb4",
    "propertyid": 2,
    "seller": "1rM1oMEFMfhPBo4kRaf2CMXf9XQCHyYWi",
    "amountavailable": "33.59857941",
    "bitcoindesired": "0.33937959",
    "unitprice": "0.01010101",
    "timelimit": 10,
    "minimumfee": "0.00010000",
    "amountaccepted": "0.00000000",
    "accepts": [

In this output you can see the list of all current open offers and their available amounts and prices.

If there is a specific sellers address you wish to view, the command can filter the outputs using the sellers address.


omnicore-cli "omni_getactivedexsells" "123sellerswalletaddress45689abc"
    "txid" : "OriginalSaleTransactionID",
    "propertyid" : 1,                  
    "seller" : "123sellerswalletaddress45689abc",
    "amountavailable" : "2",  
    "bitcoindesired" : "0.5",
    "unitprice" : "0.1" ,    
    "timelimit" : 25,
    "minimumfee" : "0.00005",    
    "amountaccepted" : "3.0",
    "accepts": [

Buying: Accepting an offer

After viewing the list of available sell offers in the previous command if you wish to proceed with purchasing you must first send an accept transaction to the sellers address using the command omni_senddexaccept.

Purpose: The accept transaction, when confirmed on the blockchain, is validated to determine if the seller still has the amount of tokens you wish to purchase available.

If the seller does, then those tokens are reserved for the buyer for a period equal to the "timelimit" as specified by the sell offer. This time limit refers to the number of blocks in which the final payment must be received for the reserved funds to be released and transferred to the buyer.

For example this command:

$ omnicore-cli "omni_senddexaccept" "123buyerswalletaddress45689abc1" "123sellerswalletaddress45689abc" 1 "3.0"


  • Reserve for purchase for the address 123buyerswalletaddress45689abc1
  • From the seller "123sellerswalletaddress45689abc"
  • For token ID #1 (Omni Tokens)
  • "3.0" the amount of tokens to reserve

If the accept transaction is confirmed valid and the funds are reserved they will be visible in the accepts data element in the output from the omni_getactivedexsells “123sellerswalletaddress45689abc”.


$ omnicore-cli "omni_getactivedexsells" "123sellerswalletaddress45689abc"
[                                  // (array of JSON objects)
    "txid" : "OriginalSaleTransactionID",
    "propertyid" : 1,                  
    "seller" : "123sellerswalletaddress45689abc",
    "amountavailable" : "2",  
    "bitcoindesired" : "0.5",
    "unitprice" : "0.1" ,    
    "timelimit" : 25,
    "minimumfee" : "0.00005",    
    "amountaccepted" : "3.0",
    "accepts": [                    
        "buyer" : "123buyerswalletaddress45689abc1",               // (string) the Bitcoin address of the buyer
        "block" : 123456,                  // (number) the index of the block that contains the "accept" order
        "blocksleft" : 20,                 // (number) the number of blocks left to pay
        "amount" : "3.0"            // (string) the amount of tokens accepted and reserved
        "amounttopay" : "0.3"       // (string) the amount in bitcoins needed finalize the trade

Note: If after your transaction confirms you do not see an entry in the accepts field for your address then it means your accept transaction was not valid. Most likely this happened because the seller no longer had enough tokens remaining for sale that were unreserved. You can view the exact details using omni_gettransaction <your original accept transaction id/hash>

Buying: Paying for an offer

Note: It is highly recommend that a buyer only attempt to send the payment when there is a large number of blocks remaining for the payment to be accepted.

  • Due to the volatile nature of the Bitcoin blockchain, if a payment transaction gets delayed and doesn’t confirm until after the reserved funds "timelimit" has expired, the payment is lost and the funds remain with the seller. THERE IS NO UNDO in this situation.

Please proceed with caution!

Once your accept transaction has been confirmed and you see the amount of tokens you wish to buy are reserved for you, you can complete the purchase by using the omni_senddexpay command.

IMPORTANT Final payment MUST BE SENT USING THE omni_senddexpay command as sending payment from any other non Omni Layer supporting wallet or interface could result in a complete loss of funds.

For example:

$ omnicore-cli "omni_senddexsell" "123buyerswalletaddress45689abc1" "123sellerswalletaddress45689abc" 1 "0.3"

Will send a payment of "0.3" bitcoins, for the token #1 that the seller "123sellerswalletaddress45689abc" currently has reserved for the buyer "123buyerswalletaddress45689abc1"

Once the transaction confirms before the time limit expires the reserved funds will be released to the buyer and the sale is complete.

If the payment is not received (= confirmed on the blockchain) before the time limit expires, then the reserved funds are released back to the seller and available for someone else to purchase.

The Omniwallet interface guide will be released shortly after the next Omniwallet update.

Trading against Bitcoin on the Omni distributed exchange using Omni Core

Activation of trading any token on the distributed exchange

Dear Omni Layer users,

Beginning with Bitcoin block 627250, which is expected to be on or about 23rd April, 2020, a new version of the distributed exchange on the Omni Layer protocol goes live.

After the activation, it will be possible to trade any token for bitcoins, e. g. Omni, MaidSafeCoin, USD₮ or Agoras without any third party involved.

Omni Core 0.8.0+ users can use the new feature as soon as it is available and Omni Wallet users not in restricted jurisdictions will have access shortly thereafter through

In order to take advantage of the new transaction processing improvements, please upgrade to Omni Core 0.8.1 … Please see:

To avoid any consensus divergences, for example when a user with an old version considers a transaction as valid, while it is actually invalid under new rules, Omni Core versions lower than 0.8.0 will go into a fail-safe state after the activation and will no longer be started without falling out of consensus with the network.

Activation of trading any token on the distributed exchange

Omni Core v0.8.1 released

Dear Omni Layer integrators,

Today we announce the release of Omni Core 0.8.1. This version is a minor release and includes significant performance improvements for the initial synchronization and upgrading from older versions of Omni Core.

A consensus affecting issue in an earlier version of Omni Core has been identified, which may cause some transactions to be executed twice. This has been addressed and fixed in the previous major version 0.8.0.

If you haven’t upgraded to 0.8.0 yet, this update is mandatory.

The first time you start this version from a version older than 0.8.0, the internal database for Omni Layer transactions is reconstructed, which may consume several hours or even more than a day. Please plan your downtime accordingly.

Upgrading from 0.8.0 does not require a rescan and can be done very fast without interruption.

To download and view more details about this release, please visit:

Previous Post: Omni Core v0.8.0 released [update required!]

Omni Core v0.8.1 released

Omni Core v0.8.0 released [update required!]

Dear Omni Layer integrators,

This week we have released Omni Core v0.8.0. This version is a major release and an upgrade is required.

A consensus affecting issue in an earlier version of Omni Core has been identified, which may cause some transactions to be executed twice. This has been addressed and fixed in this release.

The first time you start this version, the internal database for Omni Layer transactions is reconstructed, which may consume several hours or even more than a day. Please plan your downtime accordingly.

To download and view more details about this release, please visit:

A more in-depth post is available here.

Omni Core v0.8.0 released [update required!]

Omni Core v0.7.1 released

This week we announce the release of Omni Core v0.7.1.

Omni Core 0.7.1 paves the way for trading any asset on the Omni Layer for Bitcoin in a decentralized fashion and it adds new commands to accept and execute orders on the distributed exchange.

Please note, if you have not yet upgraded from 0.6 or earlier versions: Omni Core 0.7 changed the code base of Omni Core from Bitcoin Core 0.13.2 to Bitcoin Core 0.18.1. Once consensus affecting features are enabled, this version is no longer compatible with previous versions and an upgrade is required. Due to the upgrade from Bitcoin Core 0.13.2 to 0.18.1, this version incorporates many changes, so please take your time to read through all previous release notes carefully. The first time you upgrade from Omni Core 0.6 or older versions, the database is reconstructed, which can easily consume several hours. An upgrade from 0.7 to 0.7.1 is seamless.

To view the complete release notes in your browser and download the binaries, please visit:

State of the Layer: End of Year 2019

Omni Core v0.7.1 released

State of the Layer – End of Year 2019

Omni State of the Layer, End of Year 2019

Lots of news to share in this year-end update!  This update includes the following sections:

  • Omni Core 0.7.0 Release
  • Omniwallet User Experience Refresh
  • OmniBOLT development updates
  • OmniLAB Syllabus 
  • Omniwallet-Mobile from OmniLAB
  • Electrum Plug-in
  • Specification Cleanup
  • OmniJ and related work
  • Decentralized Exchange Upgrade
  • Regional and Functional Restrictions

Omni Core 0.7.0 Release

Thanks to the sponsorship from Tether, Omni Core maintainer dexX7 ( and Peter Bushnell (, the creator of Feathercoin, have completed and released Omni Core 0.7.0.  Among other features this release rebases all Bitcoin Core 0.18.1 improvements into Omni Core.

Major updates are much faster indexing of transactions and the update to the decentralized exchange as described later.

Release notes for this major upgrade can be found on GitHub:

Omniwallet User Experience Refresh

The talented team at Rana Dev ( has been engaged to create a new, updated version of  The Omni team asked them to focus on usability and streamlining the most used aspects of the wallet, and to make the wallet work on mobile web.  Initial prototypes are looking amazing and the team is pleased to share some examples of the new interface below:

OmniBOLT development updates

OmniBOLT is an in-progress specification, based on the fundamental theory of Lightning Network, describing how to enable Omni Layer assets to be transferred via Lightning Network channels, and how Omni Layer assets will benefit from instant payment on Lightning channels. We propose this Omni Layer-capable extended protocol to expand the horizons of basic Lightning Network, to support Omni Layer assets. 

The OmniBOLT Daemon (OBD) is a golang implementation of the specification. It runs as an independent process connecting to a full node of Omni Core (version 0.7.0), which provides the on-chain services for Omni transactions on the Bitcoin network. The current OBD implementation is tightly-bound to Omni Core. Also currently being released is an API that enables light clients to communicate with OBD network. It is an easy way for our community to develop Lightning applications. 

Development summary:

  1. Applied the HD (Hierarchical Deterministic) mechanism for generating/managing OBD users’ address/keys/mnemonic words.
  2. Finished HTL Contract for single node version of OBD. Tested on a user base of hundreds. 
  3. New OBD test procedures and documentation are updated.
  4. Update the OBD API online document (, completed the HTLC related API descriptions.
  5. Update the READ.ME file of the OBD repository( This document is a step by step instruction for a brand-new user of OBD.
  6. Released one OBD demonstration video.
  7. The OBD query interfaces have been developed and improved, and an interface for querying user-related information has been added.

The following tasks are in our working pipeline :

  1. Work in parallel with Omni Core team, who are developing new interfaces supporting SegWit in Omni transactions. We currently use some tricks to circumvent this part of work, in order to prove the concept. It works but is not secure enough. After the new features of Omni Core are ready, we will change our code base to the new Omni Core.
  2. Larger scale tests of HTLC.
  3. Try to connect OBD to the LND network. At least we hope we can connect to the existing onion network.
  4. Or develop own network module, to enable OBD nodes to talk to each other.
  5. Complete path discovery/finding algorithms and transfers among multiple OBD nodes and any number of clients.

Online API documents for our community:

For details of Update:

Please visit for more information.

OmniLAB Syllabus 

There is one aim for this syllabus: to instruct relatively unsophisticated programmers / audiences to understand the background, basic theory, and application of blockchain technology, grasp fundamental concepts, technical processes, specifications and their applicable scenarios. After passing this examination, audiences shall become a specialist with ability to develop blockchain products and applications. We are looking for the cooperative institutions globally to spread our certification standards and the technical culture of Omni. 

Strategic Partners till this moment: Odaily  Blockbeats  Ccvalue  BTCU 

Please find more details here: 

Email: for cooperation. 

Omniwallet-Mobile from OmniLAB

We have also begun working on mobile versions of OmniWallet, testing binaries are available in our repo. OmniWallet-mobile is a native wallet for Omni Layer assets, released on both Android and iOS. It currently supports Bitcoin and all Omni Layer tokens, providing Bitcoin & Omni Layer users with an ease-of-use and unrivaled blend of security. The wallet is completely open source, which includes a set of standard backend services, written in java/golang, and a mobile side app written in Dart (Flutter framework by Google).

OmniWallet Mobile:

Electrum Plug-in

A team of developers has created an electrum wallet plugin which supports Omni Layer assets.  This will allow any electrum-based wallets to begin using Omni Layer assets such as USD₮ directly.  These haven’t yet been put into the official electrum client but are available for testing here: 

Specification Cleanup and Documentation Efforts

We have recently started a project to update the Omni Protocol Specification and related technical documentation. This work has already begun and will ultimately include:

  • Converting the document from basic Github markdown to the more full-featured AsciiDoc markdown format.
  • Removing obsolete and historic sections of the Specification to focus on the details of the Protocol itself.
  • Updating the specification to include details on Class C transactions and other new features.

We also have created the Omni Layer Documentation Project repository. The README for this repository includes links to important existing documents. (If something is missing please let us know by submitting a Pull Request.) This repository also has a directory containing our first steps towards implementing Omni Layer Enhancement Proposals (OLEs) that will be the Omni equivalent of Bitcoin Improvement Proposals (BIPs).

OmniJ and related work

The OmniJ lead developer, Sean Gilligan (, has been hard at work on improvements in bitcoinj and OpenJDK-based wallet framework technology that will allow us to build a bitcoinj-based Omni Layer wallet that can ultimately be deployed on mobile, desktop, or server.  Since bitcoinj provides lightweight serverless blockchain access (SPV mode) this architecture provides nice decentralization at the Bitcoin layer and only relies on Omni Core API servers for Omni token balances. The initial focus is on a desktop wallet, which should be appearing in alpha-test versions. OmniJ will also be updated to finally support Class C transactions.

Decentralized Exchange Upgrade

As some know – but few use – the Omni Layer provides a fully-decentralized exchange mechanism on the Bitcoin blockchain: one feature allows you to swap between BTC and OMNI tokens, and another allows for the exchange between any Omni Layer tokens (e.g. USD₮ <-> MaidSafe).  The team calls these the DEx and the MetaDEx. With the 0.7.0 update Omni Core and the forthcoming Omniwallet interface update, the team would finally like to open up the primary decentralized exchange to work between BTC and any Omni Layer token directly on the Bitcoin blockchain. The team is working on the functional interfaces within Omniwallet and the proper RPC calls within Omni Core, at which point the Feature Activation transaction necessary to make the feature live will be broadcast to the blockchain. Regional and Functional Restrictions

Finally, the team has decided that due to laws and regulations prohibiting the export of services and technologies to certain countries and jurisdictions, is now blocking all connections from the following countries:

  • Cuba
  • Iran
  • North Korea
  • Sudan
  • Syria

Also, in the forthcoming version of, users in the United States will no longer be able to use to interact with the on-chain Distributed Exchanges available on the Omni Layer protocol on the Bitcoin blockchain. Other wallet functions will be unaffected, and read-only information about offers, trades and prices from the DEx will remain available on Omniwallet and Omniexplorer. While this was a difficult decision, it protects the ability of the Omni developers to continue innovating cutting edge decentralized technologies for the benefit of all users. 

Looking forward to 2020!

State of the Layer – End of Year 2019

Omni State of the Layer, July 16 2019

I’d like to start this update with the reminder that the Omni Layer is an asset issuance and smart contract protocol that runs on top of the Bitcoin network.  Some people have asked if Omni is a fork of Bitcoin, or its own network – and I wanted to reiterate that the Omni Layer is a meta-layer on top of Bitcoin. Omni uses the available space in the Bitcoin OP_RETURN mechanism to create an Omni Protocol ledger for tokens and smart contracts as a meta-layer on the Bitcoin ledger. In this way, Omni leverages the on-chain hashing power and security of Bitcoin’s Proof of Work system.

Tether itself is a tenant on top of the Bitcoin network.  When Tether was architected, I had in mind not only a token that would hold parity with a dollar, but something that would demonstrate the extra-special capabilities of a decentralized ledger, and what applications on such a technology could achieve.

Using the Omni Layer, tethers are issued as a meta-token on top of the Bitcoin network, using the messages that Bitcoin transactions commit to this decentralized ledger.  Instead of just moving a bitcoin, you were also saying “I’m moving a dollar from here to there.” In doing so, users would have a bearer-asset, just like BTC, with the same security and assurances provided to bitcoins on the Bitcoin network.

While tens of billions of dollars of tethers are traded daily on multiple exchanges off-chain, there are hundreds of millions worth of transactions daily on the Omni Layer, on-chain, directly on Bitcoin, moving those funds between wallets and exchanges.  This demonstrates an amazing capability that I believe is being overlooked. The Bitcoin network is exceptional for securely passing value, no matter which token, BTC, USD₮, or otherwise.

The community has focused so much upon the bitcoins themselves and not on the fact that what we have is an immortal state machine that no one can turn off and no one can censor.  Bitcoin’s built-in messages and capabilities can be extended with technologies like Omni that rely upon the immutability of Bitcoin ledger records kept within.  

While Tether has begun issuing USD₮ on other blockchains such as the ERC-20 variant on Ethereum, I wanted to remind everyone that no network has the massive hash-power and security that the Bitcoin network provides, especially with the coming switch to PoS on the Ethereum network.  If you care about immutability and security, or are a Bitcoin maximalist, we’ve built the Omni Layer for you!


Tether Sponsorship

We are excited to announce that Tether has provided sponsorship for additional developers to bring Omni Core up to par with Bitcoin Core 0.18 and to create further innovations on the protocol.  The new release is currently being tested and should be available soon. The new release brings tremendous performance improvements, as well as cost savings due to much better fee estimation for transactions.

Peter Bushnell (, the creator of Feathercoin is working with Omni Core maintainer dexX7 ( and Adam ( to get this release finalized.  

Additional functionality will be added to the protocol soon, to support native Segregated Witness transactions and features like send-to-many, enhancements that can lower the cost of individual transactions and keep cost low and integration needs easier for exchanges and integrators.  We are also speaking with the Lightning and RGB community developer teams to determine how we can best integrate with them for off-chain asset movement.

Any individuals, exchanges or integrators who would like to submit recommendations and feature requests can do so by submitting a new issue on the Github Spec (, emailing or join the telegram chat (  We’d like to compile a list of all integrators so that we can timely publish news and keep in communication with updates and recommendations.


Omni Layer Protocol Specification Updates

We are in the process of updating the Omni Layer protocol specification. This should help integrators better understand the data format used in Omni-encoded transactions. In addition, we are looking at ways to improve or optimize the protocol to allow for additional functionality.

We are looking into new ways that developers can encode instructions in OP_RETURN messages, to further enhance the capabilities of the protocol.  Beyond decentralized exchange functionality, we are considering a number of options that would allow for different types of conditional sends of assets, in a more generic smart-contract language.  We solicit any ideas and recommendations on what functionality is possible.


Upcoming Updates

In the coming weeks, we have updates to share on a number of exciting developments:


Omniwallet-Mobile from LunarX ( redesign

Electrum Wallet Plug-in

OmniJ and related work

Omni Layer on Feathercoin

Decentralized Exchange Updates


Invitation to developers

Anyone who has looked into the Omni Layer and realized what it actually can provide on the Bitcoin network gets really excited about the future possibilities.  We invite curious developers and innovators to examine the capabilities of meta-layer transactions on top of the Bitcoin blockchain and to contribute ideas to accelerate the development of new features on this time-tested platform.


Omni State of the Layer, July 16 2019