Published September 16, 2025

The stablecoin race has been going on quietly for a long time until recently. Almost every ecosystem has its own stablecoins; Ethereum, Solana, and even Hyperliquid.

But how come there has never been a Bitcoin-backed stablecoin? This is where Hermitica’s USDh comes into the chat!

Perhaps you just heard about USDh and you’re curious about its internal mechanics. Or you are considering whether you should invest in it…

This short blog has everything you need to know; from how the yield works, to the risk, and even a review of the smart contract behind it.

What is USDh?

USDh is a yield-bearing dollar-pegged stablecoin backed by Bitcoin, instead of fiat or an algorithm. At the moment, it currently has a Total Value Locked (TVL) of $6.6 million.

Created by the Hermitica team, there are 2 main theses behind why USDh was created. The first is how no stablecoin is backed by Bitcoin.

Of course, some popular stablecoins like USDT are backed by dilution of Bitcoin, gold, and bond. But none is fully backed by Bitcoin.

Meanwhile, Bitcoin has proven to be the most sound monetary system over the years with incremental adoption and economic relevance.

Also, Bitcoin is an onchain asset that is not controlled by any nation-state, which makes it a perfect backer for a solid stablecoin.

Moving on, the second reason rests on how holding stablecoins doesn’t profit the holders. For instance, anyone who keeps $500k worth of USDT will still meet that same amount in the next 6 years.

For context, there are now avenues where you can stake USDT for rewards. However, none offers the percentage of yields that USDh currently places on the table.

USDh was created to effect a change where holders can get rewards, or yields as we prefer to call them. There is a promised 25% APY on USDh, and we will explain how such a percentage of yield is accumulated later on in this blog.

Hermitica has been running the token for over a year now, and its APY mechanics seems to be working.

Of course, this is not to mean an investor should 100% trust the system. Bear this in mind, because a protocol has delivered on a promise in the past is not a guarantee it will do in the future.

That said, the APY scheme seems to be among the highest in the market.

How is it created and pegged?

The system of minting USDh is pretty straightforward: any doxxed entity can approach Hermitica to mint the token, so far they are willing to deposit Bitcoin in return.

The main concern here is how Hermitica emphasizes KYC/AML. While these preconditions can be understandable from a regulatory perspective, they raise concerns on the cyperphunk philosophy, which is based on anonymity.

At the moment, these entities are largely exchanges and big protocols that want to provide USDh as liquidity within their products.

That said, they can always redeem their USDh back for their Bitcoin, if they so will.

Moving on to the peg, what are the systems in place to ensure one USDh is always equal to $1 USD?

This is where the concept of Arbitrage comes in. Hermitica has some approved addresses that can exploit the difference in the price for their benefit.

If USDh drastically drops to $0.7, they can buy up lots of the token and sell it to the protocol at the $1 tag to stabilize the market.

Again, if it’s the case that it’s higher than $1, they can mint more USDh at $1 to draw down the price to its peg.

Along this line, there is also an Hermitica Reserve Fund kept specifically to stabilize the market and manage any onchain stress.

So, where does the yield come from?

In DeFi, we say if you don’t know where the yield is from, then you are the yield. Yes, USDh promises an impressive APY, but you must also investigate how that yield is made.

Or else, you are one rug away – remember UST!

The yield mainly comes trading Bitcoin futures. If you are also familiar with futures trading, then you must be well aware of funding rates; simply put, it’s the fraction long traders pay to those who short.

Now, since Bitcoin is always going up, there will always be longed trades. As a result, long traders will always pay funding rates.

It is from these funding rates that USDh extracts its yield, demonstrated in sUSDh, to pay holders. See it this way.

Long Bitcoin trades → Funding Rates → Yield

What are the risks in buying USDh?

Just before you go ahead to add some USDh into your portfolio, you should be aware of the things that can go wrong and can potentially make you lose your bags.

It’s not the case that these risks will happen, but they sure have a chance of occurring. As a result, you should prepare your mind; diversify your holding, and be on the edge.

Platform Risk

There are many platforms involved in how liquidity is stored and moved for USDh.

The first one is the treasury. Hermitica seems to be quite transparent with how they are storing the funds at Copper and Cefu.

If anything goes wrong there, there will be instability in the market. But on a good note, there is no history of breach with these platforms.

The second one is the risk around exchanges. USDh revolves heavily around future trades, which heavily happen on exchanges. There can be market instability if these exchanges are hacked.

Excessive Bitcoin Shorting

The entire premise of generating yields is predicated upon the fact that traders will always want long leverage in Bitcoin. The aforementioned premise is further based on the fact that Bitcoin will always go up, and there will always be demand for it.

However, what if Bitcoin has a sudden marginal fall, and the desire to long leverage it drastically reduces? In that case, there will be no much yield, and the promise of 25% APY will be dented.

Meanwhile, recall how Hermitica claims to have a reserve. But what if the difference in the market is wider than what the reserve can fill to bring back stability?

The risk here is far beyond the promised APY, but the price and relevance of USDh as a token!

Smart Contract Bug

Of course, smart contract bugs are bound to happen. Fortunately, the USDh Clarity contract has been audited by two firms, even though that’s not a 100% guarantee that the contract is safe.

One would expect a bug bounty for whitehats who find criticals in the codebase, but that is not yet available as at when this blog was being drafted.

For a protocol with close to $7 million at stake, there should be a bug bounty program for security.

Examining the Tokenomics

For clarity, the official token economics of USDh was not made public; neither in the whitepaper nor documentation.

Nonetheless, there are some glimpses from CoinGecko and Hermitica’s transparency page, which we will use here.

Per CoinGecko, there are currently 6,318,068 USDh in circulation, and that is also the total supply. And there is also a total of $60k in the reserve.

Here are the currently platforms where USDh is available:

  • Binance – 41%
  • ByBit – 24%
  • Bitget – 23%
  • OKX – 7%
  • Unallocated – 5%

After examining the chart of USDh on a 1-year timeframe, it indeed has never gone below $0.998, which is fair in comparison with USDT and USDC.

How to Swap and Stake on Hermitica

Interacting with the Hermitica protocol is pretty straightforward. For instance, you can simply head to the application, and select swap, to swap maybe USDC to USDh:

An image on swapping USDC to USDh

For the staking mechanism, there are three tabs: stake, unstake, and claim. And you can follow them based on what you want to do:

An image on staking USDh

Full Engineering and Security Review of the USDh Smart Contract

One of the best practices you can imbibe as a DeFi investor is to ensure the security of the protocol you’re getting into.

First of all, ensure they have been audited by reputable audit firms, and read the reports to see the severity of the findings identified.

Secondly, this is not the industry where you rely on someone to do the homework for you, dig up the contract to read for yourself.

And that is exactly what this subheading is all about.

You can see the full code when you head over to the Stacks Explorer here. You can see the usdh-token-v1 contract. Let’s break it down step-by-step:


The Imports

(impl-trait .sip-010-trait.sip-010-trait)
(impl-trait .interim-token-trait-v1.interim-token-trait)
(use-trait token-migration-trait .token-migration-trait-v1.token-migration-trait)

If you’re coming from the EVM ecosystem, you must be familiar with the ERC20 standard. There is a similar standard in the Stacks ecosystem, and that is SIP-010; it’s a set of agreed method of writing safe fungible tokens on Bitcoin.

By implementing the SIP-010 trait, the USDh contract simply wants to use the fungible token traits that have been outlined in the library.

The second trait to be implemented here is the Interim Token trait, which looks more like quite a custom codebase or library.

Token Naming and Error Definition

(define-fungible-token usdh)

(define-constant ERR_NOT_AUTHORIZED (err u1401))
(define-constant ERR_DEPRECATED_TOKEN (err u1402))
(define-constant ERR_NOT_MIGRATION_MANAGER (err u1403))

This is where the name of the token to be deployed in this contract was named usdh. Then the errors were defined as constant variables, so they can be easily referenced in the contract.

Data Variables Definition

(define-data-var token-uri (string-utf8 256) u"")
(define-data-var token-name (string-ascii 32) "Hermetica USDh")

(define-data-var migration-start-height uint u0)
(define-data-var migration-manager (optional principal) none)

Here, the token metadata and full name is defined. Then there are also variables on migration. By keener look, does the optional principal parameter mean anyone can migrate the token? We shall discover as we move on.

SIP-010 Implementation Functions

(define-read-only (get-total-supply)
  (ok (ft-get-supply usdh))
)

(define-read-only (get-name)
  (ok (var-get token-name))
)

(define-read-only (get-symbol)
  (ok "USDh")
)

(define-read-only (get-decimals)
  (ok u8)
)

(define-read-only (get-balance (account principal))
  (ok (ft-get-balance usdh account))
)

(define-read-only (get-token-uri)
  (ok (some (var-get token-uri)))
)

Recall how the SIP-010 library was imported into the contract. It has some read-only functions that must be within the contract for compliance, so the code can quickly get interpreted.

The functions are around total supply, name, balance, decimals, and metadata.

The Transfer Function

(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))
  (begin
    (try! (is-not-migrated))
    (asserts! (or (is-eq sender tx-sender) (is-eq sender contract-caller)) ERR_NOT_AUTHORIZED)

    (match (ft-transfer? usdh amount sender recipient)
      response (begin
        (print memo)
        (print { action: "transfer", data: { sender: tx-sender, recipient: recipient, amount: amount, block-height: block-height } })
        (ok response)
      )
      error (err error)
    )
  )
)

This is a function that facilitates transfer of USDh from a sender to recipient. It has a couple of checks:

  • There can be no successful transfer if the contract has been migrated
  • Only the sender or the contract they have approved can transfer

After a transaction passes these two checks, then it can be broadcast onchain.

Admin Functions

(define-public (set-token-uri (value (string-utf8 256)))
  (begin
    (try! (contract-call? .hq-v1 check-is-protocol tx-sender))
    (ok (var-set token-uri value))
  )
)

(define-public (set-token-name (name (string-ascii 32)))
  (begin
    (try! (contract-call? .hq-v1 check-is-protocol tx-sender))
    (ok (var-set token-name name))
  )
)

These are the admin functions that can be used to set the token name and uri. Only the protocol can be the transaction sender in this case.

Mint and Burn Functions

(define-public (mint-for-protocol (amount uint) (recipient principal))
  (begin
    (try! (is-not-migrated))
    (try! (contract-call? .hq-v1 check-is-minting-contract contract-caller))
    (ft-mint? usdh amount recipient)
  )
)

(define-public (burn-for-protocol (amount uint) (sender principal))
  (begin
    (try! (is-not-migrated))
    (try! (contract-call? .hq-v1 check-is-minting-contract contract-caller))
    (ft-burn? usdh amount sender)
  )
)

(define-public (burn (amount uint))
  (ft-burn? usdh amount tx-sender)
)

These are the functions to populate and depopulate USDh supply in the ecosystem. The only red flag anyone can spot here is how tokens can be minted unlimitedly regardless of the Bitcoin Hermitica currently holds as backing.

Migration Functions

(define-read-only (is-not-migrated)
    (ok (asserts! (is-eq u0 (var-get migration-start-height)) ERR_DEPRECATED_TOKEN))
)

(define-public (start-migration (manager <token-migration-trait>))
    (begin
        (try! (is-not-migrated))
        (try! (contract-call? .hq-v1 check-is-owner contract-caller))
        (var-set migration-start-height burn-block-height)
        (var-set migration-manager (some (contract-of manager)))
        (contract-call? manager start-migration burn-block-height (ft-get-supply usdh))
    )
)

(define-public (migrate-balance (who principal))
    (let ((balance (ft-get-balance usdh who)))
        (asserts! (is-eq (var-get migration-manager) (some contract-caller)) ERR_NOT_MIGRATION_MANAGER)
        (asserts! (> balance u0) (ok u0))
        (try! (ft-burn? usdh balance who))
        (ok balance)
    )
)

Is-not-migrated is a function to check if there has been any migration of the contract. Asides from the fact that it’s a read-only function, it is also used as a check in other migration functions; quite like an internal function is used in Solidity.

Then the contract owner can call start-migration to burn the block-height, and then create an entropy into the next epoch.

The new migration must have the balances of the old, and that is where migrate-balance comes into play.

By the way, USDh was audited by two audit firms, and you can read the findings here.

Concluding Thoughts

USDh is another stablecoin in the block, and it will most likely appeal to you if you are a Bitcoiner who wants to stick with the ecosystem.

Plus there is a promised 25% APY on staking USDh, which many DeFi traders can find exciting.

But then, everything comes with its risks, and that is the same thing with USDh. You should definitely assess the risk and be sure before aping in.

On the bright side, it has been in the market for over a year without any major issue.

Let's Chat!

Ready to bring your project to life? Click the button below to send a message or schedule a free call.