Mine & Mint Proof-of-Work XPower Tokens

The XPower XPOW tokens are produced via proof-of-work and have neither been pre-mined nor pre-minted. The contracts run on the Avalanche C-Chain, and anyone can mint them by presenting a valid $nonce$ number. Once minted, they function like regular tokens.

Motivation

Both Proof-of-Work (PoW) and Proof-of-Stake (PoS) serve as sybil protection mechanisms for establishing identity in a decentralized environment.

PoW is effective at distributing value because the energy required to mine PoW coins and tokens is pre-distributed by nature. Everyone has equal access to the energy of the sun (and to a limited extent its derivatives).

PoS systems, on the other hand, are excellent at transmitting value between participants with minimal energy and effort. When done correctly, like in Avalanche Avalanche, then they are ideal for exchanging value and building large-scale economies.

Hence, instead of being limited to an artificial choice between PoW and PoS, why not have both? PoW tokens can be mined, then minted and transmitted on a PoS system: This is the concept behind the XPower XPOW tokens. We hope that they will bring the energy of the sun into the Avalanche ecosystem and contribute to its success.

Overview

Below, you find the various parts and milestones of the project. Please note that everything up to but excluding lending and borrowing has already been realized:

Project Overview
Project Overview

The entire process begins with mining and minting XPower XPOW tokens, where with each mint some amount is also allocated for the project’s treasury.

Further, by depositing XPOWs they can be converted into NFTs, which can then be staked to earn rewards in the form of APower APOW tokens i.e. aged XPower.

Also, upon minting, each APower reward wraps the amount of claimable XPower tokens. So, burning an APower unwraps the contained XPower — in accordance with the conversion rate at the time of the burn.

Finally, in the near future, borrowing XPower against APower tokens (and vice versa) will become possible.

Token Supply

XPOW: The maximum supply of minable XPOWs consists of at least $\bold{0.930T}$ $\times$ $\bold{10^{64}}$ tokens, where the amount per mint is determined by the number of $\text{leading-zeros}$ of the $hash$ of the provided $nonce$ number. Further, each $hash$ can only be used once (per hour) which effectively puts a limit on the total supply. However, due to it being very high, the supply of the XPOW tokens can for all practical purposes be treated as infinite.

APOW: The maximum supply of APOWs is also infinite, but the targeted supply rate is about $\bold{1}$ token per minute, corresponding to $\bold{525’960}$ tokens per year. Over time, such a steady emission results in a perpetually falling inflation rate:

YearTotal SupplyAnnual Inflation
1st0.525M
2nd1.074M104.1%
3rd1.617M50.6%
4th2.158M33.5%
5th2.699M25.1%
10th5.409M11.2%
15th8.146M7.2%
20th10.914M5.4%
APOW: Supply and Inflation Rate

Note, that the supply and inflation numbers are based on annual claiming frequencies (i.e. once a year). More frequent claiming will result in higher rewards, providing an incentive to swiftly convert accumulated staking claims to actual APOW tokens.

The table above is to be interpreted as the lower limit the supply growth will tend towards to, due to the stochastic nature of the claiming frequencies. The variation — to the upside — of especially the earlier years is expected to be higher, while that of the later ones should be lower.

Mining and Minting

To be able to mint XPower, a valid $nonce$ number needs to be presented. The process of finding such a number is called mining, where the algorithm for verifying whether the work has actually been performed (or not) consists of first calculating the $hash$ value according to:

$$hash = \text{keccak256}(\lbrace address, blockhash, nonce \rbrace)$$

…where $\text{keccak256}$ is a standard hashing function, the $nonce$ a (random) number and where the $address$ is the beneficiary of the XPower tokens.

Apart from the $nonce$ number, the $address$ is also hashed to avoid the former from being stolen by front-runners, who otherwise would observe a transaction with a valid $nonce$ and who would then try to get their own transaction with the same $nonce$ validated first. By hashing the $address$ such an attempt will result in a different value, because the front-runner would have a different $address$.

Further, a miner could obviously pre-mine valid $nonce$ numbers and then try to mint as many tokens as fast as possible: By including a recent $blockhash$ this scenario is avoided, where the $blockhash$ needs to be cached for the current interval (hour) — before minting the tokens.

Once a $hash$ value is produced, its leading number of zeros is counted and then the amount of XPower (to be minted) calculated according to the following formula:

Mining Rewards

For the XPOW tokens the rewarded amount grows exponentially (w.r.t. to a base of $2$) in the number of $\text{leadings-zeros}$ of the $hash$ value:

$$amount = 2^{\text{leadings-zeros}(hash)}-1$$

Since the $hash$ is hexadecimal, the actual exponentiation base should be $16$ (instead of $2$), because finding one with for example two $\text{leading-zeros}$ is statistically $16$ times less likely than finding one with just one initial zero. However, we deliberately chose to undervalue hashes with more zeros to partially negate the advantage of miners with access to superior technology.

Co-Minting for Treasury

With each newly minted XPower some extra amount of tokens are co-minted for the project’s treasury, where this $amount_Θ$ is calculated according to the following formula:

$$amount_Θ = amount / 8$$

So, it is determined as one eighth of the $amount$ mined and minted, which results in $11.11\%$ of the XPOW tokens getting co-minted for the treasury:

BeneficiaryMinting ShareCustody Type
Miner88.89%self-sovereign
Treasury11.11%smart contract
XPOW: Tokenomics of Co-Minting

The treasury provides the XPOWs (upon burning of the APOW staking rewards) and is entirely controlled by a smart contract.

XPower NFTs

The blockchain ecosystem is full of various NFT projects most of which cater to artistic expressions.

We use XPower NFTs to represent various denominations as “bills”, while combining them with “art” that remotely resembles what we see on today’s banknotes. The NFTs are stakeable and when staked their colors invert.

Such art changes yearly, and the relative rarity of these NFTs depends on how many such bills get minted per issue — by depositing the corresponding XPOWs.

Further, the NFTs come in nine different levels named after the standard SI prefixes: unit, kilo, mega, giga, tera, peta, exa, zetta and yotta (by default the UI does not show the higher levels).

Minting each next level requires $1’000$ times more XPOWs to be deposited than the previous one: So, UNIT NFTs can already be minted with a single token, while KILO NFTs require $1’000$ tokens etc.

Staked, these NFTs offer rewards with an average target APR of $3.375\%$ — distributed as proportionally convertible claims on the APower APOW tokens. However, the rates for each NFT level are adaptive to equalize the long-term total income across all levels.

Also, older issues fetch an additional $0.01\%$ (one basis point) for each year passed. Hence, the XPower NFTs can succinctly be described as “variable-rate demand bonds” with the extra rewards increasing slightly over time.

Finally, the NFTs can be burned to redeem back the deposited XPOWs. While UNIT NFTs can be burned anytime, higher levels can only be burned from the older issues: The higher the NFT’s level, the older it needs to be.

UNIT XPOW NFT
UNIT XPOW NFT

Interest Rate Model

The target rate of an NFT (per level $l$ and issue $i$) inversely depends on its share of deposits with respect to the total sum of deposits over all $n$ populated levels:

$$\forall{l,i} \in \text{levels} \times \text{issues}: target_{l,i}(t) \sim \frac{\sum_\lambda^n deposit_\lambda(t)}{n \cdot deposit_l(t)}$$

Hence, if a particular NFT level gets relatively over-populated, then its target rate is reduced, while simultaneously the targets of all the other levels are increased (and vice versa). Though, the full model of the target rate includes a small $\delta_i(t)$ term:

$$target_{l,i}(t) = \frac{\sum_\lambda^n deposit_\lambda(t)}{n \cdot deposit_l(t)} \times apr + \delta_i(t)$$

…where the $apr$ factor is the constant average annual percentage rate of $3.375\%$, while the extra $\delta_i(t)$ bonus equals one basis point times the number of years since issuance, i.e. $\delta_i(t) = 0.01\%\times[year(t)-i]$. Finally, the actual rate is determined by the integral under the corresponding target rates, normalized by the duration of $\Delta{t} = t-0$:

$$rate_{l,i}(t) = \frac{1}{\Delta{t}} \int_{0}^t target_{l,i}(\tau) \ d\tau$$

…where the origin of $0$ denotes the deployment time of the treasury smart contract to the blockchain — minus one month (measured in seconds) to dampen the initial volatiliy.

Protocol Parametrization

The protocol contains two important economic parameters: a) the average APR across all NFT levels (defaults to $3.375\%$), and b) the APR bonus per NFT issue (defaults to $0.01\%$). Both parameters can be tuned, which necessitates a framework to avoid abuse. Hence, the following rules that govern their change have been put into place:

Each parameter target can only be at most doubled or halved — at most once per month. Also, these targets do not get activated immediately, but the current value of the parameter asymptotically approaches the newly set target value instead (weighted by the passage of time).

APR Reparametrization
APR Reparametrization: e.g. 1% to 2%

These simple rules allow the protocol to be flexibly re-parametrized while preventing arbitrary changes, offering each participant enough time to investigate whether the targets have been set reasonably or not. Over time, the current values fossilize and it gets harder to change them.

Note, that the rights to change the parameter targets — subject to the aforementioned rules — can be granted to a person, group or a smart contract (like a DAO), revoked or even renounced completely.

Auto-minting

While manually minting mined XPOW tokens is “cute” (by clicking for each mined token the corresponding mint button), the user interface also allows auto-minting: For this purpose a minter wallet can be pre-loaded with some AVAX to pay for the transaction fees. Also, there are terminal based miners with built-in wallets (to again auto-pay for the minting fees).

Roadmap

As Marc Andreessen has famously put it in his essay “Why Software is Eating the World”, there is a big opportunity here, and we are acting upon it. So, being a software project there are infinitely many improvements and extensions that may (or may not) be pursued. Below, is a list of some of them we have in mind to deliver upon — but not necessarily in the same given order:

Lending & Borrowing

By putting up APower APOWs as collateral it will become possible to borrow XPower XPOWs, where the latter will be provided by the project’s treasury — if it holds enough funds! Otherwise, the treasury can be replenished via mining the XPower XPOW tokens (and the co-minting process).

Avalanche Subnet?

At the moment, Avalanche subnets are being fleshed out. Once they reach a certain maturity (and if the GINI coefficient of the APower APOW tokens is sufficiently low i.e. wide distribution), we may — as a proper citizen of the Avalanche ecosystem — consider launching our own subnet.

Risks

Anyone participating in the blockchain space needs to be aware of at least the following risks:

Platform Risk

Avalanche is a relatively young ecosystem: Looking back, in the short little amount of time so far, much has happened and improved upon! Still, anyone starting to mine and mint XPower and APower tokens needs to be aware of this fact.

Contract Risk

The XPower and APower smart contracts have been audited by Hacken, but may nevertheless still contain bugs, though we put in a lot of effort to ensure that they do not by deliberating keeping them short and avoiding any unnecessary scope creep. We relied also on the industry-standard OpenZeppelin libraries.

Further, please ensure that you interact with the correct contracts: You can find an “Add token” icon in the footer, which you can use to import the tokens’ meta-information into your wallet.

Upgrade Policy

In case of an unintended contract breach, our recovery policy will rely on 1) determining at what block height it happened, 2) fixing the bug and deploying new contracts, and 3) allowing the migration of the XPower and APower tokens up to the block height of the breach.

Anyone, not happy with any of the decisions taken in the steps above, is free to continue interacting with the old (and breached) contracts: The entire migration process is voluntary.

Price Risk

There is no assurance regarding the price of the XPower XPOW or APower APOW tokens and NFTs (w.r.t. to any other currency or commodity). It is completely up to the invisible hand of the free market to decide that. Further, any forward looking statement expressed in this document may be subject to change and is not to be relied on.

Privacy Risk

You have no privacy: Blockchains are open public ledgers anyone can inspect upon gaining knowledge of your address. Do not share it, avoid KYC and try to pay fees with AVAX which have been sanitized.

If you want to further improve your privacy, setup your own Avalanche validator and then connect your wallet directly to it. Try to route your transactions through a proxy node, instead of broadcasting the validator’s presence to the entire world.

You can also download this web user interface (see the footer) and run it locally, so your IP address does not get tracked by any infrastructure provider we use to deliver it to your browser; or you can simply use a VPN.

Acknowledgments

Despite our occasional constructive critisisms, we are incredibly grateful to the entire Avalanche community for having produced a fantastic blockchain, and we are looking forward to continue with our various contributions.