Skip to main content

20 posts tagged with "dex"

View All Tags

· 3 min read
J.

banner

What's Been Done

  • Our team has finally released an official update for the light/dark scheme in Hashgreen DEX after fixing some bugs that occurred when switching between schemes. We've also made small adjustments to the color composition of the page in different schemes to increase readability. You can set up dark mode by clicking the switch button at the navigation bar.

  • We've also worked through a few bugs of the frontend interface, making sure that your feedback is received and dealt with at all times.

What's Rolling

  • Wallet integration for Goby is coming! 😍 The development team has been devoting to finalizing wallet integration into our DEX, and now we are one step away from the one-click trading experience that you've all been waiting for. Before the launch of Goby integration, which will soon be announced, we would like to invite you to help us test the wallet integration on the testnet and give us some feedback. (Instructions are given below.)

  • We have also started a poll at our Twitter, inquiring your feedback of which part of the integration that you love the most and which part of it can be improved. After you've tried it out at the testnet, please visit the page, vote, and leave us a comment. You can also visit #ideas-and-feedback channel at our Discord to share with us what's your thought about it.

How Can you help to test the wallet integration?

We will create a test market TFRIES/TXCH at the testnet and upload enough offers of TFRIES requetsing TXCH for you to make offers. You can also create offers with either one of the coins.

Follow the Steps to Test Goby Wallet Integration

  1. Make sure you have installed Goby wallet in your PC.
  2. Enter Hashgreen DEX's testnet.
  3. Connect your Goby wallet with Hashgreen DEX.
Figure: Hit "Connect Wallet" at the navigation bar and the tab "Choose Wallet" will show up.
Figure: Choose Goby as the wallet to connect. Then a tab will pop up.
Figure: Type your password to unlock your Goby wallet.
Figure: You have successfully "Connected with Goby".

  1. Switch from Mainnet to Tesetnet10 in your Goby wallet.
    • Open your Goby wallet web extension.
    • Go to Setting.
    • Hit Advanced Options.
    • Hit Networks.
    • Change from Mainnet to Testnet10.
Tip

Once you've switched from Mainnet to Testnet10, the color of your Goby web extension should change from green to blue. That's one way to tell if you have done it successfully. 😏

  1. Visit this page and paste your address (It will be a long string beginning with "txch") to collect TXCH. You may wait several minutes until TXCH is received.
  2. Go back to the trading page to make offers with TFRIES/TXCH.
  3. Give us your feedback at our Twitter or Discord.

· 2 min read
J.

banner

What's Been Done

  • Our team has released a brand new landing page of Hashgreen DEX. Over the past week, We've renovated the look of our landing page, including a few navigation components. We've also added a live market status menu in the landing page, allowing you to instantly check upon the trade information at the landing page.
Figure: A brand new landing page is out!
Figure: Scroll down to browse the current market status in the landing page.
  • You can browse the trading pairs or you can type in the search bar to search for the markets. Once you've identified the trading pair, you can hit the Trade button at the right end of the live status, and you will be directed to the exact trading page in Hashgreen DEX without having to select the market pair again.
Figure: Type here to view the live market status!
Figure: Hit the button to trade. It will lead you directly to the trading page.

What's Rolling

  • The development team has been striving to release major updates that we planned to integrate into Hashgreen DEX. In light of the situation that we decided to prioritize and focus on the major updates, the release for an optimal internationalization will be postponed. The language switch will therefore be temporarily taken down for maintenance in the near future.

  • The team has been working on an update for the light/dark scheme. We will optimize the switch and release it soon.

· 4 min read
J.

banner

Hello to all the readers, who have stayed with Hashgreen along the way!

My name is James, the newly hired community lead of Hashgreen. I will take charge of the Weekly Update series and carry on providing information for future product updates. Harry will still publish tech blogs from time to time, leading you through finer details of Blockchain technology related to Chia and Hashgreen.

Over the month, the Chia community seems to have been less active than before, yet with the recent release of Chia Blockchain 1.3.4. As for us, we have made a few updates on Hashgreen DEX.

What's Been Done

  • Over the past few weeks, our DEX development team has implemented multi-offer upload into the web interface to make the process of transactions quicker and easier! Users can now upload multiple offer files simply by clicking the upload button or dragging and dropping offer files directly into the page.
Figure: You can now upload more than one offer file!
  • A new design of open orders and order history (now called my orders) is released. It's easier now for you to check the status of your orders and even make adjustments to it with a few clicks. Details of the trade information will be shown in the display board. The two dropdown menus at the top allow you to filter certain types of offers that you wish to see. You can also cancel your offer using the cancel button in the action column. Or you can cancel multiple offers by selecting them at once.
Figure: Click all markets or all status to manage your orders.
  • Our team has updated a new interface for the order book, in which we re-oriented the menu of the offers. Offers asking or bidding a certain coin will be aligned with each other. You are able to expand or close the panels, to either compare the asking and bidding price or leave the order book with only one of the offers presented.
Figure: You can zoom in to see specific types of offers.
  • We have released an update for the header! We add a control button where old headers are put together with the user ID button that was temporarily removed. Light/dark scheme switch and language options are moved to the header as well.
Figure: User ID allows you to sync between different devices.
Figure: Here is the button to copy your user ID.
Figure: To merge records, press import once you enter your user ID.
  • We've continued to iterate with new features in the DEX, some of which are dedicated to the feedback from our Discord community.

What's Rolling

  • AMM is still under slow but steady development. Enabling AMMs on the Chia Blockchain turns out to be a really hard problem! If you'd ask us when you will have HashgreenSwap to test out on the testnet, we expect it to be here in another two quarters! In the meantime, we are starting to think about the tokenomics for the Hashgreen Token, to not only allow the profits to circulate back to the community but also create an active and healthy scheme that lasts long.

  • In order to ameliorate the user experience, the UI/UX team will continue to remodel the web interface. We are working hard on the new landing page besides a few more integrations!

· 7 min read
H.

banner

Over the months, since the release of Chia Asset Tokens (CATs) and Offer Files, we have seen a whole herd of CATs. At the time of writing, there are 289 CATs listed on TAIL Database, 580 CATs tracked on spacescan.io, and 72 CATs traded on Hashgreen DEX.

In the past two weeks, we have implemented automatic tokens importing from TAIL Database, and starting this week, we will synchronize our CAT markets with them on a weekly basis. Original (OG) tokens that are already listed with us will receive a blue checkmark to signify that we know what party is behind the token and where to contact the issuers.

To allow users to browse over CATs more efficiently, we categorize CAT markets into several types - stablecoin, NFT-like, meme tokens, platform tokens, and Chia official tokens. You can also search for and star your favorite tokens directly in the menu, saving you time and hassle to search up the CAT.

The new market selection menu allows you to quickly search up your CATs 😍

As a DEX development team, we have seen various project teams during the period trying to engage their community in very creative ways. Specifically, there are a few different ways that we think are exciting that involve the Hashgreen DEX team in the loop, and we would like to share their experiences with you, in hopes of inspiring the future development of the Chia community.

Airdrop

Airdropping your tokens is the best way to get traction from the community. After all, who doesn't love free tokens? There are a few project founders who have worked with us in the past to utilize our soon-to-be-released™ airdrop tools.

Niocoin (NIOC), Nine (NINE), Fund My Laptop (FML), and Zomb Studio (ZOMB) are the projects that worked with us to airdrop their tokens, under the condition that token receivers have followed their social media accounts and Hashgreen's Twitter and Discord.

Over the airdrop campaigns, we have tested several aspects of our code, including blockchain reorgs, duststorms, and our smart batch execution of airdrops. Resilience to these network conditions, and having a framework to minimize the impact of the UTXO (or coin set) model on the transaction execution are crucial for all the development teams on the Chia Blockchain.

What is a re-org (re-organization)?

Re-orgs happen when there are temporary blockchain forks, and subsequent farmers ultimately choose one to continue, leaving the rest re-org'ed. What the users will experience is, that the supposedly settled transaction will revert from its temporarily confirmed status, and this feature of the blockchain is exactly why on Hashgreen DEX we employed a 16-block confirmation to allow you to track how sure the fund settlements are.

What is the dust storm?

Reddit explains it better than we do, but essentially some parties are spamming useless transactions on the blockchain, creating congestion and fee market at the same time. To note, this is perfectly normal - there is nothing shady with creating a dust storm, as blockchains are built to withstand these transaction requests. The dust storm transformed the Chia Blockchain into a place where all project developers and users are required to be aware of fees, which is healthy and sustainable.

To summarize, here are some catches with airdrops:

Advantages

Airdropping brings high traction for your project since you directly provide them values, whether that value can ultimately be realized or not.

Caveats

Airdropping would unavoidably distribute a large number of your tokens to the wild so that there will be more supply than demand for a certain period that follows. Make sure you have the corresponding plan to create demand by implementing events and platforms for people to meaningfully use your token.

Peer-to-Peer Token Offering

There is a load of exciting NFT projects going on on the Chia Blockchain! While the NFT standards are still under development, a few token communities are already offering fungible tokens that are promised minting rights, and some of them bootstrapped their NFT projects on Hashgreen DEX!

Space Marmots Premium (SM1) and Ultimate Farmer Club (UFCG) worked with us to utilize our market and order book API to automatically provide peer-to-peer offerings to the users. They combined have more than 100 successful token sales on Hashgreen DEX, and these events were very successful due to the project development teams' swift actions and a diverse set of capabilities that our trading API provides.

Catmosphere (CATMOS) employed a cool strategy where they not only were selling their token at a price of 0.0010 XCH, but also offering a buy-back at 0.0011 XCH. All of these were done programmatically, and users can buy/sell the CATMOS token at will. The offerings provided an anchor to the price of CATMOS, and brought interest into the Catmosphere community and Hashgreen DEX. Over the period, CATMOS was even the most traded asset on Hashgreen DEX!

What can Hashgreen DEX API do?

We offer a variety of functionalities from market exploration and public order book information, to private order management. The market statistics endpoint which provides real-time token price information and capitalization, is now being used by TAIL Database and XCH Universe (Let us highlight you by reaching out to [email protected] if you are also using them!).

Advantages

P2P Offering is a wonderful stage for NFT projects as we head into the heated development of NFT standards, which will be finalized sometime in the near future. It also provides the development team with sufficient funding to kick start their further larger-scale development.

Caveats

P2P Offering requires that you run a close-knit community group, and it is very prone to introduce user complaints when not enough updates are given back to the community.

Trivia

As many project devs have found out, community members love to accept challenges to pick their brains!

Space Marmots Premium (SM1) and Easter Egg (EGG) ran their exciting trivia events respectively on Groundhog Day and March 9th. Their formats are not exactly the same, but both involve a series of meticulously designed questions that lead to some web pages, further pointing to more carefully hidden links with steganography. In these links, community members can find their offer files for the CAT as a sweet reward.

We at Hashgreen had much fun co-hosting and spreading these events, and were more than happy to work with any project devs!

Advantages

Trivia is the most intimate event you can host with your community. It sets up this metaverse for them so they learn the backstory of the project, tokens, and dynamics. They can even act as future advocates for your project!

Caveats

Obviously, you cannot send out a large amount of your tokens on a trivia event - it is meant to be special and rewarding. It also takes quite some time to design the trivia questions and make them decently challenging but not excessively challenging, so your event ends within a defined time frame.

Summary

We talked about three different ways to kick start your Chia Asset Token (CAT) project: airdropping, peer-to-peer offering, and trivia games. There are a lot more CATs we are trading now on Hashgreen DEX, and we conveniently categorized them for you: stablecoins, NFT-like tokens, meme tokens, platform tokens, and official Chia tokens. We believe it is an exciting exploration scrolling through the different categories, and maybe you can find another cool project to follow in the long run!

Start peer-to-peer trading today on Hashgreen DEX at hash.green.

· 3 min read
H.

banner

What's Been Done

  • Over the past weeks, fees on the Chia Blockchain seems to be here to stay. To allow our users get their transactions on chain quicker, we now provide users with the ability to supply fee by adding to the supplied Chia amount or removing from the requested Chia amount in their offers. The suggested fee is hinted on the pop-up window for order book items, and is currently 0.0001 XCH. We chose this number since it not only suffices to be on top of the mempool, but is miniscule (7 cents USD at the time of writing) for users. In the future, we plan to implement more accurate fee estimators to give better fee hints and save you some bucks.
How is it done?

With Chia offers, Hashgreen is able to redirect the provided fees into a temporary address, then we generate a SpendBundle on the fly to spend the extra amounts as fee. This SpendBundle is then aggregated with the user offers before we push it to the Chia Blockchain.

Figure: These are two different options you can provide to match an offer you like

fee-prompt

  • We made it easier for users to submit your orders! Simply copy the amounts provided in the pop-up panel when you hover on the offers you want to match against with the copy button. You can also paste your offer file string directly on the web interface.
Figure: Here are the button to copy your preferred amounts to supply

copy-fee

Figure: In the official Chia wallet, use this copy button to copy the raw offer file into your clipboard

copy-offer

Figure: Press this big paste button to upload your offer file

paste-offer

  • Many partners are starting to integrate our Market Statistics API into their platforms. The previous generation were slow and bulky, taking nearly 30 seconds to complete a call. We have optimized it to return the results in under half a second.

  • New market selection menu is now available at UAT interface. If you want the UAT interface to connect with mainnet, head to UAT settings and toggle on PROD.

market-selection

  • We fixed many bugs on the frontend interface, including incorrect display of order status (sometimes it shows "Confirming undefined"), and user token retrieval errors.

What's Rolling

  • The smart coin team is coding up the first version of AMM coin driver for an MVP AMM protocol. As time goes on, we will gradually implement more standard functionalities in current AMMs!

· 2 min read
H.

banner

What's Been Done

  • Over the weeks, we have been observing some users to submit deliberately mispriced orders and as a result, displacing the price reported in market statistics. We have adopted feedback from our community member Bluemoon to filter trade prices according to the current order book. The price field now is a stabler measure of the market. For existing API users who require stable price sources, there is nothing you need to do; for developers who want to see all trades including the mispriced ones, please check out Trade History API.

  • You can now access all market statistics with Market Statistics API by leaving the market_id field blank.

  • Over the course of the week, we added several tokens, including Little Lambo Coin, Green Wings, and Easter Egg. These community developers are have a blast with all kinds of activities! Active participation from community members is a critical factor to a project's success, and we enjoy co-hosting all sorts of events to foster the communities.

  • We implemented support for fee on Hashgreen DEX and will soon roll out on the mainnet. Under dust storm conditions, it might take a few hours to settle your trades, but now you will be able to optionally receive a little bit less XCH or pay a little more XCH as the network fee to expedite your orders. The frontend will indicate the suggested fee according to network conditions, and usually a 0.0001 XCH will get your offers settled in no time!

  • The UI/UX team continues to implement the product facelift.

What's Rolling

  • Goby integration, after reaching out to the Goby team, turns out to be not possible at the time of writing since the ability to make offers from Goby is still being implemented. Current integrations on other platforms rely on the offer taking feature, which has already been a part of previous Goby feature set. As briefly explained in a blog post, we believe an efficient DeFi system would require the operators aggregate the offers, so we are now waiting good news from the Goby team about the offer making functionality.

  • We soon will start listing all tokens on the TAIL Database, compacted in the new market selection menu. You can even star your favorite CATs!

· 3 min read
H.

banner

This is a long overdue update to the community! During the past two weeks, we are looking at other aspects of development on the Chia Blockchain.

What's Been Done

  • We worked with many project developers, including NINE, NioCoin, Zomb Studios, and FundMyLaptop on their airdropping campaign with our in-house airdrop tools. The need for such a tool for project developers cannot be overstated, and we managed to test it fairly thoroughly over the duststorm, sending out thousands of transactions on Chia. The airdrop tools is aimed for a open source later this month.

  • The chialisp team is developing a chialisp library that enables secure smart coin development on Chia, much like OpenZeppelin on Ethereum. The goal is to not only establish a set of tools for easier smart coin development, but also re-implement some standards (e.g., CATs) for these advanced developers to understand the use case. Below is an sneak peek on the square root function we implemented which would be a core utility function for AMMs!

(
;; Babylonian method for square root.

(defun cypher.math.sqrt-loop-babylonian (var var1 var2)

(if (> var1 var2)
(cypher.math.sqrt-loop-babylonian
var var2 (/ (+ (/ var var2) var2) 2))
var1
)
)

(defun cypher.math.sqrt (var)
(if (> var 3)
(cypher.math.sqrt-loop-babylonian var var (+ (/ var 2) 1))
(if (> var 0) 1 (if (= var 0) 0 (x)))
)
)
)
  • The backend team wrapped up integration with the TAIL Database. We now have all the community CATs in our database, and once the new market selection menu is rolled out, you will be able to easily search up token markets!

  • The UI/UX team worked through the first draft on the user interface refactor on Figma.

  • We onboarded a frontend engineer, Henry, to help with mobile wallet integration. He will work with Goby wallet to enable that one-click trading experience.

What's Rolling

  • Goby integration is apparently the most requested feature! However, unlike offerpool and offerbin, Hashgreen implements our technology to be an offer aggregator so the raw offer files are never exposed to fellow users. We instead ask the wallet to upload a counter-offer to our website, which we can then be combined with existing offer on Hashgreen for blockchain execution.

  • Due to the shear number of CATs out there, we are prioritizing the market selection menu refactoring. The upgraded menu would allow you to easily navigate hundreds of CATs, star your favorite ones, and group CATs by their types.

  • We noticed that there is a need for a robust transaction micro-service to handle dApp requests, especially during the duststorm where fee is non-zero and when everyone suffers. This transaction micro-service will not only deterministically make sure a transaction is delivered, but also provide on-chain fee estimates for our upcoming dApps.

· 3 min read
H.

banner

What's Been Done

API Access

Trading API has been the biggest update for the week. We are committed to provide a diverse set of API for developers so the community can grow with us. At the same time, we would like you to be explicit about the usage of Hashgreen APIs in your products to spread the words! Let us know your story and the creative use of both open market information and statistics.

  • We added USD quotes and USD volume in the market stat endpoint. The fully diluted market cap for the base currency in USD (the token in the front of the trading pair) is also provided as a ball park measure of how big the token is.

Note that the reference prices are only estimates are can be vulnerable to self-trading exploits. Please do not use currency price quotes directly in mission critical systems but only as a good reference.

User Interface

  • The frontend team has been working hard on i18n (check out the beta site), and will be soon be pushed to the production site. We are offering Chinese and Spanish as a taste test, and are preparing for a community-based translation campaign!

i18n

  • The aforementioned market statistics are now displayed as a part of the market header. You can easily judge market liquidity based on the USD volume.

i18n

  • We've also worked through a bunch of frontend bug fixes including market selection menu overflow and asset filter menu. We won't bother detailing them but rest assured we are incorporating community feedback.

What's Rolling

  • Now that we have the fully diluted market cap, we are making a market overview menu to highlight the most traded and the highest cap tokens.

  • The fully diluted market cap does not holistically represent the true market capitalization as any whale can HODL the majority of the tokens. What is more representative is the market cap based on circulating supply which can be tricky to automatically detect on Chia. We are working on some smart algorithms to pick that up from the blockchain.

  • In the long run, we realize we need a more elegant product UI to streamline user experience. The recently onboarded UI designer is starting to work hard on the refactor.

  • We had some very fruitful discussion on the mathematical design of automated market makers (AMM). There are some pretty important implications translating everything from account-based to coin-based models, and we are pretty sure we nailed it correctly.

· 3 min read
H.

banner

Happy lunar new year everyone! The Asia-based Hashgreen dev team had a great lunar new year over the past week! We find that our Discord community has been very active, and some updates might get buried under the exciting updates on new CAT tokens joining the family every other few days. Hence we are starting to update you about our technical progress on a weekly basis.

What's Been Done

User Interface

  • We added the light/dark scheme switch to make your eyes more comfortable, located in the footer section.
  • Right beside the market selection button, there is a row of market statistics showing 24h high, 24h low, volume, and the current price.

API Access

  • To facilitate automatic trading, we released our first API doc on trading, including the ability to list markets, order books, and personal order creation/cancellation. We envision more and more participants can be in this process to reach the best market efficiency, involving arbitrage loops across Hashgreen DEX and other exchanges. In the loop, you will have to involve Stably Prime as they are the only stablecoin issuer on Chia right now.

  • The statistics of markets can now be retrieved via stat API. In the first version, we provide 24-hour statistics on the traded volumes, and are working towards representing the volumes in USD.

Personnel

  • We onboarded a UI/UX designer, Ann, to help us improve our product further. There are some complicated integration with our partners including the official Chia wallet, a in-development Chrome extension wallet, and potentially one other browser-based wallet. We imagine the UX flow to be increasingly complicated, and hence it is time to involve specialists.

What's Rolling

  • I18n is coming! We aim to build Hashgreen DEX to be a platform everyone in the world can enjoy, and we soon will need your help to translate our product!

  • The smart contract team is working on several chialisp designs, which can be a pretty prolonged process as it requires not only security audit but implementation and integration with wallet partners. One of the most immediate improvement to the Hashgreen DEX is to use an alternate version of offers to allow partial filling of offers.

  • The next critical piece for the on-chain economy and DeFi will be Automated Market Maker (AMM)! AMM implementation on the Chia Blockchain will require some bells and whistles though, and we are working very hard to propose a first draft. This set of chialisp implementation will not only be secure and fair from a user's perspectively, eliminating potential extractable values. All of these are still in development, but we want to stay tuned for more exciting updates!

· 13 min read
H.

Hashgreen successfully released a decentralized exchange on Jan 12, 2022, in a joint live event with Chia Network. If you were not at the event with us, here is a clip of the presentation on the Hashgreen Decentralized Exchange (DEX).

Chia Blockchain introduced its first on-chain atomic token swap standard, powered by the underlying smart coin language Chialisp. Using this standard, users can start exchanging tokens on the chain, including the Chia (XCH) token and other Chia Asset Tokens (CATs). This functionality opens a lot of possibilities on the blockchain, including the first batch of dApps, with Hashgreen DEX being one of them.

We at Hashgreen have been working hard for months to develop the project and integrate our interface into the official Chia wallet. After the successful launch, we received many questions on how and why we decided to build Hashgreen DEX this way.

In today's post, we want to take you through a journey - a journey on Chia's most basic technical building blocks, how and why we crafted the first DEX on the Chia Blockchain, and finally, how we envision DeFi will look like on Chia.

Prologue

Let's not pretend this has never happened. You opened up your Chia wallet, trying to exchange some Chia (XCH) for some Stably USD (USDS) on the Hashgreen DEX. This popped out, saying you have a lot less spendable balance than you have total balance...

Oh No!

...what happened! If I have all the XCH, why am I unable to send them all, or make an offer out of it? Well, UTXO is the main culprit here.

UTXO

Short for unspent transaction outputs, this is nothing new and was introduced by Bitcoin. Instead of having a balance sheet for every user on the blockchain, Chia tracks your funds using UTXOs (or, rather, coin set to be more accurate), which is a technically fancy way of referring to coins. Coins have predefined ways to be spent, and are capable of producing coin outputs when they are spent. Moreover, any given coin is only ever created once and spent once -- and that's it! This philosophy focuses on tracking the change of state on the blockchain as opposed to recording the whole state.

info

You can easily track how many coins are created in the blockchain using explorers.

The choice of using UTXOs on Chia leads to many interesting and advantageous properties:

  • The verification of coin spending is highly parallelizable since each coin can only have one interaction. In contrast, account-model-based blockchains need to handle transactions sequentially.

  • The balance is a first-class citizen on the Chia Blockchain! Instead of being a state stored in a mapping table, every coin on Chia has an explicit amount, the total of which has to stay constant. (Well except when you farmed a block, you receive 2 XCH in total out of thin air.)

  • Since the transactions in a single block are order-less (i.e. their order does not matter as long as they are included in the block), the attack surface of smart contracts reduces drastically. In other blockchains, we often hear the term Miner Extractable Value (MEV), which refers to the profit that a miner could secure by manipulating the ordering of the transactions.

info

It is estimated that over $576M MEV, as of the time of writing, has been extracted from Ethereum.

With these seemingly wonderful advantages, it sounds like a no-brainer that every chain should adopt this model as opposed to the account model. Apparently there are some trade-offs; trade-offs that takes additional effort to mitigate but are definitely worth it.

Implications to Users

Let's hop back onto our spendable balance problem.

When we make transactions, we are in fact spending a coin or coins that might sum up to more than what we try to send. For example, imagine you are a lucky farmer who farmed a 1.75 XCH coin and wish to send 0.1 XCH to your friend to let them HODL. When you send the XCH, you are actually destroying the initial 1.75 XCH coin, creating a 0.1 XCH for your friend, and sending the rest 1.65 XCH back to yourself. During the wait for the change coin to come back, your funds are effectively reduced, and that is why the Chia wallet shows a lower spendable balance as you cannot double-spend a coin.

Offers are more or less the same: as you create offers to exchange your tokens, you do not want to accidentally spend your coins and invalidate the offer. The Chia wallet was kind enough to soft-lock the coin so that it cannot be used, until you either cancel the offer or when the offer has been fulfilled.

Implications to Developers

The UTXO model, while having a significantly smaller attack surface than that of the account model, is trickier for protocol design. If you still remember, transactions in the same block are spent simultaneously and every coin is only spent exactly once. This implies that if we want to build a more advanced application, we have to design while keeping the ability to perform multiple interactions in mind. Take a very basic application for example - an automated market maker (AMM).

The most renowned instance of an AMM is Uniswap where swappers would exchange their assets with a liquidity pool at a market price determined by the amount of assets held in the pool. When Uniswap contracts are executed, they run sequentially, creating an interaction between the swapper and the pool each time. Yet on the Chia Blockchain, we cannot naively queue up user exchange requests sequentially, since there is only one pool with one coin present. This produces several challenges: For example, exchange operations would need to be aggregated somehow to interact with the pool together. Furthermore, we need to ensure price fairness, resist against denial of service attacks, and overcome many other problems!

There are many proposed solutions on other UTXO-based blockchains, and for the sake of brevity, we will include the discussion in future posts.

tip

In short, clever design choices have to be made for dApps, but when smart contracts are carefully crafted, UTXO-based blockchains have better security guarantees and efficiency.

Chia's Take

Bitcoin was successful, but as a store of value, not as a successful technological demonstration. Bram Cohen himself wrote about how Chia's technical motivation stemmed from Bitcoin, and as a last-mover, Chia was able to get things right the first try.

On day one, Chia shipped with the full capability to process smart contracts (or, smart coins, to be more accurate). The on-chain language, chialisp, powers many existing features such as singleton, Chia Asset Token (CAT), and even offers. The programs for smart coins themselves were not actually stored on-chain, but rather, its Merkle root hash is. One does not have to reveal the program until the coins are spent, thus greatly reducing the attack surface. These smart coin primitives are also extremely composable, giving developers building blocks for their decentralized applications.

To date, there is a prosperous community around CATs -- project developers issuing their own tokens and project followers HODLing and trading. We at Hashgreen believe there are more exciting things to come in the Chia ecosystem, but first, let us take a look at how we built the Hashgreen DEX and why it is designed in this way.

Hashgreen DEX

Chia wrote an in-depth analysis about how offers work technologically and how they can be used in dApps. In case you have not read it, here's a quick summary:

info

Offers are serialized off-chain commitments to swap coins for coins. Anyone can take that file and complete the other side of the swap, sending it to the blockchain to settle. Without the other half of the trade, no one would be able to spend your coins or steal your funds.

It is intuitive that, you can send your offer files around in channels like Keybase and Discord, yet you will soon realize -- the prices you get are nowhere close to optimal. Liquidity is plain disastrous with vanilla peer-to-peer trading, and this is the main push for more advanced dApps. Some examples are OfferBin and OfferPool which provide offer upload, sorting, and download services. They operate just like Craigslist: users are responsible for submitting the offers, and pushing aggregated offers to full nodes on their own.

Problems We Solve

Interestingly, Hashgreen did consider this solution, and we observed several potential problems with this Craigslist approach and ultimately went with our current DEX approach.

  1. User Contention

    These Craigslist-like offer pastebins will ultimately face an unsolvable challenge with offer contention. Concretely, contention happens when an offer was downloaded by different parties and spent in the same block. In a fee market, the spends with lower fees will be discarded while the one with the highest fee will go through. While the fee rule itself is totally fair, users with an honest intention to trade in the market but using lower fees will unwillingly have to give up and look for other trades.

    Most users do not experience contention now since the market velocity is relatively slow at this point, yet in some cases when there are sudden spikes in trades, contention will become obvious. The SM1 token backed by Chris from The Chia Plot went on a sale on OfferBin, and one unfortunate conclusion Chris drew was that too many people participating in the auction can cause problems on OfferBin, in line with what we discussed above.

    That is exactly why we opted for a download-free solution: instead of users bringing the offers home and making their counter-offers, we aggregate offers on two sides, immediately bringing both down from the order book, and pushing them to the chain on your behalf. Not only are we unable to mess with your fund, but we also are unable to cheat you since the swaps are guaranteed by chialisp.

  2. Scalability

    We want there to be market makers in the game. We want there to be arbitrageurs in the game. We want there to be hobby day traders in the game. None of these would be possible without an API interface that is easy to play with and use. Hashgreen is drafting up documentation on trading API, which would be finalized soon. After its release, we expect people to take advantage of other existing markets to form a closed loop to both stabilize the price and increase liquidity. One interesting thing we have observed, at the time of writing, the XCH/USDS pair is typically higher in price than other XCH/USD pairs in different markets. We hypothesize that many interested buyers are gradually entering the market, obtaining XCH with their freshly withdrawn Stably USD, and obviously someone else can obtain XCH at a slightly lower price in overseas markets.

  3. Expandability

    There are many plans from Hashgreen to upgrade our DEX. To be a fully functioning DEX, one would typically expect there to be features like partial order fills, limit orders, and even market orders. We've identified some upgrade paths to the existing offers in order to support these features, and it wouldn't require a huge UX remake to integrate them. On the contrary, it might be somewhat confusing to implement these features into Craigslist-like services.

  4. Interoperability

    News about automatic market maker (AMM) development is on the street. Once an AMM is out on the market, we can easily hook you up to trade against AMMs with zero wait time for matching. Plus, we are always working closely with the Chia team to create a smoother trading UX experience from Hashgreen DEX to your Chia wallet!

Open Questions

Admittedly, several aspects need to be discussed in-depth about the DEX working principles, and we will briefly mention them here.

  • Operator Extractable Values (OEV)

    OEV not only covers the previously mentioned miner extractable values (MEV), but also covers the values extractable by aggregators like Hashgreen DEX. In principle, if there are enough orders on the market, they can create an overlap in prices. Aggregators, having observed this phenomenon, can pocket the spread by buying up the cheaper sell offer and selling off the more expensive buy offer simultaneously, pocketing the spread. While we are honest and only match exact offers from two sides, it is not guaranteed that every aggregator will be a good actor. In our preliminary exploration with AMMs, we have found some countermeasures to ensure aggregator honesty in a trustless manner with chialisp. The detail of the mechanisms will certainly be revealed and explained in-depth after we release the product, but for the time being we would love to work behind the curtains for some more.

  • Decentralization

    OfferPool sets out to be another offer pastebin site to combat the centralization of offer files. The arguments of anti-centralization do make sense up to a certain point, since those were the driving force behind the existence of blockchain technology. However, when already operating on a decentralized infrastructure, how much more decentralization is required is debatable, as having scattered decentralized services might lead to inefficiency in the application. Take an AMM for example, having more total values locked (TVL) in the protocol means that service users would enjoy a better price. Despite being centralized in terms of capital concentration, not a single party is able to single-handedly control the capital since the rules behind the capital movement are crystal clear. Hence we believe the better argument is that, the protocols need to be fully transparent to allow the blockchain to do its job at ensuring decentralized and trustless execution.

Summary

Working on the Chia Blockchain certainly brings many unique challenges to the Hashgreen team, and we want to tell you that this MIT-based team is not afraid of challenges!

Along the way, we have heard of perspectives on Chia's development purely based on its price, but this is simply an unhealthy view on a tech-heavy project. Being one of the first developers on Chia, we are journeying through its infancy as well as you are, and enabling more and more applications on our way. At any given point in time, we might find ourselves having to make trade-offs in either protocol design or system deployment, but rest assured that we take a first principled approach with the user's best interest at top priority. In order for us to communicate these complex ideas with you, we are starting this blog to periodically fill you in with more development progress and technological insights for the Chia Blockchain.

If you have more questions, you can refer to the FAQs or follow us on social media (Discord and Twitter). Thanks for staying with us!