Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 161 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Maya Protocol One-Stop-Shop

Introduction

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Deep Dive

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Blockchain Explorer

Loading...

Loading...

Loading...

Airdrop

Loading...

Media

Loading...

Loading...

Loading...

Contribute

Loading...

Loading...

Node Docs

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

MAYACHAIN DEV DOCS

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Getting Started

Maya Protocol Quick Guide

Using MAYAChain

Users are not required to use CACAO in order to swap/trade Assets (e.g. BTC, ETH, RUNE, DASH, KUJI or ARB). Users can simply connect to any Frontend that supports MAYAChain, and trade away.

However, should users desire to perform other types of transactions, CACAO fees may apply.

How to Buy Cacao?

  1. Head to one of the interfaces supporting Maya Protocol and connect your wallet.

  2. Transfer any of the MAYAChain supported Assets (e.g. BTC, ETH, RUNE, DASH, XRD, KUJI or ARB) to your newly created wallet.

  3. Head to the swap page, select the tokens and quantity, and perform the swap.

What Wallets support Maya Protocol?

  • THORWallet

  • Leap Wallet

  • Ctrl Wallet

  • KeepKey

  • Ledger

  • Edge

  • Caviar Nine

  • Moca

  • Shard Space

  • Clio Swap

What Frontends support Maya Protocol?

  • El Dorito Swap

  • THORWallet

  • Rango Exchange

  • Defispot

  • Asgardex

  • CacaoSwap

  • ThorSwap

  • LeoDEX

  • Rango Exchange

What are the Maya Protocol Blockchain Explorers?

  • MayaScan

Roles

There are four key roles in the system:

  1. Liquidity providers who add liquidity to pools and earn fees and rewards

  2. Swappers who use the liquidity to swap assets ad-hoc, paying fees

  3. Arbitrageurs who monitor pools and rebalance continually, paying fees but with the intent to earn a profit.

  4. Node Operators who provide a bond and are paid to secure the system

Arbitrageurs

Balancing pools to exploit price deltas between markets.

Prices on MAYAChain are maintained by profit-seeking Arbitrageurs. Arbitrageurs find assets that are mispriced between markets. They buy assets on markets with low prices and sell them on markets with high prices. This earns them a profit.

Arbitrageurs compare the exchange rates on MAYAChain with the rates on external markets. If they find the price is lower on MAYAChain they can buy there and sell on an external market. If they find the price is lower on external markets they can buy there and sell on MAYAChain. This process is repeated at high-frequency. Over time, price information propagates and MAYAChain settles with external markets.

This is how MAYAChain avoids the need for oracles and how prices are set.

How it Works

Process

A swap takes place in the ETH/CACAO pool. This leaves the pool unbalanced. The ratio on MAYAChain is 20:1 ETH:CACAO, but is 16:1 on external markets. This means that CACAO is undervalued on MAYAChain.

Arbitrageurs can now buy cheap CACAO on MAYAChain and sell it for a profit on external markets. To do so, they swap ETH into the pool and get CACAO out. They sell this CACAO on external markets and make a profit.

The economics of the swap formula mean that Arbitrageurs should aim to restore balance to the pool in a single trade. Rebalancing should be done incrementally. If larger rebalancing trades are attempted, arbitrage may not be profitable.

Specifically, each rebalancing trade should be 40–50% the imbalance size. So if the imbalance starts at $100 in value, the first rebalancing trade should be between $40–50. This will leave the imbalance at $50–60. The next rebalance should be $25–30. This process repeats until a satisfactory balance is restored.

This hierarchical cascade of rebalancing trades will create arbitrage opportunities for Arbitrageurs big and small.

Impact of Liquidity

Trading profits are impacted by liquidity on MAYAChain and on external markets. As an example, if the price of the asset in a MAYAChain pool is $1.20, but the same asset on an external market is $1.00, then someone can buy off that external market and sell into the MAYAChain pool for profit.

Infinitely Deep Liquidity

If both markets are infinitely deep, then the following will occur:

  • Buy on External Market for $1.00, no price slip.

  • Sell on MAYAChain for $1.20, no price slip.

  • Total Profit: 20%

The trader can then continue to arbitrage for a profit of 20% continuously.

Finite, but Uneven Liquidity

If both markets have finite liquidity, but one is much deeper than the other, then the one of the markets will slip in price after the trade. However, the Arbitrageur will experience a price that is roughly the average of the price before and after the trade:

  • Buy on External Market for $1.00, no price slip.

  • Sell on MAYAChain for $1.20, realised price of $1.10, price slip to $1.00.

  • Total Profit: 10%

After the trade, there is no more price differential, but the Arbitrageur made 10% in profit. The Arbitrageur has made the pool price equal to the secondary market. They have transferred price information from one market to another.

Low Liquidity

If both markets have low liquidity, then the Arbitrageur is attempting to make trades that slip each market towards each other:

  • Buy on External Market for $1.00, realised price of $1.05, price slip to $1.10.

  • Sell on MAYAChain for $1.20, realised price of $1.15, price slip to $1.10.

  • Total Profit: >10%

The market now has no more price differential. The Arbitrageur has made each market equal to each other.

Compensation, Requirements, Costs & Penalties

MAYAChain does not offer explicit incentives to Arbitrageurs – it does not reward or punish them. Trading profits are determined by the capacity of Arbitrageurs to seek out and capitalize on price differentials between MAYAChain and external markets.

The majority of arbitrage opportunities will be exercised by software bots. These are under development by 3rd party entities and will be released in due time. They will be open-source and available for anybody to run.

Maya Ecosystem

Explore all user interfaces, wallets, and tools, that will enrich your decentralized Maya experience to the fullest!

Maya Protocol is permissionless. Everyone can integrate Maya into their dapp, wallet, or protocol. We support all interfaces integrating Maya. Contact our marketing team on Discord to discuss co-marketing opportunities.

Disclaimer: Maya Protocol will not support swapping interfaces and wallets containing ‘Maya’ in their name. We’ve learned from other protocols that this could have negative side effects. Hence, if an interface chooses to have ‘Maya’ in its name, Maya Protocol will not engage in co-marketing and will not mention the interface on its website, docs, or Discord.

ELI5

Set up a MAYAChain wallet

How It Works

Learn how MAYAChain Works

Tools

Discover a complete toolkit to tailor your Maya experience

Maya Scan

MayaScan is a cutting-edge blockchain explorer designed for speed, simplicity, user-friendliness, stunning UI, and efficiency. It offers a streamlined and intuitive experience for users seeking to explore blockchain data from the Maya Protocol.

Features: Maya Protocol monitors for transactions, addresses, LP, analytics and networks stats, MRC-20 & M-NFT indexer powered by GLD.

Accessibility: Web and mobile responsive.

Go to

Maya Swap

Maya Swap is a seamless trading platform for MAYA and CACAO tokens with a tailored order book. By holding MAYA tokens, users automatically earn daily CACAO rewards, enriching their portfolios. It was built by the MayaScan team.

Features: Buy and sell $MAYA tokens in the order book. Track prices and volume in real time.

Go to

Mayans.app

Connect, Trade, Earn, Thrive. Mayans brings the worlds of social media and decentralized finance together through the Maya Protocol. Trade your MRC-20 tokens and M-NFTs. Built by the MayaScan team.

Features: Secure and private messaging, MRC-20 trading and staking, signals keeping you informed of the latest trends, playing DeFi games, and more.

Go to

Maya Info Bot

The Maya Info Bot tracks significant transactions and crucial changes to the Maya Protocol network. Subscribers are promptly notified via Telegram, Discord, and X channels.

Features:

Tracked event types

1) Large transfers of native assets

2) Significant swap and liquidity addition/withdrawal transactions

3) Liquidity pool statistics

4) Cacao price fluctuations

5) Mimir parameter adjustments

Accessibility: Any mobile or desktop device with Telegram/Discord/X app installed or web browser.

Keep track of price, large txs, Mimir, and other alerts !

Swap

Swap Assets Using Custom Memos.

This guide should only be used by Advanced Users. It is highly recommended to use to transact. A mistake in any step CAN cause loss of funds.

Memo Format

SWAP:ASSET:DESTADDR

For a full list of memo formats and abbreviations check this .

Procedure

Through a MAYAChain UI (eg. El Dorito Swap, Asgardex)

  1. Connect/Create wallet.

  2. Transfer from the ASSET you want to swap from (eg. ETH).

  3. In the memo field substitute the format for the actual values. Example:

    • SWAP:MAYA.CACAO:maya1x5979k5wqgq58f4864glr7w2rtgyuqqm6l2zhy

    or you can abbreviate it to:

    • =:MAYA.CACAO:maya1x5979k5wqgq58f4864glr7w2rtgyuqqm6l2zhy

  4. In the amount field, type the amount you wish to swap

Make sure you have an amount left in your (from) wallet to cover the transaction fees. Check the following for , , RUNE fees (0.02 $RUNE), , KUJI fees (around 0.003 $KUJI, but confirm through a Kujira Wallet).

  1. Press send.

  2. Check your transaction/Maya Address on .

MRC-20 Tokens

MAYAChain Native Tokens

MRC-20 tokens are a revolutionary step forward in the Maya Protocol, and are powered by the MAYAChain and indexed by MayaScan. This new ecosystem is designed to make token deployment, minting, transfer, selling, and buying effortless and efficient. It is based on the concept of memos and ordinal theory, which draws inspiration from both the ERC-20 standard on Ethereum and Bitcoin's ordinals.

MRC-20 combines these elements to create a comprehensive and secure framework for managing token interactions, ensuring the preservation of network integrity. By providing this new standardized approach to token operations, MRC-20 is revolutionizing the way users interact with tokens on the blockchain and reinforcing Maya's position as a leader in blockchain innovation.

For more info on how to interact with MRC-20 Tokens, or even create your own, .

M-NFTS

MAYAChain Native NFTs

M-NFTs are at the cutting edge of blockchain technology, providing users with a comprehensive and secure ecosystem for the deployment, transfer, sale, and purchase of Non-Fungible Tokens (NFTs). Powered by the Maya Blockchain and indexed by MayaScan, M-NFTs employ the innovative concept of memos and ordinal theory to guarantee secure operations and the authenticity of digital assets.

Memo-resonance technology, akin to ordinal theory, is at the heart of the M-NFT standard, allowing for the seamless integration of token deployment, minting, transfer, sale, and purchase. This revolutionary framework is revolutionizing the NFT landscape by empowering creators, collectors, and enthusiasts to forge deeper relationships with digital art and collectibles.

M-NFT is a pioneering force, ushering in a new era of unprecedented engagement and authenticity in MAYAChain. By innovating and reimagining the uses cases of MAYAChain, M-NFTs are paving the way for a seamless and efficient ecosystem where users can effortlessly interact with digital assets, and tokenize their ideas.

For more info on how to interact with M-NFTs, or even create your own collection, .

What is Maya Protocol?

Introduction

Maya Protocol is the ecosystem that encompasses both MAYAChain and AZTECChain. These two entities, when combined, are capable of demonstrating the power & advantages of both centralized and decentralized exchanges without inheriting the associated drawbacks.

MAYAChain (Live)

MAYAChain is an Automated Market Maker, similar to Uniswap, but utilizes cross-chain liquidity. Conventionally, cross-chain swaps have been achievable through wrapping assets and bridging, which pose a serious security risk. According to Chainalysis, $2 billion were lost to bridge hacks in 2022 alone, representing 69% of all DeFi hacks.

MAYAChain is a friendly fork of THORChain. Similarly, it does not rely on pegging or wrapping assets, instead managing funds directly in on-chain vaults and safeguarding them through economic security. This is achieved using the Tendermint consensus engine, Cosmos-SDK state machine, and GG20 Threshold Signature Scheme (TSS).

Interact with MAYAChain using one of the frontend .

AZTECChain (Under Development)

AZTECChain is a Smart Contract chain. It exemplifies the potential of Maya Protocol, combining MAYAChain cross-chain liquidity with Smart Contracts and economic capabilities. Smart Contracts provide flexibility for crypto economies, allowing for the creation & use of Algorithmic stablecoins, derivatives like Synths, CEX style order book trading, and many more capabilities. AZTECChain is a fork of the Cosmos Hub (Gaia), allowing for the immediate utilization of the Cosmos mature infrastructure and Smart Contract development ecosystem. Algorithmic stablecoins will be delayed upon launch in order to complete economic design and run bounties. Neither the Maya nor the Aztec Chains will subsidize yield in order to inflate demand for their respective stablecoins or derivatives.

Tokenomics Structure

Maya Protocol ecosystem utilizes 3 distinct tokens within its framework:

The CACAO & $MAYA tokens are already in circulation, while AZTEC is still under development.

CACAO (Live) is the primary token of the ecosystem, which is utilized to pay for all transaction fees on both the Maya and Aztec Chains. CACAO is also the settlement token, used in pools in MAYAChain.

MAYA (Live) is a revenue share token. 10% of all swap & transaction fees on MAYAChain is distributed to $MAYA holders in the form of daily CACAO rewards.

AZTEC (under development), like MAYA, is a revenue share token. 10% of all transaction fees on Aztec Chain is distributed to AZTEC holders.

All CACAO has been allocated fairly in the liquidity auction. The team has not been allocated any CACAO, and any CACAO acquired by the team was acquired in the same manner as the community. Rather, the team has opted to have allocations of MAYA and AZTEC. This ensures that the team is in alignment with the vision of building and delivering, as they will not be able to gain any benefit unless Maya Protocol is profitable.

MAYAChain Innovations

MAYAChain shares numerous innovations with THORChain that were derived from the fundamental principles of being decentralized, resistant to capture, and as sustainable as possible.

Capped Proof of Bond validator selection helps to maintain the decentralization of the network and a high Nakamoto Coefficient.

Periodic Validator Churning process serves to prevent validator stagnation, verify the spendability of funds, and enhance the overall performance of the network with minimal governance requirements.

A churn in MAYACHAIN happens once every 5 days, if no issues present themselves.

Asynchronous Network Upgrades allow validators to transition to a new protocol version at their own pace, while the network remains in consensus without disruption.

Chain-agnostic Bifrost Protocol can manage UTXO, EVM, BFT and Cryptonote chain connections with minimal differences in its core logic.

Incentive Pendulum system provides rewards to Validators and Liquidity Providers in order to maintain a Network Security ratio that ensures the security of funds at all times.

Continuous Liquidity Pools enable single-sided liquidity provision and employ liquidity-sensitive fees to thwart price attacks.

Swap Queue has been implemented which orders swaps based on the price impact in each block, thereby preventing sandwich attacks and most other forms of Miner Extractable Value (MEV).

Liquidity Synths have been developed to facilitate rapid, low-cost exchanges between L1 pool. Synths are a hybrid collateralized-pegged asset design that contribute to the liquidity of the market.

MAYANodes

MAYANodes secure MAYAChain. They are intended to initially number 100, but can scale up to 250+. The design of MAYAChain is such that anyone with the necessary funds can join the network anonymously and securely, without requiring permission. Furthermore, MAYAChain takes this a step further by having a high churn rate, which ensures that the network is censorship-resistant, evades capture and resists centralization.

Each MAYANode is composed of multiple independent servers in a cluster, which run full-nodes for each linked chain.

The 3-Pillars of MAYAChain:

  1. Enhance the Security of the network through Functional (Solvency Checker, Node Pause, TxOut Throttler), Procedural (Stagenet testing, PR reviews) and Economic (LP units in the bond, or value of the LP units in the bond) Security measures.

  2. Increase the Liquidity of the network, via Total Value Locked (TVL), or better UX around providing liquidity.

  3. Boost the Volume of the network, via Swap UX (Synths, Order Books), or wallet Integrations (Quotes Endpoint, Dev UX, Business Development).

Maya Scan
Maya Swap
Mayans.app
here
Maya UIs
page
BTC fees
ETH fees
DASH fees
MayaScan
click here
click here

How to buy CACAO?

Unlocking CACAO: A Step-by-Step Guide to Seamless Token Acquisition

The CACAO token is not listed on any Centralized Exchange.

You can buy CACAO by swapping BTC, ETH, USDT, USDC, wstETH, RUNE, DASH, KUJI, or USK to CACAO on one of the following interfaces:

  • ThorWallet

  • El Dorito Market

  • Rango Exchange

  • Asgardex

  • Swapper

  • Defispot

  • CacaoSwap

  • LeoDex

  • THORSwap

Step by Step:

  1. Create your wallet on your chosen interface.

  2. Load your wallet with your chosen asset (BTC, ETH, USDT, USDC, wstETH, RUNE, DASH, KUJI, USK or AETH).

  3. Select Swap.

  4. Enter the amount you wish to swap and the asset you want to get; in this case, the asset you want to get is CACAO.

You are ready!

Resources:

We have developed guides that explain step by step how to use each user interface:

  • Guides to set up your MAYAChain wallet

  • Swap assets guide

CACAO Price:

Follow up on CACAO behavior on CoinGecko or MayaScan.

Custom Memos

SwapKit SDK

https://docs.thorswap.finance/swapkit-docs/

To be added...

Examples

Through MAYANode cli

How to create a MAYAChain address through MAYANode cli

Create Maya address and mnemonic

  1. Install go 1.20+.

  2. Clone the Maya repository.

  3. Install docker.

  4. Install protobuf $ git clone https://gitlab.com/mayachain/mayanode

  5. Change to the mainnet branch $ git checkout mainnet

  6. Build the binary$ TAG=mainnet make build && TAG=mainnet make install

  7. To add a mnemonic that you already own

$ mayanode keys add [key name] --recover
> Enter your bip39 mnemonic
[paste/write your mnemonic]
  1. You’re done! It should look as follows:

$ mayanode keys add [key name] --recover
- name: mywallet
  type: local
  address: tmaya1gp27t2hcj603p8448qwkhfh0v4y0r3jkmdgsyn
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A0LirKOHGVq0y1JBcadN10UvqtnvYNvg8QOn4Mj5Gy31"}'
  mnemonic: ""

Concepts

Overview of all MAYAChain concepts

MayaScan

Maya Protocol's Blockchain Explorer

MayaScan is the main blockchain explorer offered by Maya Protocol, offering an extensive range of services for users to track their transactions, swaps, liquidity, network status, nodes and more.

By entering any of the supported MAYAChain addresses (Bitcoin, Ethereum, THORChain, Dash, Kujira, and of course MAYAChain) into the search field, users can easily view all the relevant information regarding the address.

MayaScan provides a secure platform for on-chain p2p messaging, allowing for anonymous communications between nodes.

As if this wasn’t enough, MayaScan also uses cutting-edge Ordinals technology and Memos to create and trade Native MAYAChain Tokens and Non-Fungible Tokens (NFTs).

AMM Package

API for performing actions with THORChain

While the Query package allows quick and powerful information retrieval from THORChain such as a swap estimate., this package performs the actions (sends the transactions), such as a swap, add and remove.As a general rule, this package should be used in conjunction with the query package to first check if an action is going to be possible be performing the action.Example: call estimateSwap first to see if the swap is going to be successful before calling doSwap, as doSwap will not check.

Code examples in Replit

Currently implemented functions are listed below with code examples. Press the Run button to run the code and see the output. Press,Show Files, and select index.ts to see the code. Select package.json to see all the package dependencies. and .

DoSwap

Executes a swap from a given wallet. This will result in the inbound transaction into THORChain.DoSwap runs first then if successful with a constructed using a . Do swap can be used with an existing xchain client implementation or a custom wallet and will return the transaction hash of the inbound transaction.A seed is provided in the example but it has no funds so it will error.

Savers

Adds and removed liquidity from Savers. Requires a seed with funds.

Add Liquidity

Adds liquidity to a pool. Provide both assets for the pool. lp type is determined from the amount of the asset. The example is a single-sided rune deposit. A seed is provided in the example but it has no funds so it will error.

Remove Liquidity

Removes Liquidity from a pool. The opposite of adding liquidity.

integrations

Swappers

MAYAChain's value proposition for Swappers.

On MAYAChain, users can swap their digital assets for other digital assets. The network aims to give users access to:

  • A large variety of assets through cross-chain compatibility and simple asset listing

  • Superior user experience through open finance protocols and permissionless access

  • 1-transaction access to fast chains (Dash), smart chains (Ethereum, Kujira), and censorship-resistant chains (Bitcoin).

See an overview of Swapping in MAYAChain

How Swaps Work

Available Assets

Users can swap any assets which are on connected chains and which have been added to the network. Users can swap from any connected asset to any other connected asset. They can also swap from any connected asset to CACAO.

Learn more about how chains and assets get added to the network in the Governance section.

To add an asset to MAYAChain, users simply deposit a new asset to put it in the queue for listing. Swaps can only be made on pools when they have been added to the network and have moved out of the bootstrap phase.

Decentralisation

MAYAChain manages the swaps in accordance with the rules of the state machine - which is completely autonomous. Every swap that it observes is finalised, ordered and processed. Invalid swaps are refunded, valid swaps ordered in a transparent way that is resistant to front-running. Validators can not influence the order of trades, and are punished if they fail to observe a valid swap.

Swaps are completed as fast as they can be confirmed, which is around 5-10 seconds.

Continuous Liquidity Pools

Swaps on MAYAChain are made possible by liquidity pools. These are pools of assets deposited by Liquidity providers, where each pool consists of 1 connected asset, for example Bitcoin, and MAYAChain's own asset, CACAO. They're called Continuous Liquidity Pools because CACAO, being in each pool, links all pools together in a single, continuous liquidity network.

When a user swaps 2 connected assets on MAYAChain, they swap between two pools:

  1. Swap to CACAO in the first pool,

  2. Move that CACAO into the second pool,

  3. Swap to the desired asset in the second pool with the CACAO from (2)

The MAYAChain state machine handles this swap in one go, so the user never handles CACAO.

See this example for further detail and the page below for broader detail on Continuous Liquidity Pools.

Calculating Swap Output

The output of a swap can be worked out using the formula

y=xYX(x+X)2y = \frac{ xYX} {(x+X)^2 }y=(x+X)2xYX​

where

  • x is input asset amount

  • X is input asset balance

  • y is output asset amount

  • Y is output asset balance

Example

The BTC.CACAO pool has 100 BTC and 2.5 million CACAO. A user swaps 1 BTC into the pool. Calculate how much CACAO is output:

1∗2500000∗100(1+100)2=24,507.40\frac {1 * 2500000 * 100 } {(1 + 100)^2} = 24,507.40(1+100)21∗2500000∗100​=24,507.40

This user swaps 1 BTC for 24,507.40 CACAO.

Costs

The cost of a swap is made up of two parts:

  1. Outbound Fee

  2. Price Slippage

All swaps are charged a network fee. The network fee is dynamic – it's calculated by averaging a set of recent gas prices. Learn more about Network Fees.

Note that users who force their swaps through quickly cause large slips and pay larger fees to liquidity providers.

Using El Dorito Club

How to set up a new MAYAChain keystore wallet using ElDorado

Video Guide

Here is the video guide to create a Keystore wallet on El Dorito. If you prefer a written guide, please continue scrolling.

Written/ Text Guide

1- Visit El Dorito Website and press the "Enter El Dorado" button.

2- On the top right corner press the "Connect" button to connect your wallet.

3- A pop-up will appear. Choose "Create new keystore".

4- Create a password to encrypt your keystore.

Make sure it's a safe password that you can REMEMBER.

5- Once you press create you'll be prompted to save your Keystore file on your computer. Choose a safe location and save.

6- You'll be presented with a 12-words seed phrase. Make sure to write it down or save it somewhere safe.

If you lose your keystore or forget your password, the only way to recover your wallet is using the seed phrase. If you lose that too no one will be able to help you, and your funds may be lost forever.

7- Congratulations! Your wallet has been created and you can now interact with El Dorito and all Maya Protocol's Front Ends using your Keystore.

For further assistance, please visit ElDorito's Discord channel and/ or Maya Protocol's Discord channel.

Node Operators

Node Operators

Overview

MAYANodes service the MAYAChain network, of which there is intended to be initially 120. Each MAYANode is comprised of several independent servers. All MAYANodes communicate and operate in cooperation to create a cross-chain swapping network.

Rewards

Node Operators earn 80% of the system income when it is stable. You can read more here:

Set up Instructions

Follow these setup up instructions

Anonymity

Node Operators should stay anonymous and never socially signal that they are running a node.

Tools

There are a variety of tools available in the ecosystem for Node Operators, such as the Telegram Alerts bot:

Security

The most important aspect is that Nodes must pay for their Bond, since this is a core assumption to the security of the network. If a node pays $1m for their bond, then they will never try to steal assets unless if they can access more than $1m of funds. If they can, then they will make a profit.

If delegation was permitted, a Node Operator that paid $100k in CACAO, can possibly receive $900k in delegated funds to qualify and meet the $1m bond requirement. They will now contemplate stealing assets the moment they get access to more than $100k in capital, which is likely.

Nodes must pay for their bond to ensure the economic assumptions of the network are upheld.

Private Delegation

MAYAChain makes private delegation possible, because it does not erode towards the issues discussed above.

Private Delegation requires Node Operators to know and whitelist in their bonders, and there can only be up to 6 per node. This assumes the bonders are in trust circles with their operators and have their own recourse to ensure operators act in accordance to their obligations. From the point of view of MAYAChain, a solo node is no different to a delegated node. The network will operate identically.

In addition, there is no discretion as to fee commissions per operator. This means bonders will prioritise on engaging with operators based purely on their trust circles, not fees.

The limit of 6 bonders per node ensures that Operators can't try to access economies of scale. They are limited to large CACAO holders only.

By importing Ledger hard wallet into Ctrl Wallet

  1. Create a new XDEFI wallet, or use an existing one. Make sure to “Prioritize XDEFI” in the settings.

  1. Import Ledger accts into XDEFI via Settings > Wallet management > Connect to the hardware wallet. This opens a new screen.

  1. Plug the Ledger into the computer’s USB port, enter the PIN code to unlock, and select the chain app on the Ledger device you want to open (ex., Bitcoin app).

If you get this type of error you can find a debug checklist for importing Ledger into XDEFI at the end of this guide.

  1. In the browser, select the addresses from that chain to import.

  1. Once complete, go back to XDEFI and repeat the process to add hardware wallets to XDEFI from other Ledger chains.

  2. Make sure to quit the Ledger device app first, then open the chain app on Ledger you’re adding next.

When you open THORChain app on your Ledger, the first screen says “Pending Ledger Review” - double-click past this, so the Thorchain app is open and ready.

Debugging process for Ledger devices

Dynamic Inflation

Dynamic Inflation is a feature that can be enabled/disabled by nodes voting on it. It is NOT the original state of the chain.

Maya Protocol is a multichain DEX, with CACAO as its native token. The utility of CACAO lies in its ability to facilitate swaps and trades between different assets (BTC, ETH, Dash, etc...). For this to be possible, CACAO needs to be paired with other assets in Liquidity Pools (LP).

Although Liquidity Pools provide yield, they are subject to Impermanent Loss (IL). This is why some users prefer to hold CACAO on its own, rather than in a LP, even though it is more beneficial for the protocol if these funds are present as liquidity.

Dynamic inflation is an autoregulated mechanism designed to favor Liquidity Providers (LPers) over holders/ speculators. If the amount of CACAO held outside LPs exceeds 10% of the non-reserve supply, Dynamic Inflation is activated in order to protect the Liquidity Providers and reduce the value of CACAO held outside LPs.

This is achieved by injecting CACAO directly into pools and Maya Protocol’s system income (which is distributed to LPs, MAYA, and nodes as yield).

Inflation will continue (inflation increases as CACAO held increases) until balance is restored in the system, and the amount of CACAO held outside LPs is 10% or less of the non-reserve supply.

The equation is as follows:

y = CACAO in pools/ CACAO total supply *100

If y < %90, Dynamic inflation kicks in.

Rate of inflation = (1-y) * 40% + 1%

Here’s an example table: -

Dynamic Inflation is a feature that can be enabled/disabled by nodes voting on it. It is NOT the original state of the chain.

Using THORWallet Mobile APP

How to install VultiWallet on your mobile device

  1. Download VultiWallet on your iOS or Android device.

  1. Clicking on the "Get Started" button, and agree to the Terms of Service and Privacy Policy, after which the wallet setup starts on the following screen:

  1. Click create new wallet. After clicking on Create Wallet, you will be asked to write down your unique seed. You can view your seed phrase by clicking on “Backup Wallet”.

  1. Click Backup Wallet. You will see the following screen with your seed phrase.

  1. Copy the seed to your clipboard and keep it on your phone, or (highly recommended) write it down and keep it off-line.

  1. Create a PIN.

  1. Confirm your PIN.

  1. You have the option to unlock the wallet using biometrics. Simply click on “Enable Biometrics” to activate this feature, or choose “Skip” if you prefer not to enable it.

  1. Finally, you can scroll through some information slides about functionalities or just click on “Get Started”, which will bring you to the “home page” of the app.

Links

Social Media

I

Using THORWallet web APP

How to set up a new MAYAChain keystore wallet using THORWallet

1. Go to and click "Connect."

2. Accept the Terms of Service and Privacy Policy.

3. Select "Create Keystore."

4. Create and confirm a password for the keystore file. Make sure to save this password. You'll need it to open the keystore file. Make sure to save the 12-words seed phrase; you can use it to recover your wallet if you lose your keystore.

5. Click "Download" and save the keystore file somewhere safe on your local drive.

6. On Connect screen select "Keystore" option to connect using your newly created keystore file.

7. Select the new keystore file saved on your drive, input your password and click "Unlock."

8. Select "My Assets" from the left sidebar.

9. Search for MAYA token in "Search assets" at the top.

10. Select MAYA.

11. Change the tab from "Send" to "Receive" - there, you will be able to copy your new Maya wallet address. It should begin with "maya..."

Save your new Maya wallet address, and keystore (if you created one), and password in a safe place. You’ll need your Maya address for the next steps.

In the example, the Maya wallet created with the keystore file was:

maya1668cguves6x7sfm08pkm2u78exwaq63t9kqwse

Cluster Launcher

Deploying a MAYANode with Kubernetes

Deploy a Kubernetes cluster

In order to deploy all the different services and provide a high availability environment to operate your node, Kubernetes is the preferred scheduling platform. Any production-grade Kubernetes cluster can be used to run and deploy a MAYANode. You need your Kubernetes provider to offer external load balancers services type features. Azure, Digital Ocean, GCE, OpenStack are compatible with external load balancers.

Terraform is a type of domain-specific language (DSL) used to describe code infrastructure. It is designed to make it easier to create/destroy infrastructure hosted locally or by a provider.

This Terraform deployment will deploy a Kubernetes cluster using your VPS provider credentials and EKS service. The cluster will have autoscaling capabilities, which means you don’t have to deal with how many nodes you need to deploy to run your MAYANode services.

All the default configurations used in these instructions are for a production environment with enough resources to run your MAYANode in good conditions.

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux -

Steps

There are three important steps to getting your node set up, deployed and churned in.

Repository Management

Your repository should be organised as follows:

All of your set up commands are run in cluster-launcher and all of your deploying/joining/managing/leaving commands are run from node-launcher

Running Two or More Nodes

To prevent a catastrophic mistake in handling multiple nodes, checkout the branch of the node-launcher and preferrably use different repos for each node configuration.

All of your commands can now be run separately.

It is heavily advised to not set up nodes on the same provider. Deploy 1 node on Azure, 1 node on Digital Ocean etc.

Audits

Find detailed information about the various security and code audits that have been conducted on the protocol.

Halborn

  • Draft:

  • Final:

  • Final:

  • Final:

  • Final:

  • Final:

  • Final:

Alerting

Telegram Notification Service

Community alert channels

To listen for update announcements, join the following channels:

  • Telegram MAYANode Announcements

  • Discord MAYAChain Community Devs especially #mayanode-mccn

Be sure to use a pseudonym in order to prevent doxxing yourself. Node operators should remain anonymous for the health of the network and your personal/node security.

Step-by-Step Guides

Find our guides in the following sections.

Here you'll find step-by-step guides on how to , using custom memos, and & Liquidity.

Liquidity
Getting Started
MAYANode Overview
MAYANode Overview
Incentive Curve
Cluster Launcher
Alerting

y

Inflation

%100

0

%90

0

%89

%5.4

%80

%9

%70

%13

%60

%17

%50

%21

./mayanode-ops
  |./cluster-launcher
  |./node-launcher
./mayanode-ops
  |./cluster-launcher
  |./node-launcher
./mayanode-ops2
  |./cluster-launcher
  |./node-launcher
https://docs.microsoft.com/en-us/windows/wsl/about
Setting up Cluster
Deploying MAYANode Services
Joining ("Churning In")
daemons
ETH Router
Layer 1 & Liquidity Nodes
Liquidity Auction
Dynamic Inflation
Liquidity Auction Tiers
Thorchain's Bifrost
Dash's Bifrost
Join here
Join here
Setup Wallets
Swap Assets
Providing
Withdrawing
official LEDGER documentation
ThorWallet
Twitter
Twitter ESP
Discord server
Telegram
Podcast
Podcast ESP
Reddit
TikTok
TikTok ESP
YouTube channel
Medium
Newsletter subscription
nstagram

$MAYA Airdrops Guide

A list of all $MAYA Airdrops, conditions and expected dates.

Beware of scammers! Maya Protocol will NEVER announce a surprise or emergency Airdrop. ALL airdrops will be announced well in advance on our Discord, Twitter, Reddit, and other Social Media. Make sure to check multiple sources of information before claiming any Airdrop.

All future Airdrop dates are estimates.

Tier 1 Liquidity Providers

On the 2nd of April, 2023, 2% of $MAYA token total supply (20,000 $MAYA) was Airdropped to early LPs. 5% still remain to be distributed 200, 350, 500 days after the Liquidity Auction $CACAO distribution (17th of April, 2023). The 5% will be divided to thirds and Airdropped to Tier 1 LPs that stayed in the pools. Here are the dates:

Liquidity Providers Airdrops are calculated based on liquidity left, not liquidity initially provided.

$RUNE holders & Liquidity Providers

On the 17th of May, 2023, 7% of $MAYA tokens total supply (70,000 $MAYA) was Airdropped To $RUNE holders & $RUNE liquidity providers. The conditions were:

A. Having $RUNE bonded in a Node,

B. Having $RUNE locked in a symmetrical LP position,

C. Having a $RUNE asymmetrical LP position,

D. Holding $RUNE in a wallet and/or,

E. Holding $RUNE in Maya pools during the auction.

Cases A and B had a 4x boost. Cases C and D had a 2x boost. Case E had a 1x boost.

Maya Mask Holders

On the 1st of July, 2023, 1% of the total $MAYA tokens supply (10,000 $MAYA) was Airdropped to Maya Mask Holders.

  • 20% of $MAYA has been airdropped to the Maya Mask holders who claimed the Airdrop.

  • 80% of $MAYA stays inside the masks to stake later on AZTECChain's staking module.

  • The remainder of the unclaimed 20% will also be added to the staking module on AZTECChain.

  • Bear in mind there will be an $AZTEC airdrop as well for Maya Mask holders in the future.

  • The $AZTEC amount for Airdrop and staking is identical to $MAYA.

Early Node Operators and Liquidity Bonders

7% of the $MAYA total supply will be rewarded to early Liquidity Node operators.

How will the $MAYA Airdrop be distributed among Liquidity Node operators and Liquidity Bonders?

50% of the Airdrop will go to the LN operator regardless of their liquidity contribution, and 50% will go to the LBs (including the LN operator, if they have liquidity bonded as well).

Fees and Wait Times

Swap Fees and Delay

Fee Types

Users pay up to four kinds of fees when conducting a swap.

  1. Layer1 Network Fees (gas): paid by the user when sending the asset to MAYAChain to be swapped. This is controlled by the user's wallet.

  2. Slip Fee: protects the pool from being manipulated by large swaps. Calculated as a function of transaction size and current pool depth. The slip fee formula is explained here(LINK) and an example implementation is here.

  3. Affiliate Fee - (optional) a percentage skimmed from the inbound amount that can be paid to exchanges or wallet providers. Wallets can now accept fees in any MAYAChain-supported asset (USDC, BTC, etc). Check the "Preferred Asset for Affiliate Fees" section in Fees for more details and setup information.

  4. Outbound Fee - the fee the Network pays on behalf of the user to send the outbound transaction. See Outbound Fee (LINK).

The Swap Quote endpoint will calculate and show all fees.

See the fees section for full details.

Refunds and Minimum Swap Amount

If a transaction fails, it is refunded, thus it will pay the outboundFee for the SourceChain not the DestinationChain. Thus devs should always swap an amount that is a maximum of the following, multiplied by at least a 4x buffer to allow for gas spikes:

  1. The Destination Chain outboundFee, or

  2. The Source Chain outboundFee, or

  3. $1.00 (the minimum outboundFee).

For convenience, a recommended_min_amount_in is included on the Swap Quote endpoint, which is the value described above. This value is priced in the inbound asset of the quote request (in 1e8). This should be the minimum-allowed swap amount for the requested quote.

Wait Times

There are four phases of a transaction sent to MAYAChain each taking time to complete.

  1. Layer1 Inbound Confirmation - assuming the inboundTx will be confirmed in the next block, it is the source blockchain block time.

  2. Observation Counting - time for 67% MAYAChain Nodes to observe and agree on the inboundTx.

  3. Confirmation Counting - for non-instant finality blockchains, the amount of time MAYAChain will wait before processing to protect against double spends and re-org attacks.

  4. Outbound Delay - dependent on size and network traffic. Large outbounds will be delayed.

  5. Layer1 Outbound Confirmation - Outbound blockchain block time.

Wait times can be between a few seconds up to an hour. The assets being swapped, the size of the swap and the current network traffic within MAYAChain will determine the wait time.

The Swap Quote endpoint will calculate points 3 and 4.

See the Delays section for full details.

Typescript (XChainJS) WIP

XChainJS library overview and the main components

XChainJS is an open-source library with a common interface for multiple blockchains, built for simple and fast integration for wallets and Dexs and more. XChainJS is designed to abstract MAYAChain and specific blockchain complexity and to provide an easy-to-use API for developers.

The packages implement the complexity detailed in the other sections of this site.

XChain has several key modules allowing powerful functionality.

Mayachain-query

Allows easy information retrieval and estimates from MAYAChain.

Mayachain-amm

Conducts actions such as swap, add and remove. It wraps xchain clients and creates a new wallet class for and balance collection.

Chain clients

For every blockchain connected to MAYAChain with a common interface.

Current clients implemented are:

  • xchain-arb

  • xchain-bitcoin

  • xchain-dash

  • xchain-ethereum

  • xchain-kujira

  • xchain-mayachain

  • xchain-thorchain

APIs for getting data from MAYAChain.

  • Midgard

  • MAYAnode

See the package breakdown for more information.

Install Procedures

Ensure you have the following

  • npm --version v8.5.5 or above

  • node --version v16.15.0

  • yarn --version v1.22.18 or above

Create a new project by creating a new folder, then type npx tsc --init.

Finding required dependencies

The replit code examples have all the required packages within the project.json file, just copy the project dependencies into your own project.json.

Example for the query-package, estimateSwap packages

  1. Go to the replit code example then press show files. Select the project.json file.

  2. Locate and then copy the dependencies section into your project.json file.

  3. From the command line, type yarn. This will download and install the required packages.

The code is available on GitHub and managed by several key developers. Reach out at Telegram group: https://t.me/xchainjs for more information.

VultiWallet

What is Threshold Signature Scheme (TSS)?

You've probably read that MAYAChain, similar to THORChain, utilizes Threshold Signature Scheme (TSS) to manage its vaults. But, what exactly is TSS and what advantages does it offer?

Private Keys, Public Keys, and Wallet Addresses

Digital Assets/ Cryptocurrencies are stored, or more accurately, assigned to an Address. This Address is derived from the Public Key, which in turn is derived from the Private key. This process is a one way street and can't be reversed (You cannot figure out the Private Key from the Wallet Address). This is achieved using cryptography.

Using cryptography techniques, the wallet address is derived from the public key, and the public key from private key, in way that the reverse can NOT occur.

Picture a cryptocurrency private key and signing algorithms as a key to a vault. It is a perfect fit - only this key can open the vault. If attackers manage to access the key, they can steal the victim's money and goods, leaving them with no way to get it back. And, if the key is lost, the safe and its contents are locked away forever. To reduce the risk of loss, the vault user can duplicate the key, but then it increases the risk of theft. It's a tricky situation!

One Vault, One Key.

In MAYAChain's case where larger sums of money are at stake, relying on a single entity to protect the vault is an inadequate solution. It's like trying to carry a heavy burden on your own - it's just too much to handle! So, instead of shifting the problem to another single entity (a custodian), why not share the responsibility between multiple parties (in our case, Nodes)? That way, a more secure unlocking system can be established, so that attackers have to steal multiple independent keys to unlock the vault.

Multisigs

MultiSig (multi-signature) is like having multiple locks on your vault - it's like having a security guard for each lock! Instead of a single key to open the vault, MultiSig creates a vault with multiple locks and keys and assigns the keys to multiple parties/Nodes. Now even if one of the keys is lost or stolen, the attackers won't be able to open the vault.

One Vault, Multiple Keys.

Of course, this means the vault needs to be bigger to accommodate the multiple locks, and it also means that anyone can see it has an unusual security mechanism, making it easier to track, and with higher fees as the transactions need to be encoded with more bytes for the additional signatures.

Threshold Signature Scheme (TSS)

With Threshold Signatures, each of the Nodes creates a key independently. Then, they forge the vault’s lock together, in a modular way, so each Node shapes a part of the lock that corresponds to its key. Eventually, at the end of this process, a vault with a single modular lock is created that corresponds to each of the keys.

The unlocking process involves the Nodes taking turns in unlocking the vault. Each key can turn the modular lock a few degrees forward. After a few rounds of partial turning of the different keys, the modular lock is fully unlocked.

Each key can unlock the lock partially.

This modular lock can be shaped so that even if only a subset of the keys are available, the vault can still be unlocked.

This makes TSS superior to Multisig in several ways:

  • Cheaper transactions

  • Indistinguishable from a standard private key, from the viewpoint of the blockchain.

  • Multisig needs different coding development for different types of blockchain (e.g. UTXO vs EVM vs Cosmos SDK, etc..), unlike TSS which can be implemented for any blockchain.

Sources:

  • Under the Hood: Asgard Vaults, TSS and Node Churns - LP university: https://crypto-university.medium.com/under-the-hood-asgard-vaults-tss-and-node-churns-4767f3a5624b

  • Threshold Signatures: The Future of Private Keys - Zengo Wallet: https://medium.com/zengo/threshold-signatures-private-key-the-next-generation-f27b30793b

  • The Keys to Crypto Kingdom: Wallet Address, Public and Private Keys Explained - Blocktrade: https://blocktrade.com/wallet-addresses-public-and-private-keys-explained/

  • Bitcoin stackexchange: https://bitcoin.stackexchange.com/questions/80708/what-is-the-difference-between-your-address-and-your-public-keys

Content Creators Guide

Maya Protocol's Visual Identity guide.

Whether your creative outlet is a YouTube video, an article, a tweet, or a meme, here are a few simple guidelines that will make your content look more polished and consistent with the visual identity of Maya Protocol's brand.

Quick Definitions:

  • Maya Protocol is an ecosystem that encompasses MAYAChain (Live) & AZTECChain (in development)

  • MAYAChain is a cross-chain AMM that facilitates cross-chain swaps without the need for bridging or wrapping assets.

  • AZTECChain is the smart contract layer for Maya Protocol that will enable suite of DeFi solutions to compliment & leverage MAYAChain cross-chain capabilities.

For more information and expanded explanations please visit What is Maya Protocol & How it works sections.

Naming Convention:

Note how the names are written. Make sure to use this conventions.

  • Maya Protocol: 2 separate words, with only the first letters capitalized for both words.

  • MAYAChain: 1 word, with the word "MAYA" and the first letter of "Chain" capitalized.

  • AZTECChain: 1 word, with the word "AZTEC" and the first letter of "Chain" capitalized.

Color Scheme:

Typography:

Assets:

You can find all the logos in different formats on this link.

Links:

If you're going to reference any Maya Protocol social media or websites, please use the official links.

If you need anymore information, please contact the team directly on our official Discord.

Incentive Curve

MAYAChain's Incentive Pendulum keeps the network in a balanced state.

The capital on MAYAChain can lose its balance over time. Sometimes there will be too much capital in liquidity pools; sometimes there will be too much bonded by nodes. If there is too much capital in liquidity pools, the network is unsafe. If there is too much capital bonded by nodes, the network is inefficient.

If the network becomes unsafe, it increases rewards (block rewards and liquidity fees) for node operators and reduces rewards for liquidity providers. If the network becomes inefficient, it boosts rewards for liquidity providers and reduces rewards for node operators.

Balancing System States

MAYAChain can be in 1 of 5 main states—

  • Unsafe

  • Under-Bonded

  • Optimal

  • Over-Bonded

  • Inefficient

These different states can be seen in the relationship between bonded Cacao and pooled Cacao. The amount of Cacao which has been bonded by node operators, and the amount which has been added to liquidity pools by liquidity providers.

Optimal State

In the optimal state, bonded LP is roughly 85% of the liquidity, with the remaining being simply pooled LP. Both Bonded and Pooled LP is 50% Cacao and 50% assets. This is the desired state. The system makes no changes to the incentives for node operators or liquidity providers.

Unsafe State

The system may become unsafe. In this case, pooled capital is more than 1/4 bonded capital, a 75-25 split.

This is undesirable because it means that it's become profitable for node operators to work together to steal assets.

To fix this, the system increases the amount of rewards going to node operators and lowers the rewards going to liquidity providers. This leads to more node operators getting involved, bonding more LP and increasing bonded capital. This also disincentivises liquidity providers from taking part. They receive less return on their investment, so they pull assets out and reduce the amount of pooled capital. With time, this restores balance and the system moves back towards the optimal state.

Inefficient State?

In Maya, the system can never become inefficient, since all of the capital is always at work in LP. Still, the network wishes to incentivize fresh liquidity to leverage the protocol and increase the flywheel effect of liquidity.

To do this this, the system increases rewards for liquidity providers and decreases rewards for node operators. This attracts more liquidity providers to the system. Liquidity providers add more capital to receive more rewards, increasing pooled capital.

Bonded capital falls as a percentage of total liquidity. In this way, the system returns to the optimal state.

Under and Over-Bonded States

The under- and over-bonded states are less severe intermediary states. Being under-bonded is not a threat in itself because it is not yet profitable for node operators to steal. Being over-bonded is not a problem in itself because the system is still operating quite well.

The MAYAChain team does not expect the unsafe or inefficient states to come up often. The system will be near the optimal state most of the time, particularly as it gets easier for people to run node.

You can read more about this in our Whitepaper, in the section about Liquidity Nodes.

Maya Masks

Maya Protocol's Official NFT Collection

Maya Masks is the NFT collection that visualizes and unites the Maya Protocol community. The Masks are designed to be wearable assets for your favorite Web3 avatar. Whether you're a Bored Ape, Moonbird, or ThorGuard, you can put a Mask on to show that you're a Mayan!

Only 1,689 Genesis Maya Masks exist in the market. The remaining 4,371 were taken out of supply after the public mint ended. These Maya Masks currently exist on the Ethereum blockchain, and will migrate to Aztec Chain once ready.

Within the collection there are 2 main types of Masks; Golden Masks, and regular Masks. Golden Masks are the rarest pieces in the collection and offer increased utility compared to regular Masks. Maya Masks not only represents the Maya Protocol Community, but it is heavily utility-focused.

Maya Masks main utility is to:

  • Stake for daily CACAO rewards from the protocol when Aztec Chain is launched.

  • Access pass for community events, channels, and future collections.

  • Receive a one time airdrop of MAYA and AZTEC (Each Maya mask contains 4.5 MAYA & 4.5 AZTEC, 80% is locked in the Mask and the rest %20 airdropped).

There are 1,000,000 tokens (MAYA/AZTEC). 10,000 will be shared among 1689 Maya Masks.

  • 2,500 tokens allocated to 20 Golden Masks (2,500/ 20 = 125 MAYA).

  • 7,500 tokens allocated to 1669 regular Masks (7,500/ 1669 = 4.49 MAYA).

  • Same calculations apply to AZTEC.

MAYA has already been Airdropped to Maya Mask holders. AZTEC will be Airdropped after the launch of AZTECChain .

OpenSea: https://opensea.io/collection/mayamasks

Contract: https://etherscan.io/token/0xe00d8f3dca2ac474f4d7f177570f77de0774e754

Website: https://www.mayamask.com/

Roadmap 2025

Mimir V2

Mimir v2 shifts control to node operators, letting them adjust permissions and halt chains when needed. It boosts decentralization and empowers the community to propose and vote on upgrades, ensuring Maya evolves with transparency.

Aztec

Enables users to access Smart Contracts and build advanced DeFi tools like derivatives and algorithmic stablecoins within the Maya ecosystem.

Zcash Integration

Zcash $ZEC is depositable into Maya for Swaps & Liquidity actions.

Taproot

Maya integrates Taproot+, bringing enhanced privacy and scalability to Bitcoin transactions. This unlocks exciting new DeFi use cases for BTC, making it more versatile and efficient in the Maya ecosystem.

Kaspa

Kaspa $KAS is depositable into Maya for Swaps & Liquidity actions.

Swapper Clout

THORChain Dex Aggregation

Enabling swaps between THORChain & MAYAChain assets.

Cardano Integration

Cardano $ADA is depositable into Maya for Swaps & Liquidity actions.

More Chains

Will be announced accordingly.

Fees

MAYAChain charges a fixed Outbound Fee and a dynamic Liquidity Fee.

Fees

Conceptually, fees are both value-capture, access-control and resource-subsidisation mechanisms.

Value Capture

The fees need to capture value from those accessing the resource, and pay it to those providing the resource, and in this case the resource is liquidity. However liquidity is relative to the size of the transaction that demands it over the depth of the market that will service it. A small transaction in a deep pool has less demand for liquidity than a large transaction in a small pool.

Access-control

The other reason for fees is access-control; a way to throttle demand for a fixed resource and let natural market forces take over. If there is too much demand for a resource, fees must rise commensurately. The resource in this case is liquidity, not market depth, thus fees must be proportional to liquidity.

Resource Subsidisation

Every swap on MAYAChain consumes resources (Disk, CPU, Network and Memory resources from validators). These costs are fixed in nature. In addition, every outgoing transaction demands resources on connected chains, such as paying the Bitcoin mining fee or Ethereum gas cost. As such, MAYAChain charges a single flat fee on every transaction that pays for internal and external resources.

Other Benefits

In addition to the above, fees also create the following benefits:

  1. Avoid dust attacks

  2. Store up income after the initial Emission Schedule reduces

  3. Give the user a stable fee, rather than a dynamic one which changes with the external network's fees

Fee Process

MAYAChain maintains an awareness of the trailing gas price for each connected chain, saving both gas price as well as gas cost (inferring transaction weight). Nodes are instructed to pay for outgoing transactions using a gas price that is a multiple of the stored value.

The gas is consumed from each chain's base asset pool - the BTC pool pays for Bitcoin fees, the ETH pool for Ethereum fees etc.

The network then observes an outgoing transaction and records how much it cost in gas in the external asset. The final gas cost is then subsidised back into each pool by paying CACAO from the reserve.

Outbound Fee

The user is charged an amount that is three times the stored gas cost for each chain. The Node can then pay a gas price that is 1 times the gas price, and the pool is subsidised a value that is twice what was observed. This means the pool earns a margin of 1x, and the Reserve earns a margin of 1x.

Example:

Chain
Typical
Outbound Fee
Network Fee (Paid by Pool)
Pool Gets
Reserve Earns

The Network Fee is collected in CACAO and sent to the Protocol Reserve. If the transaction involves an asset which is not CACAO the user pays the Network Fee in the external asset. Then the equivalent is taken from that pool's CACAO supply and added to the Protocol Reserve.

If the transaction is in CACAO then the amount is directly taken in CACAO.

Slip-Based Fee

The CLP algorithm includes a slip-based fee which is liquidity-sensitive. Since demand for liquidity is defined as the size of the transaction over the depth of the market that will service it, then a fee which is proportional to liquidity solves key problems.

Firstly it has better value-capture when demand for liquidity is high, no matter the size of the transaction or the depth of the market. This means that over time, pool depths will settle to an equilibrium that is relative to the sizes of transactions that are passed over it. This solves the bootstrapping problem, because low-depth pools may turn out to be more profitable than high-depth pools to liquidity providers.

Secondly it has better access-control, since the more a trader (or attacker) demands liquidity, the more they have to pay for it. This makes sandwich attacks prohibitively expensive allowing pools to become reliable price feeds.

Additionally a slip-based fee is stateless and non-opinionated. The final fee paid is always commensurate to the demand of resources (both internal and external) no matter what it is.

This fee is retained on the output side of the pool, ensuring it counters the trade direction.

In an Asset-Asset swap, the fee is applied twice since two pools are involved, however the user only sees it as a single fee and a single slip value.

Network Fee

The third fee to discuss is the Network Fee. This is what users pay to make transactions on MAYAChain ledger itself. Currently, this is fixed and available on the /constants endpoint, but it is intended to be dynamic and set to be a fixed $ qty of assets. Additionally, MAYAChain has custom gas logic where users pay fees in the asset they send, because all assets on MAYAChain have protocol pricing, either being CACAO, or synths, where synths are derived from the pools themselves.

Technology

An overview of MAYAChain's 1-way State Pegs, State Machine and TSS Protocol.

Overview

MAYAChain is a leaderless vault manager:

  1. 1-way State Pegs allow syncing state from external chains.

  2. A State Machine to coordinate asset exchange logic and delegate outgoing transactions.

  3. Bifröst Chain Client to processs chain-specific transactions.

  4. A TSS protocol to enable distributed threshold key-signing.

The Bifröst Protocol: 1-way State Pegs

Each node has a "Bifröst" service that deals with the nuances of connecting to each chain. Once nodes are synced, they watch vault addresses. If they ever see an inbound transaction, they read it and convert it into a MAYAChain witness transaction.

The witness transaction has the following parameters that are essentially the same for each chain, no matter the type:

MAYAChain processes each observed transaction and waits for consensus. Once a super-majority of nodes agree on a particular transaction, it moves from a pending state to a finalised state.

Each chain client is quite light-weight, containing only as much logic as is necessary to connect to that particular chain. Most of the logic is in the observer itself.

MAYAChain State Machine

The state machine processes the finalised transaction and performs logic, such as ordering transactions, computing state changes, and delegating them to a particular outbound vault. Finally, a txOut item is created and stored in the Key-Value store.

The txOut looks like the following:

The Transaction Out item details which chain it should be sent on, the destination address, the vault it should be sent from, and the maximum gas that should be spent. It also has fields for the transaction that initiated it (the InHash) and the transaction that will complete the accounting (the OutHash).

Signer (Bifröst)

Once the finalised transaction is created, the Signer loads it from their local copy and serialises it into a correct transaction for the destination chain using the respective chain client. This is then sent to the TSS module which coordinates key-signing. The final signed transaction is then broadcast to the respective chain.

MAYAChain Vaults

There are two types of vaults in MAYAChain's system - "inbound vaults" and "outbound vaults":

Asgard TSS Vaults - inbound vaults with large committees (27-of-40)

This allows the system to use the security of the large vaults to hold the bulk of assets, but delegate to the small, fast outbound vaults the outgoing assets. Every MAYANode runs an outbound vault.

Sharded Asgard Vaults

In order to further increase the node count to beyond 40 nodes, the system shards Asgard vaults into two when it approaches the MaxNodesForAsgard constant (and merges them if two ever drop below half of this). As such, with 100 nodes, there would be 3 Asgard vaults, with 100 yggdrasil vaults. The system constantly checks which vault has the highest excess security, and instructs users to send funds there.

Migrating

When the network churns, it creates new public keys and migrates the funds forward. The churning process is split up in 5 different transactions, 1 per asset (identified by migrate memo). It typically takes a few hours to complete. Users are instructed to only send funds to the newest vault, but the retiring vault is monitored. Once the last of the 5 migrations is complete, the previous vault is discarded and no longer monitored.

The previous vault cannot be monitored forever since it can not be guaranteed that all nodes in that vault are still online, and it becomes an attack vector to keep old vaults "around".

If you send funds to a retired vault (likely by caching the address) your funds will be forever lost and is impossible to be recovered.

Fullnode Installation Guide

Chain ID: mayachain-mainnet-v1 | Current Node Version: v1.111.0

Install Go and other requirements

Install Go

We will use Go v1.22.0 as an example here. The code below also cleanly removes any previous Go installation.

Configure Go

Unless you want to configure in a non-standard way, then set these in the ~/.bash_profile for bash and ~/.zshrc for zsh.

Install dependencies protobuf-compiler

Install docker and docker compose plugin

https://docs.docker.com/engine/install/

Install Node

Install the current version of node binary.

*You can see tags in

Install binary

Run Node

Create Service File

Create a mayanode.service file in the /etc/systemd/system folder with the following code snippet. Make sure to replace USER with your Linux username. You need sudo privilege to do this step.

Download Snapshot

Please use a in order to avoid syncing from start. You will need to install

Start Node Service

Other Considerations

This installation guide is the bare minimum to get a node started. You should consider the following as you become a more experienced node operator.

  • Configure firewall to close most ports while only leaving the p2p port (typically 27146) open

  • Use custom ports for each node so you can run multiple nodes on the same server

If you find a bug in this installation guide, please reach out to our Discord Server and let us know.

Bitcoin

$1

$3

$1

$2

$1

Ethereum

$10

$30

$10

$20

$10

Cosmos GAIA

$0.03

$0.09

$0.03

$0.06

$0.03

slip=xx+Xslip = \frac{x}{x+X}slip=x+Xx​
fee=slip∗output=xx+X∗xYx+X=x2Y(x+X)2fee = slip * output = \frac{x}{x+X} * \frac{xY}{x+X} = \frac{x^2Y}{(x+X)^2}fee=slip∗output=x+Xx​∗x+XxY​=(x+X)2x2Y​
sudo rm -rvf /usr/local/go/
wget https://golang.org/dl/go1.22.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
rm go1.22.2.linux-amd64.tar.gz
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
apt-get update
apt-get install -y git \
     make \
     protobuf-compiler \
     curl \
     wget \
     jq \
     build-essential \
     musl-tools \
     linux-headers-generic
git clone https://gitlab.com/mayachain/mayanode
cd mayanode
git checkout <latest version tag>
make protob
TAG=mainnet NET=mainnet make install
MAYA_COSMOS_TELEMETRY_ENABLED=true CHAIN_ID=mayachain-mainnet-v1 NET=mainnet SEEDS=15.156.45.237,18.217.85.10 bash ./build/scripts/fullnode.sh
[Unit]
Description="Mayanode"
After=network-online.target

[Service]
User=USER
ExecStartPre=/home/USER/.go/bin/mayanode render-config
ExecStart=/home/USER/.go/bin/mayanode start
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="MAYA_COSMOS_TELEMETRY_ENABLED=true"
Environment="CHAIN_ID=mayachain-mainnet-v1"
Environment="NET=mainnet"
Environment="SIGNER_NAME=mayachain"
Environment="SIGNER_PASSWD=password"

[Install]
WantedBy=multi-user.target
mkdir -p ~/.mayanode/data
aws s3 cp --recursive s3://public-snapshots-mayanode/full/<snapshot height> ~/.mayanode/data
# Enable service
sudo systemctl enable mayanode.service

# Start service
sudo systemctl start mayanode

# Check logs
sudo journalctl -feu mayanode
mayanode's repo tags
snapshot
aws-cli
type Tx struct {
	ID          TxID    `json:"id"`
	Chain       Chain   `json:"chain"`
	FromAddress Address `json:"from_address"`
	ToAddress   Address `json:"to_address"`
	Coins       Coins   `json:"coins"`
	Gas         Gas     `json:"gas"`
	Memo        string  `json:"memo"`
}
type ObservedTx struct {
	Tx             common.Tx        `json:"tx"`
	Status         status           `json:"status"`
	OutHashes      common.TxIDs     `json:"out_hashes"` 
	BlockHeight    int64            `json:"block_height"`
	Signers        []sdk.AccAddress `json:"signers"` 
	ObservedPubKey common.PubKey    `json:"observed_pub_key"`
}
type TxOutItem struct {
	Chain       common.Chain   `json:"chain"`
	ToAddress   common.Address `json:"to"`
	VaultPubKey common.PubKey  `json:"vault_pubkey"`
	Coin        common.Coin    `json:"coin"`
	Memo        string         `json:"memo"`
	MaxGas      common.Gas     `json:"max_gas"`
	InHash      common.TxID    `json:"in_hash"`
	OutHash     common.TxID    `json:"out_hash"`
}

Setup - Linode

Setting up a Kubernetes Cluster with Linode (linode)

Deploy a Kubernetes cluster in Linode using LKE service.

Requirements

  1. a Linode account

  2. linode-cli and linode credentials configured

  3. kubectl

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about****

linode-cli

To install the linode-cli (Linode CLI), follow these instructions.

You need to have pip (python) on your system.

pip install linode-cli --upgrade

Create a Linode API token for your account with read and write access from your profile page. The token string is only displayed once, so save it in a safe place.

Use the API token to grant linode-cli access to your Linode account. Pass in the token string when prompted by linode-cli.

linode-cli

kubectl

To install the kubectl (Kubernetes CLI), follow these instructions or choose a package manager based on your operating system.

MacOS:

Use the package manager homebrew to install kubectl.

brew install kubernetes-cli

Windows:

Use the package manager Chocolatey to install kubectl.

choco install kubernetes-cli

wget

To install the wget, follow these instructions or choose a package manager based on your operating system.

MacOS:

Use the package manager homebrew to install wget.

brew install wget

Windows:

Use the package manager Chocolatey to install wget.

choco install wget

Deploy Kubernetes Cluster

Use the commands below to deploy a Kubernetes cluster.

You can run the make command that automates those command for you like this:

make linode

Or manually run each commands:

cd linode/
terraform init
terraform plan # to see the plan
terraform apply

Configure kubectl

Now that you've provisioned your Kubernetes cluster, you need to configure kubectl.

To configure authentication from the command line, use the following command, substituting the ID of your cluster.

# Store it - method #1
jq -r ".resources[].instances[].attributes.kubeconfig" linode/terraform.tfstate | base64 -D > ~/.kube/config-linode

# Store it - method #2
linode-cli lke kubeconfig-view <use_your_cluster_id> > ~/.kube/config-linode

# Merge it and set current context
KUBECONFIG=~/.kube/config:~/.kube/config-linode kubectl config view --flatten > ~/.kube/tmpcfg && mv -f ~/.kube/tmpcfg ~/.kube/config && kubectl config use-context $(kubectl config current-context --kubeconfig=~/.kube/config-linode)

# Or just view it - method #1
jq -r ".resources[].instances[].attributes.kubeconfig" linode/terraform.tfstate | base64 -D
# Or just view it - method #2
linode-cli lke kubeconfig-view <use_your_cluster_id>

Note: If the above linode-cli command is broken you can download the file from the web dashboar for the respective cluster.

This replaces the existing configuration at ~/.kube/config.

Once done, you can check your cluster is responding correctly by running the command:

kubectl version
kubectl get nodes

Clean up your workspace

To destroy and remove previously created resources, you can run the command below.

make destroy-linode

Or run the commands manually:

cd linode/
terraform destroy

Setup - Google Cloud

Setting up a Kubernetes Cluster with GCP (GKE)

Deploy a Kubernetes cluster in GCP using GKE service.

Requirements

  1. GCP account

  2. gcloud and GCP credentials configured

  3. kubectl

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about****

Steps

Firstly, clone and enter the cluster-launcher repository. All commands in this section are to be run inside this repo.

git clone https://gitlab.com/mayachain/devops/cluster-launcher
cd cluster-launcher

Then install the terraform CLI:

Install Terraform:

brew install terraform

gcloud CLI

The gcloud CLI allows you to manage your GCP services.

Use the package manager homebrew to install the GCP CLI.

brew install google-cloud-sdk

After the installation, perform the steps outlined below. This will authorize the SDK to access GCP using your user account credentials and add the SDK to your PATH. It requires you to log in and select the project you want to work in. Then add your account to the Application Default Credentials (ADC). This will allow Terraform to access these credentials to provision resources on GCP. Finally, you need to enable the Compute Engine and Kubernetes Engine API services for your GCP project.

gcloud init
gcloud auth application-default login
gcloud services enable compute.googleapis.com
gcloud services enable container.googleapis.com

You will be asked for your Personal Access Token with read/write privileges (retrieved from API Panel from the GCP web console.)

API -> Tokens/Keys -> Create Token.

Make sure you handle your secrets securely!

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). **To install kubectl** , follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install kubectl.

brew install kubernetes-cli

wget && jq

You also need wget and jq, follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install wget and jq Note: You most likely have these installed already.

brew install wget
brew install jq

Deploy Kubernetes Cluster

Use the commands below to deploy an GKE cluster:

make gcp

During the deployment, you will be asked to enter information about your cluster:

var.project_id
  Project ID

  Enter a value: ma-k8s-123456

var.zone
  GCP zone in region

  Enter a value: us-east1-d
  • Project ID

  • Zone -- gcloud compute zones list

  • Confirm yes

Deploying a cluster takes ~15 minutes

CONFIGURE

Now that you've provisioned your GKE cluster, you need to configure kubectl. The following command will get the access credentials for your cluster and automatically configure kubectl.

(cd gcp && gcloud container clusters get-credentials $(terraform output cluster_name) --zone $(terraform output zone))

This replaces the existing configuration at ~/.kube/config.

Once done, you can check if your cluster is responding correctly by running the following commands.

kubectl version
kubectl get nodes

You are now ready to deploy a MAYANode.

Impermanent Loss Protection (ILP)

What is Impermanent Loss Protection (ILP) and how does it work?

Impermanent Loss refers to the temporary loss that liquidity providers (LPs) may experience when providing liquidity to decentralized exchanges (DEXs). It arises due to the constant fluctuations in the prices of crypto assets. MAYAChain aims to address impermanent loss through its Impermanent Loss Protection mechanism.

Maya Protocol ILP Rules:

  1. Impermanent Loss Protection is funded from the Maya Protocol Reserve, which is 10% of CACAO supply (10m CACAO). Refilled constantly and automatically with 10% of the protocol fees (transaction & swap fees).

  2. ILP on Maya starts on the 50th day after depositing liquidity, and coverage is capped at 100%.

    • If ASSET outperforms CACAO, full coverage is after 150 days (50 days after initial deposit + 100 days in LP).

    • If CACAO outperforms ASSET, full coverage is after 450 days (50 days after initial deposit + 400 days in LP).

  3. ILP is calculated at the time the user withdraws liquidity.

    • If the ASSET outperforms CACAO, the ILP is 1% daily. So, if the user withdrew after 150 days, they would get 100% protection. If the user withdrew after 100 days, they would get 50% protection.

    • If CACAO outperforms the ASSET, the ILP is 0.25% daily. So, if the user withdrew after 450 days, they would get 100% protection. If the user withdrew after 250 days, they would get 50% protection.

    • If fees cover the Impermanent Loss, the LP isn’t eligible for ILP.

  4. ILP is paid and reset after full withdrawal, not affected by partial withdrawals, and only reset but not paid on top-ups.

  5. ILP is always recorded and calculated symmetrically (ASSET-CACAO). So even if you deposited asymmetrically (single asset), the deposit values are NOT the amounts the user deposited. They are the immediate symmetrical (ASSET-CACAO) value of what the user deposited.

The impermanent loss protection can be mathematically Calculated using the following process.:

  1. Calculate the amount to cover in CACAO.

  2. Calculate the percentage of coverage.

Step 1: Calculate the amount to cover in CACAO.

Where:

A0 = Initial ASSET amount deposited.

A1 = ASSET amount to be redeemed upon withdrawal.

R0 = Initial CACAO amount deposited.

R1 = CACAO amount to be redeemed upon withdrawal.

P1 = LP ratio of the pool upon withdrawal.

Amount to cover in CACAO = ((A0*P1)+R0) – ((A1*P1)+R1)

Example:

Assuming the ASSET is USDT and the LP initial amounts were (100 USDT + 1,000 CACAO), and (80 USDT + 1100 CACAO) at withdrawal, and the LP ratio of the pool is 1% (0.01).

((100*0.01)+1000) – ((80*0.01)+1100) = 1001 – 1100.8 = -99.8 CACAO

Step 2: Calculate the percentage of coverage.

First we need to determine if CACAO was outperforming (400, after 50, days to full coverage) or underperforming (100, after 50, days to full coverage).

In the above case CACAO has been underperforming. So 100 days to full coverage.

As a rule of thumb, if you deposit 2 assets, and at withdrawal you got more of an asset and less of the other compared to the initial deposit, the asset you got more of, is the asset underperforming. Think of it like this; people were giving away the less desirable asset and taking more of the other.

Now we need to calculate the length of time liquidity has been deposited, to determine percentage of coverage.

Blockchains don’t have clocks, but they have blocks, and we can derive the time from the number of blocks per second. In Maya’s case it’s around 6 seconds per block, or 14,400 a day.

So,

Percentage of coverage = (block no. at withdrawal – block no. at deposit - 50 days of blocks)/ (number of blocks a day * number of days to full coverage)

Example:

Block no. at withdrawal = 2,456,000.

Block no. at deposit = 900,000.

Percentage of coverage = (2,456,000 – 900,000 -(14,400 * 50))/ (14,400 *100) = 0.58 or 58%.

This means that LP will be protected with (99.8 CACA0 * 0.58) = 57.88 CACAO.

Connecting to MAYAChain

How to connect to Midgard, MAYANode and the base Tendermint layer.

The Network Information comes from four sources:

  1. Midgard: Consumer information relating to swaps, pools, and volume. Dashboards will primarily interact with Midgard.

  2. MAYANode: Raw blockchain data provided by the MAYAChain state machine. MAYAChain wallets and block explorers will query MAYAChain-specific information here.

  3. Cosmos RPC: Used to query for generic CosmosSDK information.

  4. Tendermint RPC: Used to query for consensus-related information.

The below endpoints are run by specific organisations for public use. There is a cost to running these services. If you want to run your own full node, see the information here.

Midgard

Midgard returns time-series information regarding the THORChain network, such as volume, pool information, users, liquidity providers and more. It also proxies to THORNode to reduce burden on the network. Runs on every node.

Mainnet

  • https://midgard.mayachain.info/v2/doc

Runs on every Node

Port: 8080

RPC Guide: http://<host>:8080/v2/doc

Stagenet

  • https://stagenet.midgard.mayachain.info/v2/doc

MAYANode

MAYANode returns application-specific information regarding the MAYAChain state machine, such as balances, transactions and more. Careful querying this too much - you could overload the public nodes. Consider running your own node. Runs on every node.

Mainnet

  • https://mayanode.mayachain.info/mayachain/doc

Runs on every Node

Port: 1317

RPC Guide: http://<host>:1317/mayachain/doc/

Stagenet

  • https://stagenet.mayanode.mayachain.info/doc

Cosmos RPC

The Cosmos RPC allows Cosmos base blockchain information to be returned. However, not all endpoints have been enabled. Endpoints guide

https://v1.cosmos.network/rpc/v0.45.1

Example URL https://stagenet.mayanode.mayachain.info/cosmos/bank/v1beta1/balances/smaya18z343fsdlav47chtkyp0aawqt6sgxsh3ctcu6u

Tendermint RPC

The Tendermint RPC allows Tendermint consensus information to be returned.

Any Node Ports

  • MAINNET Port: 27147

  • STAGENET Port: 26657

  • TESTNET Port: 26657

Endpoints guide https://docs.tendermint.com/master/rpc/#/

Mainnet

  • https://tendermint.mayachain.info

Stagenet

  • https://stagenet.tendermint.mayachain.info

P2P

P2P is the network layer between nodes, useful for network debugging.

MAINNET Port: 27146

STAGENET Port: 27146

P2P Guide https://docs.tendermint.com/master/spec/p2p/

Pooled MAYANodes

Summary

Skilled Node Operators who don't individually have enough Liquidity Units (Asset + CACAO) to run a node themselves can use the Bond Provider feature to collect bond from other Liquidity Providers.

Node Operators can define up to 8 Maya addresses as Bond Providers. These addresses will be able to bond and unbond to the node, earning rewards proportional to the amount of bond they contribute. Node Operators define an operator fee in basis points, which defaults to zero and must be set explicitly when bond providers are added. The Node Operator fee is taken from rewards and paid directly to the Node Operator address after each churn.

Rationale

The minimum Value of Liquidity Units needed to churn in as a MAYANode can be pricy (currently above $100k).

Not many people in the world have both the technical skills to run a validator AND at least $100k, which limits the supply of Node Operators who secure MAYAChain.

Pooled MAYANodes provide a way for a skilled Operator to enter a trusted agreement with Bond Providers to bootstrap enough capital for running a MAYANode. The Network's security increases, and Liquidity Providers can earn more yield.

Economic Security

At first glance it might seem Pooled Validators contradict the economic security model of MAYAChain (i.e. that Node Operators put up more in value in slash-able bond than the assets they secure). With Pooled Validators it is possible for the Node Operator to individually put up less bond than the value of the assets that the node secures. However this nuance only exists within the relationship between the Node Operator and the Bond Providers. The Network only considers the MAYANode as single entity thus the economic model is intact.

It would be disastrous to MAYAChain if operators could collect unlimited bond quantities from anon/retail providers. Malicious Operators could start marketing campaigns collecting liquidity and then rug-pull their users, or worse, access economies of scale and take over the network.

This is why Pooled MAYANodes are invite-only and limited to 8 per node. It is difficult to access economies of scale in these small quantities.

Managing a Pooled MAYANode

All CACAO Amount values are in 1e10 decimals, e.g. 1 CACAO = 10000000000.

Node Operator

Adding a Bond Provider

Add a bond provider using a BOND transaction with a modified memo from a wallet you control (APP or mayacli):

BOND:<NodeAddress>:<BondProviderAddress>:<NodeOperatorFee>

Example: BOND:maya7djftrgu98z84hef6dt6ykhe7cmjf3f8dcpkfun:maya9diy4q8u50qzsznpvh02s8j483aga63cl02k6jt:2000

  • NodeAddress - MAYANode address (prefixed by maya)

  • BondProviderAddress - Bond Provider address to whitelist (prefixed by maya)

  • NodeOperatorFee - fee in basis points to be taken from rewards and paid directly to Node Operator's address after each churn.

  • CACAO TX Value - 2 minimum (anything over 1 is added to the Operator's Bond).

A Node Operator is the first on-chain bonding transaction to a new node. You cannot change the operator address after the fact.

The Operator is also added as a Bond Provider.

Removing a Bond Provider

While the node is churned out, A Node Operator can remove a Bond Provider using an UNBOND transaction with a modified memo:

UNBOND:<NodeAddress>:<Amount>:<BondProviderAddress>

  • NodeAddress - MAYANode address (prefixed by maya)

  • Amount - amount of Bond Provider's bond to refund

  • BondProviderAddress - Bond Provider address to refund/remove (prefixed by maya)

  • RUNE Tx Value - 1 minimum

This command will refund the Bond Provider their bond and remove them from the Bond Provider list only if Amount constitutes all of the bond the Bond Provider is owed.

Node Operator Fee

Node operators can set a fee that is paid to them from the earnings each churn.

To set a Node Operator fee, send a deposit transaction with the following memo:

BOND:<node address>:<bond wallet address>:<operator fee in basis pts>

Example: BOND:maya1agftrgu74z84hef6dt6ykhe7cmjf3f8dcpkfun:maya1tfm4q8u57qzsznpvh02s8j483aga63cl02k6jt:2000

To adjust the Fee, The no operators can send: BOND:<node address>::<operator fee in basis pts>

Example: BOND:maya3guru5gu74z79hef6dt6ykhe7cmjf3f8dcfudge::4000 to see the fee to 40%.

Fees can range from 100 to 9900 basis pts. Setting 10000 causes all rewards to be to the node operator each churn. Setting it to 0 causes rewards to accrue to the bond.

Bond Provider

Adding/Removing Bond

Once whitelisted, a Bond Provider can Bond and Unbond from the node as normal.

Adding Bond:

BOND:<NodeAddress>

  • NodeAddress - MAYANode address (prefixed by maya)

  • CACAO Tx Value - Amount of LP to bond

Removing Bond:

UNBOND:<NodeAddress>:<Amount>

  • NodeAddress - MAYANode address (prefixed by maya)

  • Amount - Amount of LP to unbond

  • CACAO Tx Value - 1

When can you add Bond?

When the node is standby, active or not churning, bond amounts can be increased/decreased.

Reward Shares

Operators and Providers all have a bond amount registered to the node. Operators can start at 0.00 bonded. This on-chain bond amount is summed to the total bond, and thus everyone has a fair share in the MAYANode's principle + Liquidity Pool & transaction fees.

The Operator Fee is distributed to the Node Operator address from all CACAO rewards earned by a node after each churn.

If an Operator LEAVES, all the bond is fairly distributed.

MAYANodes

DeFi Products

Bonding & Unbonding Guide

A guide on how to bond/unbond LP units on MAYAChain using El Dorado Market

Only proceed with the following steps after you've been whitelisted by your node operator

1. Connecting your wallet

Visit https://app.eldorado.market/swap and connect your wallet

2. Select the keystore file of your wallet and enter your password

This keystore file should also contain the LP position(s) you want to bond.

3. Go to your wallet

Click on Wallet on the top right corner of your screen. This will bring you to a page that shows the balances of your wallet

4. Go to the $CACAO transfer screen

Click on Transfer button next to your CACAO balance.

5. Hit the Custom Memo button

Click on the button right before Make a deposit with custom memo.

6. Fill in the memo

You should see the following screen:

The memo is the most important of this whole process.

The structure for the bonding memo is as follows:

BOND:ASSET:LPUNITS:NODEADDRESS

  • ASSET is one of the assets available to bond. Check the Pools endpoint for all current pools

Not all assets are available for bonding. Check with your node operator or on Discord which assets are bondable

  • LPUNITS specifies how many LP units of given asset you want to bond. You can enter your Maya address in MayaScan, press on your desired pool, to see the amount of LP units you have on each pool.

  • NODEADDRESS is the Maya address of the Node you want to bond to.

An example memo would look like this:

BOND:THOR.RUNE:100000000000:maya13pv4zgyy85lzadjjkyvy3mmmr7l0yx9lzamay4 - Bond 100000000000 THOR.RUNE LP Units to node maya13pv4zgyy85lzadjjkyvy3mmmr7l0yx9lzamay4

Now that you have the memo, all that's left is the Amount to fill in. The Amount is always 1 CACAO.

7. Send the transaction

You should have all the boxes filled in now. The final step is sending the transaction.

Once you have sent the transaction, check with your node operator went well. You should now be a bond provider to a MAYANode.

Unbonding

  1. First, you'll need to check with your Node operator to check if your node is churned out (you can't unbond otherwise).

  2. Follow the exact same steps as above. The only change will be the memo which should use UNBOND instead of BOND, with this format UNBOND:ASSET:LPUNITS:NODEADDRESS

    • Example: UNBOND:THOR.RUNE:100000000000:maya13pv4zgyy85lzadjjkyvy3mmmr7l0yx9lzamay4

New solutions are being worked on to make bonding and managing nodes easier.

✔️ CHECKLIST

Checklist of items for Node Operators

Deploying

Joining

Upgrading

Unbonding

Leaving Whilst Active

Leaving Whilst Standby

Destroying a Node

Governance

MAYAChain governance is deliberately minimal. It decides which chains and assets are listed, and when the protocol gets upgraded.

MAYAChain aims to have as little governance baked into the system as possible. This is done so that nodes don't communicate or learn who one another are. This is important for security because it makes sure that nodes don't act together to take control.

MAYAChain governance decides:

  • which assets are listed/delisted

  • which chains are listed/delisted

  • when the protocol gets upgraded

  • the economic limit – how many nodes can participate

Asset Listing

Users signal which assets they want on the network by staking in a new pool. MAYAChain will realise it is a new asset it hasn't been seen before and create a new pool and place it in bootstrap mode. This is a normal asset pool except swapping is disabled on it. Every few days the networks looks at all the bootstrapping pools and lists the one with the highest value.

Asset Delisting

Assets are delisted when all liquidity providers have taken all their assets out of it, or its pool depth drops too low. The logic is:

  1. When a new bootstrap pool is enabled, its depth is compared with the depth of the smallest active pools.

  2. If it is deeper, the smallest active pool is placed back into bootstrap mode, and the new pool replaces it.

The process is repeated to re-list an asset.

Chain Listing/Delisting

When the community wants to support a new chain

  1. Community developers write a new Bifröst module and propose it via a MAYAChain Improvement Proposal (MIP).

  2. MAYAChain developer community decides whether or not to approve it

  3. If approved, the code gets tested and validated by core developers

  4. If accepted, it gets added to MAYANode software

  5. Nodes upgrade their software as they are cycled off and back onto the network

  6. When 67% of nodes are running the new software, the new chain is connected

To delist, nodes stop watching a chain. When 67% are no longer watching, it gets removed. A process begins and the assets of that chain are returned to their owners.

Protocol Upgrades & MAYAChain Improvement Proposals (MIPs)

Developers from the community submit MAYAChain Improvement Proposals (TIPs) to improve the network. The community discusses, tests and validates the software. If they decide that the change is beneficial, it's merged into the MAYANode software.

The protocol is made up of 3 main pieces, run by the nodes:

  • application logic – runs the blockchain

  • schema – stores key values of vaults

  • network software – keeps the TSS protocol key generation and signing

When nodes are churned off the network they can choose to update their software version. Over time more and more nodes will run the latest version. When 67% of nodes are running the new software, the network is automatically updated. This is how application logic, chain connections and schema are updated.

When upgrading the network software, a certain block number in the future is set when the upgrade will happen. When the network reaches that point, the whole chain stops running and a genesis import to a new network occurs and operations continue normally.

Emergency Changes

Emergency changes are difficult to coordinate because nodes cannot communicate. To handle an emergency, nodes should leave the system. When the number of nodes falls below 4, funds are paid out and the system can be shut-down. This process is called Ragnarök.

Economic Limit

There are only so many nodes who can participate on the network. This is because there's a minimum bond amount and a fixed supply of Cacao. If the system is ever found to be always under-bonded or over-bonded, the minimum bond limit can be changed.

Mimir

Mimir is a feature to allow changes in the constants of the chain, such as MinimumBond, ChurnSpeed and more.

There are two types of mimir

  • Node Mimir: set by each node. Once 2.3rds have set a mimir, it is enacted. Only active nodes have their votes counted

  • Admin Mimir: set by admins to over-ride constants during testing. Admin-mimir can't control funds, but it can set parameters. Ultimately admin-mimir will be removed.

Introduction

MAYAChain is a decentralised cross-chain liquidity protocol that allows users to add liquidity or swap over that liquidity. It does not peg or wrap assets. Swaps are processed as easily as making a single on-chain transaction.

MAYAChain works by observing transactions to its vaults across all the chains it supports. When the majority of nodes observe funds flowing into the system, they agree on the user's intent (usually expressed through a memo within a transaction) and take the appropriate action.

For more information see Technology or Concepts.

For wallets/interfaces to interact with MAYAChain, they need to:

  1. Connect to MAYAChain to obtain information from one or more endpoints.

  2. Construct transactions with the correct memos.

  3. Send the transactions to MAYAChain Inbound Vaults.

Front-end guides have been developed for fast and simple implementation.

Front-end Development Guides

Native Swaps Guide

Frontend developers can use MAYAChain to access decentralised layer1 swaps between BTC, ETH, DASH, KUJI and more.

Native Savings Guide

MAYAChain offers a Savings product, which earns yield from Swap fees. Deposit Layer1 Assets to earn in-kind yield. No lockups, penalties, impermanent loss, minimums, maximums or KYC.

Aggregators

Aggregators can deploy contracts that use custom swapIn and swapOut cross-chain aggregation to perform swaps before and after MAYAChain.

Eg, swap from an asset on Sushiswap, then MAYAChain, to an asset on Fin in one transaction.

Concepts

In-depth guides to understand MAYAChain's implementation have been created.

Libraries

Several libraries exist to allow for rapid integration. xchainjs has seen the most development is recommended.

Eg, swap from layer 1 ETH to BTC and back.

https://docs.xchainjs.org/overview/

Analytics

Analysts can build on Midgard or Flipside to access cross-chain metrics and analytics.

Eg, gather information on cross-chain liquidity

Connecting to MAYAChain

MAYAChain has several APIs with Swagger documentation.

  • Midgard - https://midgard.ninerealms.com/v2/doc

  • MAYANode - https://mayanode.mayachain.info/mayachain/doc

  • Cosmos RPC - https://tendermint.mayachain.info

See Connecting to MAYAChain for more information.

Synthetics

How MAYA enables synthetic assets with single asset exposure.

MAYA can not ensure the security of wrapped assets, so it does not wrap L1 assets to represent them. Instead it uses its liquidity to synthesise them, since liquidity is always 100% secured.

Synthetic Assets

Maya Protocol synthetics assets - "synthetics" - are unique in that they are 100% collateralised when they exist, but switch to being 1:1 pegged at the time of redemption. Other synthetic or wrapped asset designs are either over-collateralized, or pegged, never both. This means they are either capital-inefficient (require over-collateralisation), or capital-sensitive (can depeg if there is <100% collateralization).

The advantage of Maya's design is that the collateralization is managed by the system on a best-effort basis to be aspirationally 100%. However when the asset is redeemed, it switches to being pegged 1:1, which means they can tolerate going below 100% collateralization without losing the peg. The deficit is regained by liquidity-sensitive fees on the redemption so that the last holders of the asset can achieve re-collateralization.

The collateral for synthetic assets is constant-product liquidity, always 50% in the asset, with the other 50% in CACAO. As price changes, the pool re-balances on the curve, having much stronger inertia than if it were 100% collateralized by the endogenous asset (CACAO). The price-shift is subsidised by other liquidity in the pool.

Synthetic Assets are aspirationally 100% collateralized by pool liquidity when they exist, but are always redeemed on a 1:1 basis, no matter the health of the collateral.

Minting - 1:1 pegged

Synthetic Assets are created by swapping CACAO (or the external asset) into its synthetic representation using the pool liquidity depth. The pools treat the synthetic assets and the native assets as having identical in purchasing power:

  • r = cacao deposited

  • R = Cacao Depth (before)

  • A = Asset Depth (before)

This is the .

The total Synth Supply is then updated:

Synth Units - 100% collateralization

In the above swap - an asset was added to the pool (the CACAO or ASSET), but none taken out since the swap output is minted from nothing. Thus the pool has extra liquidity that needs to be isolated from other LPs. This is the purpose of Synth Units.

Synth Units represent the liquidity collateral value that is required to "back" the synths 100%, and stops other dual-LPs from claiming ownership of it. They are computationally derived at any point which ensures there is exactly enough at any time to represent the outstanding supply.

The ratio of Synth Units to Liquidity Units should be the same as the ratio of synth supply to the total value of the pool without the synths (since LP units are all pool units without the synth units).

  • U = Synth Units (what needs to be isolated to back the synthS)

  • L = Liquidity Units (dual-LPs)

  • S = Synth Supply (the synths to be backed)

  • A = Asset Depth (the assets in the pool)

Synth Units are issued to cover the new liquidity minted, but held by the pool (not owned by anyone). Pool Units are therefore the sum of + synthUnits.

Synth Collateralization is done aspirationally. If the total value of the liquidity in the pool drops below the total value of the synths, then Synth Units minted will go to infinity, diluting the dual-LPs to 0%.

Redeeming: 1:1 pegged

Synthetic Assets are redeemed by swapping the Synth across the pool. The synth is swapped using the same formula as though it was an L1 asset, thus the synth has the same purchasing power to the L1. It is therefore pegged.

  • s = Synths to Redeem

  • R = Cacao Depth (before)

  • A = Asset Depth (before)

The Synth Supply is thus decremented, and this in turn updates the oustanding Synth Units since it is computationally derived.

Swapping

Synth Swaps can be done as follows:

  • Layer 1 to Synth: L1 in, Synth Minted

  • Synth to Layer 1: Synth REDEEMED, L1 swapped out

  • Synth to Synth: Synth REDEEMED, CACAO moved between pools, synth MINTED

To specify the destination asset is synth, simply provide a MAYA address. If it is Layer 1, then provide a layer 1 address, e.g. a BTC address.

Economics

Fees

All swaps pay fees, and a synth Mint or Redeem to an L1 is two swaps. Thus 10.0 btc/btc swapped across a pool of 1000 BTC.BTC will receive 10 - ((10/1000)*10)*2 = 9.8 minus any outboundFees. Is the synth pegged 1:0.98? No, because the same holder could swap 10 BTC in 1.0 BTC increments and receive 10*(1 - ((1/1000)*1)*2) = 9.98 minus 10 outboundFees. Both outboundFees and liquidityFees as a function of the swap size can be controlled by the user.

Effect on Dual-LPs

The dynamic synth unit accounting is to ensure that gain or loss caused by price divergence in the synths is quickly realised to LPs. If Synths as a function of Pool Liquidity goes to 100%, then dual-LPs are diluted to 0%.

As Liquidity Providers have , as long as they stay for longer than 100 days, the Protocol is taking on the price risk. With the Grandfathering of ILP, the RESERVE will instead enter the pools as a dual-LP of last-resort. This stops Synths going to 100%.

Synth Minting Cap

Due to synths, Liquidity Providers are taking a leveraged position on the CACAO asset today. This can help them earn more rewards if CACAO outperforms the asset, but can also go the other way. The higher the percentage of synths that exist on the network relative to pool depth, the higher the leveraged position Liquidity Providers are taking.

Due to this, the minting of synths is capped to an upper limit of the total pool depth to protect Liquidity Providers and the network. The setting MaxSynthPerAssetDepth setting controls the cap which is the asset depth percentage.

This will soon be deprecated to allow PoL to control Synths.

Protocol Owned Liquidity (POL)

With the addition of yield-bearing synths, there can be a high demand for minting synths that exceed the cap with normal liquidity. See the original .

POL has been introduced to deal with a high demand for minting synths while maintaining a safe synth minting limit by using the CACAO within the .

The network can monitor the synth utilisation on a per pool basis, and add liquidity (asymmetrically addition of CACAO) if utilisation is greater than cap - 5% (if economic security allows). If synth utilisation is under this figure, then the reserve would remove liquidity (if the PoL has an LP position in this pool).

  • cap = e.g. 1500 (in basis points)

  • range = 500 (in basis points)

  • PA = pool asset depth

  • S = synth supply

By having the reserve add cacao into the pool, it de-risks LPs from over CACAO leverage, as the reserve takes on some of that risk. The Reserve is long on its own (and only) asset. This, in turn, creates synth space in the pool, more synth minting and more single-sided asset deposits in the form of synths to enter.

Staged Pools

If an active pool that minted synths becomes staged, then swaps are disabled. However, synth holders can always redeem for CACAO, or the underlying asset, by specifying that on the way out.

Setup - Digital Ocean

Setting up a Kubernetes Cluster with Digital Ocean (DO)

Deploy a Kubernetes cluster in DO using EKS service.

Requirements

  1. DO account

  2. doctl and DO credentials configured

  3. kubectl

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - ****

Steps

Firstly, clone and enter the . All commands in this section are to be run inside this repo.

Then install the :

Install Terraform:

DOCLI

The allows you to manage your DO services.

Use the package manager to install the DO CTL.

You will be asked for you Personal Access Token with read/write priveleges (retrieve from API Panel from the Digital Ocean web console.)

API -> Tokens/Keys -> Create Token.

Make sure you handle your secrets securely!

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). **To install kubectl** , follow , or choose a package manager based on your operating system.

Use the package manager to install kubectl.

wget && jq

You also need wget and jq, follow , or choose a package manager based on your operating system.

Use the package manager to install wget and jq Note: You most likely have these installed already.

Deploy Kubernetes Cluster

Use the commands below to deploy a DOKS cluster:

During the deploy, you will be asked to enter information about your cluster:

  • Name

  • DO Region -- see valid (use lower-case)

  • Confirm yes

Final success message: Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

Deploying a cluster takes ~10 minutes

CONFIGURE

Now that you've provisioned your DOKS cluster, you need to configure kubectl. Customize the following command with your cluster name and region.

If successful, you will see:

Test this configuration,

To verify, run this, and check the status is "Ready":

You are now ready to deploy a MAYANode.

Security

Describes the different security elements within MAYAChain

MAYAChain has several layers of security within the code base to ensure solvency of the network, stability of the protocol and minimize the impact of any exploit. These measures are in addition to human security efforts, see more information .

Conformation Counting

To project against double-spend attacks and re-orgs (non-instant finality chains), MAYAChain users Conformation counting for specific chains when receiving incoming value. informs MAYAChain when to process the incoming value. How many confirmations are required is dependent on the size of the incoming value.

Note, MAYAChain and Binance Beacon Chain have near-instant finality so confirmation counting is not required.

Outbound Transaction Throttling

To prevent large amounts of funds from leaving the network in an instant, large outbound transactions are throttled from immediately leaving the network. Each block has an outbound value limit **** (currently 1000 CACAO worth) and each outbound transaction has a maximum time limit that it can be processed. This has three effects:

  • Each outbound transaction to compete for the next outbound block, else, it will be processed in the following block, effectively throttling the total outbound capacity of the network. This is independent of conf-counting.

  • Large outbounds to spread across multiple blocks, up to 720 blocks (approx one hour).

  • Ensures one large outbound request of $1,000,000 is handled the same as one million $1 outbound requests.

This feature is controlled by several values that can be changed by Node Operators as required.

This serves as a defensive layer buying time and allowing a vigilant node operator to pause trading or automatically halt checks to engage before the large malicious outbound transaction is irreversibly executed and funds are lost. While the feature negatively impacts the user experience of MAYAChain, but is necessary in ensuring the protection of liquidity provider funds.

The feature is designed to grow as the network grows and is controlled by several Mimir values that can be changed by Node Operators as required. Additionally, the feature is designed to promote bug disclosure instead of directly attacking the network as a bug disclosure is likely more profitable.

MAYAChain has different levels of halt controls within the network which are controlled by Mimir values or by nodes, depending on the type and level.

The halts that can affect an individual **** chain are:

  1. Halt Signing- outbounds que

  2. Halt LP - add/remove stopped, swapping allowed.

  3. Halt Trading - no trading allows

  4. Halt Chain - nodes stop observing that chain

There are also network level halts

  1. Trading halt

To get more information see .

Automatic Solvency Checker

The solvency checker of the network’s primary vault was introduced to catch issues early or prevent them before they happened. Detected issues can trigger an automatic trading halt on a specific chain. There are two types of automatic solvency checks:

  • Reactive: The network continually compares the assets the network believes it has in its primary vault (Asgard Vault) to what assets are actually stored in the network’s chain wallets. For every connected chain, each node compares the stored Asgard vault value to each chain Asgard Wallet amount. If the Asgard Vault value is more than the wallet value by 1%, the node reports insolvency for that chain.

  • Proactive: This mode is more powerful and is intended to catch insolvencies even before they appear. When a node attempts to sign a txOut, it will do a calculation to check if by executing the txOut the vault becomes insolvent. If so, then it refuses to sign and reports insolvency.

Automatic Trading Halting

If more than 66% of nodes, report an insolvency with a chain (reactive or proactive), trading for all assets on that chain is automatically halted (Halt{Chain}Trading). The halt will also emit a security event to ThorSec.

Why 1% difference allowance?

MAYAChain builds an awareness of balances purely by adding the incoming funds, then subtracting the outgoings. Thus the expected balance is the aggregate of the ins and outs. Divergences can occur when actual on-chain balances start to diverge. For gas assets (assets used to pay gas), small divergences can be intermittent, but normally less than +/- 1%.

Secondary Vault Security

Yggdrasil Vaults, the secondary vaults that hold approx 25% of the network funds, are secured by the Node Operators’ bonds and the threat of their bond being slashed 1.5x of any funds they mishandle (e.g steal or attempt to double spend).

Node Operator Triggered Halts

Node Operators have the ability to halt trading within MAYAChain if they detect malicious activity. This is in addition to automatic chain-specific halting functionality. The ability has been made with the potential for abuse in mind.

A single node can pause trading (HaltTrading) for up to an hour (720 blocks). Any additional node that calls for a halt will add 720 blocks to the halt timer. Any node that calls for the resumption of trading removes 720 blocks from the timer. The halt functions can only be called once by each active node per churn cycle (3 days). This gives the network the ability to respond to a malicious threat without giving any node unilateral control.

Unauthorized Transaction Detection

This blanket protection will automatically pause MAYAChain on a specific chain (Halt{Chain}Trading) and stop Yggdrasill vault funding if an unauthorised transaction is detected. This will emit a security event and be sent to MAYASec. The halt will allow Node Operators, MAYASec, and the development team to investigate and react immediately following an unauthorised transaction and issue a fix and restore service as quickly as possible.

Automatic Security Flagging

Security events have been added within the code which automatically emits events when certain conditions are met such as node slashing for unauthorized transactions, attempted double-spending, or very large withdraws. Emitted events are sent to a MAYASec Discord monitoring channel for immediate review. These emitted on-chain events can also be seen on Midgard.

Packages Breakdown

How xChainjs is constructed

xchain-[chain] clients

Each blockchain that is integrated into MAYAChain has a corresponding xchain client with a suite of functionality to work with that chain. They all extend the xchain-client class.

xchain-mayachain-amm

MAYAChain automatic market maker that uses MAYANode & Midgard Api's AMM functions like swapping, adding and removing liquidity. It wraps xchain clients and creates a new wallet class and balance collection.

xchain-mayachain-query

Uses midgard and mayanode Api's to query MAYAChain for information. This module should be used as the starting place get any MAYAChain information that resides in MAYANode or Midgard as it does the heaving lifting and configuration.

Default endpoints are provided with redundancy, custom MAYANode or Midgard endpoints can be provided in the constructor.

xchain-midgard

This package is built from OpenAPI-generator. It is used by the mayachain-query.

Thorchain-query contains midgard class that uses xchain-midgard and the following end points:

  • /v2/mayachain/mimir

  • /v2/mayachain/inbound_addresses

  • /v2/mayachain/constants

  • /v2/mayachain/queue

For simplicity, is recommended to use the midgard class within mayachain-query instead of using the midgard package directly.

Midgard Configuration in mayachain-query

Default endpoints defaultMidgardConfig are provided with redundancy within the Midgard class.

Custom Midgard endpoints can be provided in the constructor using the MidgardConfig type.

See for a working example.

xchain-mayanode

This package is built from OpenAPI-generator and is also used by the thorchain-query. The design is similar to the midgard. MAYANode should only be used when time-sensitive data is required else midgard should be used.

MAYANode Configuration in mayachain-query

As with the midgard package, MAYANode can also be given custom end points via theMayanodeConfig type.

xchain-util

A helper packager used by all the other packages. It has the following modules:

  • asset - Utilities for handling assets

  • async - Utitilies for async handling

  • bn - Utitilies for using bignumber.js

  • chain - Utilities for multi-chain

  • string - Utilities for strings

Setup - Azure

Setting up a Kubernetes Cluster with Azure (AKS)

Deploy a Kubernetes cluster in Azure using AKS service.

Requirements

  1. Azure account

  2. az and Azure credentials configured

  3. kubectl

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - ****

Steps

Firstly, clone and enter the . All commands in this section are to be run inside this repo.

Then install the :

Install Terraform:

Azure CLI

The allows you to manage your Azure services.

Use the package manager to install the Azure CLI.

You will be asked for you Personal Access Token with read/write priveleges (retrieve from API Panel from the Azure web console.)

API -> Tokens/Keys -> Create Token.

Make sure you handle your secrets securely!

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). **To install kubectl** , follow , or choose a package manager based on your operating system.

Use the package manager to install kubectl.

wget && jq

You also need wget and jq, follow , or choose a package manager based on your operating system.

Use the package manager to install wget and jq Note: You most likely have these installed already.

Deploy Kubernetes Cluster

Use the commands below to deploy an AKS cluster:

During the deploy, you will be asked to enter information about your cluster:

  • Location -- az account list-locations -o table

  • Name

  • Confirm yes

Deploying a cluster takes ~15 minutes

CONFIGURE

Now that you've provisioned your AKS cluster, you need to configure kubectl. Customize the following command with your cluster name and resource group. It will get the access credentials for your cluster and automatically configure kubectl.

This replaces the existing configuration at ~/.kube/config.

Once done, you can check if your cluster is responding correctly by running the following commands.

You are now ready to deploy a MAYANode.

Swapping Guide

Overview

Cluster Launcher
Deploying
Joining
Leaving
Leaving
Leaving
Leaving
Quickstart Guide
Quickstart Guide
Aggregators
Concepts
Examples
here
Bifrost
Mimir
here
// How mayachain-query constructs midgard
const defaultMidgardConfig: Record<Network, MidgardConfig> = {
  mainnet: {
    apiRetries: 3,
    midgardBaseUrls: [
      'https://midgard.ninerealms.com',
      'https://midgard.thorchain.info',
      'https://midgard.thorswap.net',
    ],
  },
  ...
  export class Midgard {
  private config: MidgardConfig
  readonly network: Network
  private midgardApis: MidgardApi[]

  constructor(network: Network = Network.Mainnet, config?: MidgardConfig) {
    this.network = network
    this.config = config ?? defaultMidgardConfig[this.network]
    axiosRetry(axios, { retries: this.config.apiRetries, retryDelay: axiosRetry.exponentialDelay })
    this.midgardApis = this.config.midgardBaseUrls.map((url) => new MidgardApi(new Configuration({ basePath: url })))
  }
// adding custom endpoints
  const network = Network.Mainnet
  const customMidgardConfig: MidgardConfig = {
    apiRetries: 3,
    midgardBaseUrls: [
      'https://midgard.customURL.com',
    ],
  }  
  const midgard = new Midgard(network, customMidgardConfig)  
}
// How thorchain-query constructs thornode
const defaultThornodeConfig: Record<Network, ThornodeConfig> = {
  mainnet: {
    apiRetries: 3,
    thornodeBaseUrls: [
      `https://thornode.ninerealms.com`,
      `https://thornode.thorswap.net`,
      `https://thornode.thorchain.info`,
    ],
  },
  ...
  export class Thornode {
  private config: ThornodeConfig
  private network: Network
 ...
  constructor(network: Network = Network.Mainnet, config?: ThornodeConfig) {
    this.network = network
    this.config = config ?? defaultThornodeConfig[this.network]
    axiosRetry(axios, { retries: this.config.apiRetries, retryDelay: axiosRetry.exponentialDelay })
    this.transactionsApi = this.config.thornodeBaseUrls.map(
      (url) => new TransactionsApi(new Configuration({ basePath: url })),
    )
    this.queueApi = this.config.thornodeBaseUrls.map((url) => new QueueApi(new Configuration({ basePath: url })))
    this.networkApi = this.config.thornodeBaseUrls.map((url) => new NetworkApi(new Configuration({ basePath: url })))
    this.poolsApi = this.config.thornodeBaseUrls.map((url) => new PoolsApi(new Configuration({ basePath: url })))
    this.liquidityProvidersApi = this.config.thornodeBaseUrls.map(
      (url) => new LiquidityProvidersApi(new Configuration({ basePath: url })),
    )
  }
ListPools
git clone https://gitlab.com/mayachain/devops/cluster-launcher
cd cluster-launcher
brew install azure-cli
az login
brew install kubernetes-cli
brew install wget
brew install jq
make azure
var.location
  The location where the Managed Kubernetes Cluster should be created

  Enter a value: eastus2

var.name
  The base name used for all resources

  Enter a value: ma-k8s
az aks get-credentials -a -g <resource_group> -n <cluster_name>
kubectl version
kubectl get nodes
https://docs.microsoft.com/en-us/windows/wsl/about
cluster-launcher repository
terraform CLI
Azure CLI
homebrew
these instructions
homebrew
these instructions
homebrew
brew install terraform

Add Liquidity

Add Liquidity Through Custom Memos.

This guide should only be used by Advanced Users. It is highly recommended to use Maya UIs to transact. A mistake in any step CAN cause loss of funds.

Memo Format

For Symmetric Adds: ADD:POOL:PAIREDADDR

For Asymmetric Adds: ADD:POOL

For a full list of memo formats and abbreviations check this page.

Procedure

Through a MAYAChain UI (using MsgDeposit, eg. El Dorado)

Symmetric Add (ASSET + CACAO)

  1. Connect/Create your wallet.

  2. Make sure your wallets are funded with ASSET & CACAO and they have to be of equal values.

  3. Transfer an amount of ASSET, by substituting the format with actual values. Example:

    • ADD:BTC.BTC:yourMAYAaddress

      • Example: ADD:BTC.BTC:maya1nxjvgxqxe488jyl8wrmhm9ulsfthgp4rh5u5tw

    or you can abreviate it to:

    • +:BTC.BTC:yourMAYAaddress

  4. In the amount field, type the ASSET amount you wish to add (make sure you have enough amount left for fees).

  5. Press send.

  6. Check your transaction/Maya Address on MayaScan.

  7. Transfer an equivalent amount (in value) of CACAO, by substituting the format with actual values. Example:

    • ADD:BTC.BTC:yourBTCaddress

      • Example: ADD:BTC.BTC:bc1p7tm6t2m6678cke92cw5r9gddpz4td80p45vu7v0v23604p6vd2us5jdtt2

    or you can abreviate it to:

    • +:BTC.BTC:yourBTCaddress

  8. In the amount field, type the CACAO amount you wish to add (make sure you have enough amount left for fees).

  9. Press send.

  10. Check your transaction/Maya Address on MayaScan.

Asymmetric Add

Assymmetric Adds are made for convenience. Instead of swapping half of the Asset amount to CACAO, then adding liquidity, the chain does the swap part Automatically for you. Bear in mind, this will cause some limitations:

  1. In the future, you will only be able to withdraw liquidity Asymmetrically, and the same side as well. So if you deposit BTC asymmetrically, you can only withdraw BTC asymmetrically.

  2. Slippage. The chain will swap half of the Asset for you, which may cause unfavorable slippage fees, during deposit and withdrawal.

  1. Connect/Create your wallet.

  2. Make sure your wallets are funded.

  3. Transfer an amount of ASSET/CACAO, by substituting the format with actual values. Example:

    • ADD:BTC.BTC

    or you can abreviate it to:

    • +:BTC.BTC

You cannot use "+:MAYA.CACAO" memo.

  1. In the amount field, type the amount you wish to add (make sure you have enough amount left for fees).

  2. Press send.

  3. Check your transaction/Maya Address on MayaScan.

Through a Non-CACAO UI (using Normal Send tx + MsgDeposit, eg. Asgardex)

Symmetric Add (ASSET + CACAO)

  1. Connect/Create your wallet.

  2. Transfer an amount of ASSET, by substituting the format with actual values. Example:

    • ADD:BTC.BTC:yourMAYAaddress

      • Example: ADD:BTC.BTC:maya1nxjvgxqxe488jyl8wrmhm9ulsfthgp4rh5u5tw

    or you can abreviate it to:

    • +:BTC.BTC:yourMAYAaddress

  3. In the amount field, type the ASSET amount you wish to add (make sure you have enough amount left for fees).

  4. In the address field paste ASSET Inbound Address on MAYAChain.

Make sure to refresh the page and NEVER use an old inbound address, as it they change every churn.

  1. Press send.

  2. Check your transaction/Maya Address on MayaScan.

The following steps need to be done through a Maya UI that supports MsgDeposit.

  1. Transfer an equivalent amount (in value) of CACAO, by substituting the format with actual values. Example:

    • ADD:BTC.BTC:yourBTCaddress

      • Example: ADD:BTC.BTC:bc1p7tm6t2m6678cke92cw5r9gddpz4td80p45vu7v0v23604p6vd2us5jdtt2

    or you can abreviate it to:

    • +:BTC.BTC:yourBTCaddress

  2. In the amount field, type the CACAO amount you wish to add (make sure you have enough amount left for fees).

  3. Press send.

  4. Check your transaction/Maya Address on MayaScan.

Asymmetric Add

Asymmetric Adds are made for convenience. Instead of swapping half of the Asset amount to CACAO, then adding liquidity, the chain does the swap part Automatically for you. Bear in mind, this will cause some limitations:

  1. In the future, you will only be able to withdraw liquidity Asymmetrically, and the same side as well. So if you deposit BTC asymmetrically, you can only withdraw BTC asymmetrically.

  2. Slippage. The chain will swap half of the Asset for you, which may cause unfavorable slippage fees, during deposit and withdrawal.

  1. Connect/Create your wallet.

  2. Transfer an amount of ASSET/CACAO, by substituting the format with actual values. Example:

    • ADD:BTC.BTC

    or you can abreviate it to:

    • +:BTC.BTC

You cannot use "+:MAYA.CACAO" memo.

  1. In the amount field, type the amount you wish to add (make sure you have enough amount left for fees).

  2. In the address field paste ASSET Inbound Address on MAYAChain.

Make sure to refresh the page and NEVER use an old inbound address, as it they change every churn.

  1. Press send.

  2. Check your transaction/Maya Address on MayaScan.

Querying MAYAChain

How to Query MAYAChain

Getting the Asgard Vault

Vaults are fetched from the /inbound_addresses :

https://mayanode.mayachain.info/mayachain/inbound_addresses

You need to select the address of the Chain the inbound transaction will go to.

The address will be the current active Asgard Address that accepts inbounds. Do not cache these address as they change regularly. Do not delay inbound transactions (e.g. do not use future timeLocks).

Example Output, each connected chain will be displayed.

[
  {
		"address": "bc1qqtemwlu9ju3ts3da5l82qejnzdl3xfs3lcl4wg",
		"chain": "BTC",
		"chain_lp_actions_paused": false,
		"chain_trading_paused": false,
		"gas_rate": "390",
		"gas_rate_units": "satsperbyte",
		"global_trading_paused": false,
		"halted": false,
		"outbound_fee": "390000",
		"outbound_tx_size": "1000",
		"pub_key": "mayapub1addwnpepqvz6vkw4nzcp5sl9ktx63kz7v0n754r99uehfnzv42eauc644yzgvmuun3k"
	},
      ...

Never cache vault addresses, they churn regularly.

Inbound transactions should not be delayed for any reason else there is risk funds will be sent to an unreachable address. Use standard transactions, check the inbound address before sending and use the recommended gas rate to ensure transactions are confirmed in the next block to the latest Inbound_Address.

Check for the halted parameter and never send funds if it is set to true

If a chain has a router on the inbound address endpoint, then everything must be deposited via the router. The router is a contract that the user first approves, and the deposit call transfers the asset into the network and emits an event to THORChain.

This is done because "tokens" on protocols don't support memos on-chain, thus need to be wrapped by a router which can force a memo.

Note: you can transfer the base asset, eg ETH, directly to the address and skip the router, but it is recommended to deposit everything via the router.

{
		"address": "0x87a8d8abd8086173e2f15a90a1938d8077e02ecb",
		"chain": "ETH",
		"chain_lp_actions_paused": false,
		"chain_trading_paused": false,
		"gas_rate": "100",
		"gas_rate_units": "gwei",
		"global_trading_paused": false,
		"halted": false,
		"outbound_fee": "840000",
		"outbound_tx_size": "80000",
		"pub_key": "mayapub1addwnpepqvz6vkw4nzcp5sl9ktx63kz7v0n754r99uehfnzv42eauc644yzgvmuun3k",
		"router": "0xe3985E6b61b814F7Cdb188766562ba71b446B46d"
	},

If you connect to a public Midgard, you must be conscious of the fact that you can be phished and could send money to the WRONG vault. You should do safety checks, i.e. comparing with other nodes, or even inspecting the vault itself for the presence of funds. You should also consider running your own 'fullnode' instance to query for trusted data.

  • Chain: Chain Name

  • Address: Asgard Vault inbound address for that chain.,

  • Halted: Boolean, if the chain is halted. This should be monitored.

  • gas_rate: rate to be used, e.g. in Stats or GWei. See Fees.

Displaying available pairs

Use the /pools endpoint of Midgard to retrieve all swappable assets on MAYAChain. The response will be an array of objects like this:

{
		"annualPercentageRate": "0.1653348126078579",
		"asset": "KUJI.KUJI",
		"assetDepth": "22781179322318",
		"assetPrice": "3.621027920713548",
		"assetPriceUSD": "3.498740619649093",
		"liquidityUnits": "5385277119677037",
		"poolAPY": "0.1653348126078579",
		"runeDepth": "8249128639289561",
		"status": "available",
		"synthSupply": "31040367",
		"synthUnits": "3668841935",
		"units": "5385280788518972",
		"volume24h": "561310885869971"
	}

Only pools with "status": "available" are available to trade

Make sure to manually add Native $CACAO as a swappable asset.

"assetPrice" tells you the asset's price in CACAO (RUNE Depth/AssetDepth ). In the above example

1 KUJI.KUJI = 3.62 RUNE

Decimals and Base Units

All values on MAYAChain (MAYANode and Midgard) are given in 1e8 eg, 100000000 base units (like Bitcoin), and unless postpended by "USD", they are in units of RUNE. Even 1e18 assets, such as ETH.ETH, are shortened to 1e8. 1e6 Assets like ETH.USDC, are padded to 1e8. MAYANode will tell you the decimals for each asset, giving you the opportunity to convert back to native units in your interface.

See code examples using the MAYAChain xchain package here https://github.com/xchainjs/xchainjs-lib/tree/master/packages/xchain-mayachain

Finding Chain Status

There are two ways to see if a Chain is halted.

  1. Looking at the /inbound_addresses endpoint and inspecting the halted flag.

  2. Looking at Mimir and inspecting the HALT[Chain]TRADING setting. See Network Halts for more details.

Quickstart Guide
Fees and Wait Times
Streaming Swaps
synthAmount=r⋅R⋅A(r+R)2\text{synthAmount} = \frac{r \cdot R \cdot A}{(r + R)^2}synthAmount=(r+R)2r⋅R⋅A​
synthSupply+=synthAmount\text{synthSupply} += \text{synthAmount}synthSupply+=synthAmount
UL=S(2A−S)\frac{U}{L} = \frac{S}{(2A-S)}LU​=(2A−S)S​
U=L⋅S(2A−S)U = L \cdot \frac{S}{(2A-S)}U=L⋅(2A−S)S​
cacaoAmount=s⋅A⋅R(s+A)2\text{cacaoAmount} = \frac{s \cdot A \cdot R}{(s + A)^2}cacaoAmount=(s+A)2s⋅A⋅R​
utilisation=SPA⋅10000\text{utilisation} = \frac{S}{PA} \cdot 10000utilisation=PAS​⋅10000
identical equation to L1 swaps
liquidityUnits
Impermanent Loss Protection
Reserve
Mimir
PR
Reserve
git clone https://gitlab.com/mayachain/devops/cluster-launcher
cd cluster-launcher
brew install doctl
doctl auth init --context <NAME>
doctl auth switch --context <NAME>
doctl account get
brew install kubernetes-cli
brew install wget
brew install jq
make do
doctl kubernetes cluster kubeconfig save <use_your_cluster_name>
kubectl version
Notice: Adding cluster credentials to kubeconfig file found in "/home/user/.kube/config"
Notice: Setting current-context to do-<region_name>-<cluster_name>
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-16T06:30:04Z", GoVersion:"go1.14.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
kubectl get nodes

NAME                          STATUS   ROLES    AGE     VERSION
<cluster_name>-pool-5xhc1     READY    <none>   6m      v1.18.6
https://docs.microsoft.com/en-us/windows/wsl/about
cluster-launcher repository
terraform CLI
brew install terraform
Digital Ocean Control tool
homebrew
these instructions
homebrew
these instructions
homebrew
List of Regions
Kubernetes Availability (note, use lower-case in the terminal)

Setup - HCloud

Setting up a Kubernetes Cluster with Hetzner Cloud (hcloud)

Deploy an umnanaged Kubernetes cluster in hcloud

This approach is only recommended for experienced operators because the kubernetes control plane among other things needs to be managed manually.

Requirements

  1. hcloud account

  2. hcloud and hcloud credentials configured

  3. kubectl

  4. ansible

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - ****

Steps

Firstly, clone and enter the . All commands in this section are to be run inside this repo.

Then install the :

Install Terraform:

hcloud CLI

The allows you to manage your hcloud services.

Use the package manager to install the hcloud CLI.

You will be asked for you Personal Access Token with read/write priveleges (retrieve from API Panel from the hcloud web console.)

API -> Tokens/Keys -> Create Token.

Make sure you handle your secrets securely!

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). **To install kubectl** , follow , or choose a package manager based on your operating system.

Use the package manager to install kubectl.

wget && jq

You also need wget and jq, follow , or choose a package manager based on your operating system.

Use the package manager to install wget and jq Note: You most likely have these installed already.

Environment

Initialize the git submodule.

Use direnv, venv or whatever you prefer to manage a python environment inside the hcloud folder.

Install dependencies required by Python and Ansible Galaxy.

Deploy Kubernetes Cluster

Use the commands below to deploy an hcloud cluster:

During the deploy, you will be asked to enter information about your cluster:

  • Name

  • Token

  • Confirm yes

Deploying a cluster takes ~15 minutes

Quotas

If necessary, request a quota increase .

CONFIGURE

Now that you've provisioned your hcloud cluster, you need to configure kubectl. Customize the following command with your cluster name and resource group. It will get the access credentials for your cluster and automatically configure kubectl.

You are now ready to deploy a MAYANode.

Maya Protocol Native Assets

$CACAO, $MAYA, and $AZTEC

Maya Protocol ecosystem utilizes 3 distinct tokens within its framework:

CACAO

$CACAO is our flagship token, and we will have 100M of them. They will all be minted at once, and 90% of the total supply will be distributed in the Liquidity Auction. The remaining 10% will be allocated to the Impermanent Loss Protection treasury.

Aside from being required to run a node, they can be paired against other assets inside our liquidity pools to earn a percentage of the transaction fees generated by swaps.

$CACAO is the asset which powers the Maya Protocol ecosystem (MAYAChain & AZTECChain) and provides the economic incentives required to secure the network. CACAO has three key roles which are described below.

  1. Liquidity (as a settlement asset)

  2. Security (as a sybil-resistant mechanism, and a means for driving economic behaviour)

  3. Incentives (paying out rewards, charging fees, subsidising gas)

1. Liquidity

Transmitting Purchasing Power

Since CACAO is pooled 50:50 alongside external assets in its pools, when the value of those assets increase/decrease, the CACAO pooled will also increase/decrease by being arbed out or in. The CACAO unit value may not change, but the quantity of CACAO in the pool does. This means the system is always aware of the value of the assets it is trying to secure - it's simply the quantity of CACAO in all its pools.

Once it is aware of the value of the assets it is securing, it can use incentives to ensure security of those assets.

A rule of thumb is for every $1m in multi-chain assets pooled in liquidity pools, $1m of CACAO is required to be pooled along side. Due to a mechanism called the Incentive Pendulum, $2m in CACAO will be driven to be bonded. Thus, $1m in main-chain assets will cause the total value of CACAO to be $3m in an equilibrium. Thus liquidity pools have a positive effect on the monetary base of CACAO.

Providing Liquidity Incentives

Since CACAO is the pooled asset, incentives can be paid directly into each pool. This extra capital is owned by the liquidity providers, and over time, slowly "purchases" the paired asset via arbitrage. Thus CACAO liquidity incentives can drive real yield to LPs.

Solving O(n^2) Problem

Without a native settlement currency, each asset would need to be pooled with every other asset, which would eventually result in hundreds of new pools to be created for just one new asset, diluting liquidity. Having CACAO as the base pair allows any asset to be guaranteed to swap between any other asset.

2. Security

Sybil-resistance

Sybil-resistance refers to the ability to prevent someone masquerading as many identities in order to overcome a network. Bitcoin uses Proof-of-Work (one-cpu-one-vote) to prevent a network take-over. Ethereum 2.0 will use Proof-of-Stake (32-eth-one-vote) to prevent a network take-over.

MAYAChain is a Proof of Bond network instead. MAYANodes commit a bond in order to be churned in. However, this bond isn't just used to identify a node (give them a voting slot), it is used to underwrite the assets in the pools. If the node attempts to steal assets, then their bond is deducted to the amount of the assets they stole (1.5x), and the pools are made whole. Additionally, if nodes misbehave their bond is slashed, ensuring reliable service.

Underwriting Assets

The Incentive Pendulum ensures that Nodes are incentivised to continually buy and bond enough Cacao each time to maximise their gains - which is a maximum when there is 67% of CACAO bonded and 33% pooled in pools. If the pools are holding $100m in capital, then the value of CACAO in the aggregate bond is $200m. Thus all assets can be underwritten.

The bond is extremely liquid - any CACAO holder can immediately enter or exit their position since CACAO is the settlement asset in all pools. Thus, when a node churns in, the cost basis of their bond is known to them and not an arbitrary figure. This means a node bonding $1m in CACAO will never contemplate making a decision to steal <$1m in capital from the network, else they will lose overall.

3. Incentives

Fees

CACAO is the native currency of MAYAChain and is consumed as transaction fees on the network. All swaps are charged both a fixed network fee, as well as a dynamic slip-based fee. This prevents various attack paths such as denial-of-service attacks, as well as sandwich attacks on a pool. Learn more about fees here:

Subsidising Gas

The network continually consumes gas as it makes outgoing transactions (as well as internal transactions). Gas on networks such as Bitcoin and Ethereum becomes complicated fast, so MAYAChain doesn't make much of an effort to track every minutia of gas consumed. Instead, nodes are free to use at-will the base assets BNB.BNB, ETH.ETH, BTC.BTC, etc in order to pay for gas. These assets are used directly from the vaults. MAYAChain then observes outgoing transactions, reports on the gas used, and then pays back the liquidity providers in those pools to the value of twice the amount of gas used (in CACAO).

Paying out Emissions

After fees are charged and gas is subsidised, then MAYAChain computes the block reward, divides it based on the Incentive Pendulum algorithm, and then pays out to Bonders and Liquidity providers.

This drives Nodes to bond the optimal amount, and pays Liquidity providers for their contribution of liquidity.

Learn about the Incentive Pendulum here:

Deterministic Value of CACAO

In addition to the roles mentioned above, CACAO’s price has two factors; 1 a deterministic value based on the liquidity within the network and 2; a speculative premium.

The 1:1 pool ratio that persists in Maya means that CACAO will always be worth at least 1x the Asset TVL in Maya Protocol. Thus, if $1,000,000 worth of non-Cacao tokens are staked in Maya Protocol, the market cap of CACAO will be at least $1,000,000 as well. And like any token, stock, or asset in the world of finance, speculation around future value encourages additional upward price pressure.

The 1:1 ratio is just the minimum or the deterministic value of CACAO.

$MAYA

$MAYA tokens can be used to participate in our protocol's total revenues, and there are exactly 1 million of them. They serve as our initial stages' funding mechanism and, by design, keep incentives for our developer team to continue their hard work in the short-term and long term.

$MAYA captures 10% of all the protocol revenue. Those who hold $MAYA tokens will be distributed $CACAO every 24 hours to the wallet that holds the $MAYA token. For every $9 earned by LPs/nodes, $MAYA holders, including founders/devs, earn 1$, incentivizing long-term growth and value accrual.

Tokenomics:

  • 1 Million Token in total.

  • Founders have 15.6% that can't be sold.

  • Maya Protocol Operations Wallet - used to pay the team, marketing, and other expenses- can be found in .

How will $MAYA Airdrop work?

7% to Rune Owners. 7% to Early Nodes. 7% to Tier 1 Liquidity Providers. 1% to Maya Mask NFT Holders (80% built into the Maya Mask, 20% airdropped as tokens)

78% Dev Fund.

Will there be a liquidity pool to trade $MAYA?

There will be no liquidity pool for $MAYA, and it will not be tradable on Maya Protocol. It is meant to represent the protocol revenue and is not easily tradable. Another DEX/CEX could list $MAYA for trading if they desire.

$AZTEC (in development)

$AZTEC tokens are very similar in design to $MAYA tokens as they are also revenue share tokens, that capture 10% of all the AZTECChain revenue. $AZTEC will be launched with the AZTECChain by the end of year.

Quickstart Guide

Make a cross-chain swap on MAYAChain in less than 5 minutes.

Introduction

MAYAChain allows native L1 Swaps. On-chain are used instruct MAYAChain how to swap, with the option to add and . MAYAChain nodes observe the inbound transactions and when the majority have observed the transactions, the transaction is processed by threshold-signature transactions from MAYAChain vaults.

Let's demonstrate decentralized, non-custodial cross-chain swaps. In this example, we will build a transaction that instructs MAYAChain to swap native Bitcoin to native Ethereum in one transaction.

The following examples use a free, hosted API provided by the Maya Protocol team. If you want to run your own full node, please see

1. Determine the correct asset name.

MAYAChain uses a specific Available assets are at: .

BTC => BTC.BTC

ETH => ETH.ETH

Only available pools can be used. (where 'status' == Available)

2. Query for a swap quote.

All amounts are 1e8. Multiply native asset amounts by 100000000 when dealing with amounts in THORChain. 1 BTC = 100,000,000.

Request: Swap 1 BTC to ETH and send the ETH to 0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430.

​​Response:

If you send 1 BTC to bc1qlccxv985m20qvd8g5yp6g9lc0wlc70v6zlalz8 with the memo =:ETH.ETH:0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430, you can expect to receive 18.55545107 ETH.

For security reasons, your inbound transaction will be delayed by 600 seconds (1 BTC Block) and 2685 seconds (or 179 native MAYAChain blocks) for the outbound transaction, 3285 seconds all up. You will pay an outbound gas fee of 0.0085 ETH and will incur 168 basis points (1.68%) of slippage.

Full quote swap endpoint specification can be found here: ​.

See an example implementation LINK HERE

​If you'd prefer to calculate the swap yourself, see the section to understand what fees need to be accounted for in the output amount. Also, review the section to understand how to create the swap memos.

3. Sign and send transactions on the from_asset chain.

Construct, sign and broadcast a transaction on the BTC network with the following parameters:

Amount => 1.0

Recipient => bc1qlccxv985m20qvd8g5yp6g9lc0wlc70v6zlalz8

Memo => =:ETH.ETH:0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430

Never cache inbound addresses! Quotes should only be considered valid for 10 minutes. Sending funds to an old inbound address will result in loss of funds.

Learn more about how to construct inbound transactions for each chain type here: ​

4. Receive tokens.

Once a majority of nodes have observed your inbound BTC transaction, they will sign the Ethereum funds out of the network and send them to the address specified in your transaction. You have just completed a non-custodial, cross-chain swap by simply sending a native L1 transaction.

Additional Considerations

There is a rate limit of 1 request per second per IP address on /quote endpoints. It is advised to put a timeout on frontend components input fields, so that a request for quote only fires at most once per second. If not implemented correctly, you will receive 503 errors.

For best results, request a new quote right before the user submits a transaction. This will tell you whether the expected_amount_out has changed or if the inbound_address has changed. Ensuring that the expected_amount_out is still valid will lead to better user experience and less frequent failed transactions.

Price Limits

Specify tolerance_bps to give users control over the maximum slip they are willing to experience before canceling the trade. If not specified, users will pay an unbounded amount of slip.​​

Notice how a minimum amount (1822007296/ ~18.22 ETH) has been appended to the end of the memo. This tells THORChain to revert the transaction if the transacted amount is more than 500 basis points less than what the expected_amount_out returns.

Affiliate Fees

Specify affiliate_address and affiliate_bps to skim a percentage of the expected_amount_out.​​

Notice how wr:10 has been appended to the end of the memo. This instructs MAYAChain to skim 10 basis points from the swap. The user should still expect to receive the expected_amount_out, meaning the affiliate fee has already been subtracted from this number.

For more information on affiliate fees:

Streaming Swaps

can be used to break up the trade to reduce slip fees.

Specify streaming_interval to define the interval in which streaming swaps are swapped.​​

Notice how approx_streaming_savings shows the savings by using streaming swaps. total_swap_seconds also shows the amount of time the swap will take.

Error Handling

TBA

Support

Developers experiencing issues with these APIs can go to the Maya Protocol Discord server (LINK) for assistance. Interface developers should subscribe to the #interface-alerts channel for information pertinent to the endpoints and functionality discussed here.

Setup - Hetzner Bare Metal

Setting up a Kubernetes Cluster with Hetzner Dedicated Servers

This guide for Hetzner Bare Metal is WIP and not currently recommended. Proceed with caution until an update is released and this warning removed.

Checkout the repository to manage a cluster of dedicated servers on Hetzner.

The scripts in this repository will set up and maintain one or more clusters consisting of dedicated servers. Each cluster will also be provisioned to operate as a node in the network.

Executing the scripts in combination with some manual procedures will get you highly available, secure clusters with the following features on bare metal.

  • (based)

  • Internal NVMe storage (/)

  • Virtual LAN (also over multiple locations) ()

  • Load Balancing ()

Preparations

Servers

Acquire a couple of as the basis for a cluster (AX41-NVME's are working well, for instance). Visit the and name the servers appropriately.

Refer to the to initialize them properly.

vSwitch

Create a and order an appropriate subnet (it may take a while to show up after the order). Give the vSwitch a name (i.e. ma-k8s-net) and assign this vSwitch to the servers.

Check out the for help.

Usage

Clone this repository cd into it and download kubespray.

Create a Python virtual environment or similar.

Install dependencies required by Python and Ansible Glaxy.

Note: does not work with ansible collections and the strategy must be changed (i.e. strategy: linear).

Provisioning

Create a deployment environment inventory file for each cluster you want to manage.

Edit the inventory file with your server ip's and network information and customize everything to your needs.

Check out for more playbooks on cluster management.

MAYAChain

For the cluster to operate as a node in the MAYACHain network, deploy as instructed . You can also refer to the , if necessary, or the MAYAChain as a whole.

Resetting the bare metal servers

This will install and use Ubuntu 20.04 on only one of the two internal NVMe drives. The unused ones will be used for persistent storage with ceph/rook. You can check the internal drive setup with lsblk. Change it accordingly in the command shown above when necessary.

Manually

Visit the and put each server of the cluster into rescue mode. Then execute the following script.

Automatically

Create a pristine state by running the playbooks in sequence.

Instantiation

Instantiate the servers.

git clone https://gitlab.com/mayachain/devops/cluster-launcher
cd cluster-launcher
brew install terraform
brew install hcloud
hcloud context create <project_name>
brew install kubernetes-cli
brew install wget
brew install jq
git submodule update --init
# Optional
(cd hcloud && direnv allow)

# Optional
(cd hcloud && virtualenv -p python3 venv)
(cd hcloud && pip install -r ansible/requirements.txt)
(cd hcloud && ansible-galaxy install -r ansible/requirements.yml)
make hcloud
var.name
  The base name used for all resources

  Enter a value: ma-k8s

var.token
  Hetzner Cloud API token

  Enter a value: <secret>

var.user_name
  The admin user name for the nodes

  Enter a value: admin
(cd hcloud && scp $(terraform output -raw hcloud_config) ~/.kube/config-hcloud)

# Merge it and set current context
KUBECONFIG=~/.kube/config:~/.kube/config-hcloud kubectl config view --flatten > ~/.kube/tmpcfg && mv -f ~/.kube/tmpcfg ~/.kube/config && kubectl config use-context $(kubectl config current-context --kubeconfig=$HOME/.kube/config-hcloud)

kubectl version
https://docs.microsoft.com/en-us/windows/wsl/about
cluster-launcher repository
terraform CLI
hcloud CLI
homebrew
these instructions
homebrew
these instructions
homebrew
here
{
  "expected_amount_out": "1855545107",
  "fees": {
    "affiliate": "0",
    "asset": "ETH.ETH",
    "outbound": "840000"
  },
  "inbound_address": "bc1qqtemwlu9ju3ts3da5l82qejnzdl3xfs3lcl4wg",
  "inbound_confirmation_blocks": 1,
  "inbound_confirmation_seconds": 600,
  "memo": "=:ETH.ETH:0x86d526d6624AbC0178cF7296cD538Ecc080A95F1",
  "outbound_delay_blocks": 179,
  "outbound_delay_seconds": 2685,
  "slippage_bps": 168
}
{
  "expected_amount_out": "1851200268",
  "fees": {
    "affiliate": "1854014",
    "asset": "ETH.ETH",
    "outbound": "960000"
  },
  "inbound_address": "bc1qqtemwlu9ju3ts3da5l82qejnzdl3xfs3lcl4wg",
  "inbound_confirmation_blocks": 1,
  "inbound_confirmation_seconds": 600,
  "memo": "=:ETH.ETH:0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430::wr:10",
  "outbound_delay_blocks": 178,
  "outbound_delay_seconds": 2670,
  "slippage_bps": 168
}
TBA
Memos
price limits
affiliate fees
Connecting to MAYAChain.
asset notation.
​Pools Endpoint
https://mayanode.mayachain.info/mayachain/quote/swap?from_asset=BTC.BTC&to_asset=ETH.ETH&amount=100000000&destination=0x86d526d6624AbC0178cF7296cD538Ecc080A95F1
https://mayanode.mayachain.info/mayachain/doc
Fees
Transaction Memos
Sending Transactions
https://mayanode.mayachain.info/mayachain/quote/swap?amount=100000000&from_asset=BTC.BTC&to_asset=ETH.ETH&destination=0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430&tolerance_bps=500
https://mayanode.mayachain.info/mayachain/quote/swap?amount=100000000&from_asset=BTC.BTC&to_asset=ETH.ETH&destination=0x3021c479f7f8c9f1d5c7d8523ba5e22c0bcb5430&affiliate=wr&affiliate_bps=10
Fees
​Streaming Swaps
ma-k8s-node1
ma-k8s-node2
ma-k8s-node3
...

ma-k8s-master1
ma-k8s-master2
ma-k8s-worker1
ma-k8s-worker2
ma-k8s-worker3
...
git submodule init && git submodule update
# Optional
virtualenv -p python3 venv
pip install -r requirements.python.txt
ansible-galaxy install -r requirements.ansible.yml
cp hosts.example inventory/production.yml
cp hosts.example inventory/test.yml
cp hosts.example inventory/environment.yml
...

cp hosts.example inventory/production-01.yml
cp hosts.example inventory/production-02.yml
...

cp hosts.example inventory/production-helsinki.yml
cp hosts.example inventory/whatever.yml
# Manage a cluster
ansible-playbook cluster.init.yml -i inventory/environment.yml
ansible-playbook --become --become-user=root kubespray/cluster.yml -i inventory/environment.yml
ansible-playbook cluster.finish.yml -i inventory/environment.yml

# Run custom playbooks
ansible-playbook private-cluster.yml -i inventory/environment.yml
ansible-playbook private-test-cluster.yml -i inventory/environment.yml
ansible-playbook private-whatever-cluster.yml -i inventory/environment.yml
installimage -a -r no -i images/Ubuntu-2004-focal-64-minimal.tar.gz -p /:ext4:all -d nvme0n1 -f yes -t yes -n hostname
ansible-playbook server.rescue.yml -i inventory/environment.yml
ansible-playbook server.bootstrap.yml -i inventory/environment.yml
ansible-playbook server.instantiate.yml -i inventory/environment.yml
source
kubernetes
Hetzner
MAYACHain
Kubespray
Ceph
Rook
Calico
MetalLB
servers
admin panel
reset procedure
vSwitch
docs
Mitogen
this
here
node-launcher repository
documentation
console

Joining

How to join MAYAChain as an Node.

Joining MAYAChain

Now that you have a MAYANode deployed in your Kubernetes cluster, you need to start operating your node to join the network.

There are a couple of steps to follow to do so.

The first wallet to bond their liquidity to a node will be the operator address (i.e. the address that controls the node).

1. Add Liquidity with Node Operator wallet

MAYAChain nodes are backed up by added liquidity, just as a normal liquidity provider to one of the supported bonding pools: ARB, BTC, DASH, ETH, KUJI or THOR at the moment.

2. Bond for the first time using the Node Operator wallet

For now, the only ways to send custom deposit memos are using custom memo deposit on El Dorado or with your node-launcher setup:

The amount specified in the bond transaction will be sent to your node, which will then be used to set your ip address, version and node keys.

$ make shell # Select mayanode
=> Select MAYANode service
   mayanode
   bifrost
   midgard
   gateway
   thornode-daemon
   binance-daemon
   dogecoin-daemon
   gaia-daemon
   avalanche-daemon
   dash-daemon
   ethereum-daemon
   bitcoin-daemon
   litecoin-daemon
   bitcoin-cash-daemon
   midgard-timescaledb

Defaulted container "mayanode" out of: mayanode, init-external-ip (init)
/ # mayanode keys add [name for you key] --recover --keyring-backend file
> Enter your bip39 mnemonic
[paste your mnemonic]
Enter keyring passphrase:[Enter you password used for `node-launcher`]
/ # mayanode tx mayachain deposit 2000000 cacao bond:[pool]:[amount of LP units to bond]:[maya address] --from [name of your key] --keyring-backend file --yes --chain-id mayachain-mainnet-v1 --gas auto --node tcp://localhost:27147

3. Check your current node status

Next, verify your node is running correctly. _**_To check the current status of your node, you can run the command status from the node-launcher repository on your terminal:

make status

You will get an output along those lines, the example below is for a mainnet node:

   __  ________  _____   _  __        __
  /  |/  /   \ \/ /   | / |/ /__  ___/ /__
 / /|_/ / /| |\  / /| |/    / __\/ __ / -_)
/_/  /_/_/ |_|/_/_/ |_/_/|_/\___/\_,_/\__/

ADDRESS     maya1v7gqc98d7d2sugsw5p4pshv0mm24mfmzgmj64n
IP
VERSION
STATUS      Active
BOND        100
REWARDS     0.00
SLASH       0
PREFLIGHT   {
  "status": "Standby",
  "reason": "node account has invalid registered IP address",
  "code": 1
}

API         http://18.217.85.10:1317/mayachain/doc/
RPC         http://18.217.85.10:27147
MIDGARD     http://18.217.85.10:8080/v2/doc

CHAIN      SYNC       BEHIND         TIP
MAYA       100.000%   0              2,086,031
THOR       100.000%   0              11,866,225
ETH        100.000%   0              17,773,085
ETH (beacon slot)  100.000%   0              6,958,344
BTC        100.000%   0              800,261
DASH       100.000%   0              1,910,014

Your node is running but as you can see in the `Preflight` section, your node is not yet ready to be churned in and currently is in standby status, since your node has no IP address setup yet.

But to be able to set up the node IP address, you first need to get it registered in the chain by sending your BOND.

Before sending the BOND, verify that your MAYANode is fully synced with connected chains. Connected chains such as Ethereum & Bitcoin may take a day to sync. If your node is fully bonded and is selected to churn into MAYAChain as ACTIVE without fully syncing all connected chains, you will immediately get slashed for missing observations and lose money. It is normal to see Ethereum sit on 99.999% for many hours - be patient.

4. Setup Node IP Address

If you get an error of not having enough balance. Send some cacao to your node

You must tell MAYAChain your IP-Address for its address book and seed-service to run properly:

make set-ip-address

If you run the status command again, you should now see a different message for the Preflight section saying you need to set your node keys.

Once your IP address has been registered for discovery, you can use your own host for queries.

5. Setup Node keys

If you get an error of not having enough balance. Send some cacao to your node

Tell MAYAChain about your public keys for signing sessions:

make set-node-keys

If you run the make status command again, you should now see that your node is in status “ready” and is now ready to be churned in the next rotation.

6. Set Version

If you get an error of not having enough balance. Send some cacao to your node

Make sure your node broadcasts its latest version, else you won't churn in since MAYAChain enforces a version requirement. This version will appear in your make status. If you are on 0.0.0 then you haven't set your version:

make set-version

Bonding The Right Amount

Although your node is ready to be churned in, it doesn’t mean it will be the next one to be selected, since someone else could have posted a higher bond than you. To maximize chances of a quick entry, monitor Midgard to see what everyone else is bonding and try to outbid them. Keep an eye on maximumStandbyBond and make sure you are bonding higher than that amount.

curl http://midgard.mayanode.mayachain.info/v2/network

resp:
 "bondMetrics" : {
      "minimumActiveBond" : "10001000000000",
      "medianStandbyBond" : "1010000000000",
      "medianActiveBond" : "15001000000000",
      "averageStandbyBond" : "1010000000000",
      "maximumActiveBond" : "15001000000000",
      "averageActiveBond" : "12006800000000",
      "maximumStandbyBond" : "1010000000000",
      "totalStandbyBond" : "1010000000000",
      "totalActiveBond" : "60034000000000",
      "minimumStandbyBond" : "1010000000000"
   }

The endpoint will show data on average, median, total, minimum and maximum bond amounts. For fastest entry, bond higher than the current maximum.

CACAO is always displayed in 1e8 format, 100000000 = 1 CACAO

Bonding More

At any time during standby or active, you can bond more by adding more liquidity to any LP position of the whitelisted bond providers (including the bond_address)

No. of Assets

(eg. BTC, ETH)

No. of Pools

(Arbitrary Pairs)

No. of Pools

(CACAO Pairs)

n

pools = (n*(n-1))/2

pools = n

12

66

12

24

276

24

100

4950

100

this link
MAYA vs CACAO
Fees
Incentive Curve

User interfaces & Wallets

List of all Wallets and UIs integrations with Maya Protocol.

Maya Protocol is a backend infrastructure. Therefore, you will need a user interface to interact with and use Maya Protocol. Different user interfaces are available. Here’s the complete list.

User Interfaces

Thorwallet DEX

Type: Decentralized Exchange

Accessibility: Web App and Mobile

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya and THORChain-supported L1

Supported wallets Webapp: Ledger, XDEFI, Metamask, Keystore

Go to

El Dorito Swap

Type: Decentralized Exchange

Accessibility: Web App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1, Polkadot

Supported wallets: Ctrl Wallet, Keystore

Go to

CacaoSwap

Type: Decentralized Exchange

Accessibility: Web App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1

Supported wallets: Keystore, MetaMask, Ctrl Wallet, Keplr, Leap

Go to

Asgardex

Type: Decentralized Exchange and Wallet

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Streaming Swaps

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1, and THORChain

Supported wallets: Keystore, Ledger

Go to

ThorSwap

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Streaming Swaps

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1

Supported wallets: Ctrl Wallet, Metamask, KeepKey, Ledger, Brave Wallet, Trustwallet, and Trezor.

Go to

InstaSwap

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1

Supported wallets: Ctrl Wallet, Metamask, Trust Wallet, Phantom Wallet, Trezor Wallet, Ledger, OKX Wallet, Wallet Connect, Keplr Wallet, Brave Wallet, Radix Wallet, KeepKey.

Go to

Astrolescent

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1

Supported wallets: Radix Wallet

Go to

FortunaDEX

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

Blockchain support: All Maya-supported L1

Supported wallets: Ctrl Wallet, Metamask.

LeoDEX

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

Blockchain support: All Maya-supported L1

Supported wallets: Ctrl Wallet, Metamask.

Go to

Pulsar Finance

Type: Portfolio tracker and analytics tool

Accessibility: Desktop App Features:

  • Portfolio Tracking for Maya Assets: Users can seamlessly monitor their $CACAO holdings and other assets across chains supported by Maya Protocol.

  • Cross-Chain Insights: Pulsar provides detailed analytics for swaps and liquidity pools within Maya Protocol, offering valuable insights for both traders and liquidity providers.

  • Real-Time Data: Access up-to-date stats and performance metrics from Maya Protocol to stay ahead of the market.

  • Enhanced User Experience: By integrating with Maya Protocol, Pulsar makes it easier for users to track and manage their cross-chain activities in one place.

Go to

DefiSpot

Type: Decentralized Exchange

Accessibility: Desktop App

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps powered by Maya

  • Manage your liquidity and saver's position on Maya

Blockchain support: All Maya-supported L1

Supported wallets: Ctrl Wallet, Metamask, Keplr, Phantom, Walletconnect, Leap Wallet, Argeentx, Braavos, Trustwallet, and Rabby.

Go to


Wallets

Ctrl Wallet

Ctrl Wallet is a multi-ecosystem self-custody wallet with support for 30+ native blockchains, and all EVM and Cosmos chains, including Bitcoin, Ethereum, Solana, THORChain, Maya Protocol, TRON, and more.

Type: Multichain non-custodial wallet

Available on: Web extension

Features:

  • Send and receive CACAO and MAYA

Blockchain support: Bitcoin, Solana, all EVM, all Cosmos, THORChain, MAYA, TRON, DOGE, Litecoin, NEAR, Binance Smart Chain

Hardware wallet integration: Ledger, Trezor.

Go to

Caviar Nine

CaviarNine is a platform that provide web3 users with advanced and user-friendly DeFi trading products built on the Radix platform. Type: Multichain non-custodial wallet

Available on: WebAPP

Blockchain support: Radix Tokens.

Go to

Moca

Moca is a cryptocurrency wallet for easily managing your balances and tokens across all platforms – no prior experience required.

Type: Multichain non-custodial wallet

Available on: WebAPP

Features:

  • Send and receive CACAO and MAYA

Blockchain support: BTC, ETH, LTC, DASH, MATIC, ADA, AVAX, SOL, ATOM, DOGE, BNB.

Go to

Vultisig

Vultisig is the first institutional-grade, privacy-focused, multi-chain wallet on the market, built on THORChain’s vault technology. Designed for both individuals and organizations, it offers unparalleled security, privacy, and functionality for managing digital assets seamlessly across multiple blockchains.

Available on:

  • Web

  • iOS

  • Android

Features:

  • Send and receive CACAO and MAYA

Blockchain support:

  • Arbitrum, Avalanche, BSC, Base, Bitcoin, Bitcoin-Cash, Blast, Cosmos, CronosChain, Dash, Dogecoin, dydx, Ethereum, Kujira, Litecoin, Maya Protocol, Optimisim, Polkadot, Polygon, Solana, Sui, THORChain, Ton, Zksync

Go to

WinBit32

A retro-inspired, no-frills crypto wallet designed for enthusiasts who value simplicity and control. With its Windows 3.11 aesthetic and focus on direct phrase-based authentication, it keeps things intuitive while offering powerful tools for managing cross-chain wallets, swapping assets, and enhancing security.

Type: Multichain non-custodial wallet

Available on: Web extension

Features:

  • Send and receive CACAO and MAYA

Go to

Edge

Edge is a powerful and easy to use cryptocurrency wallet that allows users to easily control their own private keys with the familiarity and ease of mobile banking.

Type: Multichain non-custodial wallet

Available on: Web extension

Features:

  • Send and receive CACAO and MAYA

Blockchain support: Bitcoin, Ethereum, Litecoin, EOS, Stellar, XRP, Dash, Monero.

Go to


Hardware wallet

KeepKey

KeepKey is a hardware wallet for securely storing digital assets.

Type: Hardware Wallet

Features:

  • Send and receive CACAO and MAYA

  • Cross-chain native swaps: Yes (In firmware, no dApps yet)

  • Manage liquidity and saver's position: Yes (in firmware, no dApps yet)

Blockchain support: All Maya L1's, THORChain’s L1, and several EVMs and Cosmos chains.

Go to

Constants and Mimir

Constants and Mimir Settings Defined.

Overview

The network launched with a set number of constants, which has not changed. Constants can be overridden via Mimir and nodes have the ability to and change Mimir values.

Mimir setting can be created and changed without a corresponding Constant.

Values

  • Constant Values:

  • Mimir Values:

Key:

  • No Star or Hash - Constant only, no Mimir override.

  • Star (*) indicates a Mimir override of a Constant

  • Hash (#) indicates Mimir with no Constant.

Outbound Transactions

OutboundTransactionFee: Amount of cacao to withhold on all outbound transactions (1e8 notation)

Scheduled Outbound

MaxTxOutOffset: Max number of blocks a scheduled outbound transaction can be delayed

MinTxOutVolumeThreshold: Quantity of outbound value (in 1e8 cacao) in a block before its considered "full" and additional value is pushed into the next block

TxOutDelayMax: Maximum number of blocks a scheduled transaction can be delayed

TxOutDelayRate: Rate of which scheduled transactions are delayed

Swapping

HaltTrading: Pause all trading

Halt<chain>Trading: Pause trading on a specific chain

MaxSwapsPerBlock: Artificial limit on the number of swaps that a single block with process

MinSwapsPerBlock: Process all swaps if the queue is equal to or smaller than this number

Synths

MaxSynthPerAssetDepth: The amount of synths allowed per pool relative to the pool depth

BurnSynths#: Enable/Disable burning synths

MintSynths*: Enable/Disable minting synths

VirtualMultSynths: The amount of increase the pool depths for calculating swap fees of synths

LP Management

PauseLP*: Pauses the ability for LPs to add/remove liquidity

PauseLP<chain>*: Pauses the ability for LPs to add/remove liquidity, per chain

MaximumLiquidityCacao*: Max cacao capped on the pools known as the ‘soft cap’

LiquidityLockUpBlocks: The number of blocks LP can withdraw after their liquidity

Impermanent Loss Protection

FullImpLossProtectionBlocks*: Number of blocks before an LP gets full imp loss protection

ILP-DISABLED-<asset>*: Enable/Disable imp loss protection per asset

Chain Management

HaltChainGlobal*: Pause observations on all chains (chain clients)

HaltTrading: Stops swaps and additions, if done, will result in refunds. Observations still occur.

Halt<chain>Chain*: Pause a specific blockchain

Halt<chain>Chain*: Pause a specific blockchain

NodePauseChainGlobal: Individual node controlled means to pause all chains

NodePauseChainBlocks: Number of block a node operator can pause/resume the chains for

BlocksPerYear: Blocks in a year

MaxUTXOsToSpend*: Max UTXOs to be spent in one block

MinimumNodesForBFT: Minimum node count to keep the network running. Below this, Ragnarök is performed.

Fee Management

NativeTransactionFee: Cacao fee on all on chain txs

TNSRegisterFee: Registration fee for new MAYAName, in cacao

TNSFeeOnSale: fee for TNS sale in basis points

TNSFeePerBlock: per block cost for TNS, in cacao

Solvency Checker

StopSolvencyCheck#: Enable/Disable Solvency Checker

StopSolvencyCheck<chain>#: Enable/Disable Solvency Checker, per chain

PermittedSolvencyGap: The amount of funds permitted to be "insolvent". This gives the network a little bit of "wiggle room" for margin of error

Node Management

MaximumBondInCacao: Sets an upper cap on how much a node can bond

MinimumBondInCacao*: Sets a lower bound on bond for a node to be considered to be churned in

ValidatorMaxRewardRatio*: the ratio to MinimumBondInCacao at which validators stop receiving rewards proportional to their bond

Yggdrasil Management

YggFundLimit: Funding limit for yggdrasil vaults (percentage)

YggFundRetry*: Number of blocks to wait before attempting to fund a yggdrasil again

StopFundYggdrasil#: Enable/Disable yggdrasil funding

ObservationDelayFlexibility*: Number of blocks of flexibility for a validator to get their slash points taken off for making an observation

PoolDepthForYggFundingMin*: the minimum pool depth in CACAO required for ygg funding

MinimumNodesForYggdrasil: No yggdrasil pools if MAYANode have less than 6 active nodes

Slashing Management

LackOfObservationPenalty: Add two slash points for each block where a node does not observe

SigningTransactionPeriod: How many blocks before a request to sign a tx by yggdrasil pool, is counted as delinquent.

DoubleSignMaxAge: Number of blocks to limit double signing a block

FailKeygenSlashPoints: Slash for 720 blocks, which equals 1 hour

FailKeysignSlashPoints: Slash for 2 blocks

ObserveSlashPoints: the number of slashpoints for making an observation (redeems later if observation reaches consensus

ObservationDelayFlexibility: number of blocks of flexibility for a validator to get their slash points taken off for making an observation

JailTimeKeygen: blocks a node account is jailed for failing to keygen. DO NOT drop below TSS timeout

JailTimeKeysign: blocks a node account is jailed for failing to keysign. DO NOT drop below TSS timeout

Churning

AsgardSize: Defines the number of members to an Asgard vault

MinSlashPointsForBadValidator: Min quantity of slash points needed to be considered "bad" and be marked for churn out

BondLockupPeriod: Lockout period that a node must wait before being allowed to unbond

ChurnInterval*: Number of blocks between each churn

HaltChurning: Pause churning

DesiredValidatorSet: Max number of validators

FundMigrationInterval*: Number of blocks between attempts to migrate funds between asgard vaults during a migration

NumberOfNewNodesPerChurn#: Number of targeted additional nodes added to the validator set each churn

BadValidatorRedline*: Redline multiplier to find a multitude of bad actors

BadValidatorRate: Rate to mark a validator to be rotated out for bad behavior

OldValidatorRate: Rate to mark a validator to be rotated out for age

LowBondValidatorRate: Rate to mark a validator to be rotated out for low bond

Economics

EmissionCurve*: How quickly cacao is emitted from the reserve in block rewards

IncentiveCurve*: The split between nodes and LPs while the balance is optimal

MaxAvailablePools: Maximum number of pools allowed on the network. Gas pools (native pools) are excluded from this.

MinCacaoPoolDepth*: Minimum number of cacao to be considered to become active

PoolCycle*: Number of blocks the network will churn the pools (add/remove new available pools)

StagedPoolCost: Number of cacao (1e8 notation) that a stage pool is deducted on each pool cycle.

More documentation can be found .

Thorwallet DEX
El Dorito Swap
Cacao Swap
Asgardex
ThorSwap
InstaSWap
Astrolescent
LeoDEX
Pulsar Finance
Defispot
Ctrl Wallet
Caviar Nine
Moca
Vultisig
WinBit32
Edge
https://keepkey.com/
vote on
https://midgard.mayachain.info/v2/mayachain/constants
https://midgard.mayachain.info/v2/mayachain/mimir
here

Add MAYAChain to your Wallet

TBA

Ambassador Program

We are thrilled to announce the launch of our Maya Ambassador Program! As part of our ongoing mission to empower and educate our community, we are introducing this exciting initiative aimed at promoting Maya and all of its benefits. Applications will be open for a limited time, so don't miss your chance to be part of the program!

What is the Maya Ambassador Program?

The Maya Ambassador Program is a collaboration between Maya Protocol, talented content creators, and key opinion leaders (KOLs) who are passionate about the DeFi ecosystem. Our goal is to expand our reach, create informative content, and engage with a wider audience. In return, we are offering unique rewards and opportunities for our ambassadors, making it a mutually beneficial partnership.

By producing informative content about Maya Protocol, ambassadors can earn up from $500 to $700 in MAYA tokens per month.

Who is eligible?

Eligibility for this opportunity is open to creators who fulfill the following criteria:

  1. Proven Crypto or Web3 Content Creators: You have established yourself as a credible creator in the realm of cryptocurrency or Web3, and you possess a substantial following on any of the popular social media platforms such as YouTube, TikTok, Twitter, and others.

  2. Passion for DeFi: You demonstrate a genuine enthusiasm for Decentralized Finance (DeFi) and actively engage with its concepts and developments.

  3. Alignment with Maya DNA: You possess a shared sense of identity and values with the Maya community.

How does it work?

  1. Apply to the program (instructions below).

  2. Get selected based on your enthusiasm, engagement, and influence within the community.

  3. Create content that informs our community about the technical or social aspects of the project, ensuring it is well-presented, up-to-date, and of high quality.

  4. Submit content for review.

  5. Receive your MAYA tokens at the end of every month!

Our team will carefully review the applications and select the most promising candidates based on their enthusiasm, engagement, and influence within the community. The chosen Maya Ambassadors will then create well-presented, informative content in various formats, such as video and text, to introduce Maya Protocol to new audiences.

You can earn up from $500 to $700 monthly in Maya tokens.

Eligibility for this opportunity is open to creators who fulfill the following criteria:

  • Proven Crypto or Web3 Content Creators.

  • You have established yourself as a credible content creator in cryptocurrency or Web3.

  • Possess a substantial following on popular social media platforms such as YouTube, TikTok, Twitter, or others, with reasonable engagement.

  • Minimum Audience in at least one of the following:

    • Twitter: 3k followers

    • YouTube: 6k subscribers

    • TikTok: 15k likes

    • Medium, Discord, and Telegram - no minimum range - we will review quality individually.

Provided numbers are for reference only. Meeting these numbers is not the sole factor in determining eligibility. The overall quality of your content, audience engagement, and credibility within the crypto and Web3 communities are also likely to be considered.

How to apply?

If you're interested in joining the Maya Ambassador Program, please fill this form and we will get back to you ASAP.

Don't miss this incredible opportunity to be part of our growing community and help spread the word about Maya Protocol. Apply now, and good luck!

Liquidity Providers

Providing liquidity to MAYAChain liquidity pools.

Liquidity providers provide assets to the MAYAChain liquidity pools. They are compensated with swap fees and system rewards. Compensation is affected by a number of factors related to the pool and the state of the network.

Liquidity providers commit capital to pools which have exposure to underlying assets, thus liquidity providers gain exposure to those assets, which have free-floating market prices.

While they are paid block rewards and liquidity fees, these are dynamic and may not be enough to cover "Impermanent Losses", which occur when price changes happen.

Liquidity providers should not consider they are entitled to receive a specific quantity of their assets back when they deposit, rather that they will receive their fair share of the pool's earnings and final asset balances.

Compensation

Liquidity providers deposit their assets in liquidity pools and earn yield in return. They earn tokens in Cacao and the pool's connected asset. For example, someone who has deposited in the BTC/CACAO pool will receive rewards in BTC and CACAO.

Yield is calculated for liquidity providers every block. Yield is paid out to liquidity providers when they remove assets from the pool.

Rewards are calculated according to whether or not the block contains any swap transactions. If the block contains swap transactions then the amount of fees collected per pool sets the amount of rewards. If the block doesn't contain trades then the amount of assets in the pool determines the rewards.

How a block with fees splits the reward. In this example, 1000 CACAO is being divided as rewards:

How a block with no fees splits the rewards. In this example, 1000 CACAO is being divided:

This ensures that yield is being sent to where demand is being experienced - with fees being the proxy. Since fees are proportional to slip, it means the increase in rewards ensure that pools experiencing a lot of slip are being incentivised and will attract more liquidity.

Factors Affecting Yield

Ownership % of Pool – Liquidity providers who own more of a pool receive more of that pool's rewards.

Swap Volume – Higher swap volumes lead to higher fees. Higher fees lead to higher rewards for liquidity providers.

Size of Swaps – Swappers who are in a hurry to exchange assets will tend to make larger swaps. Larger swaps lead to greater price slips and therefore higher fees.

Incentive Pendulum – The Incentive Pendulum balances the amount of capital bonded in the network versus pooled. It does this by changing the amount of rewards given to node operators versus liquidity providers. Sometimes rewards will be higher for liquidity providers to encourage them to deposit assets; sometimes the opposite. .

Change in Asset Prices -- If the price of the assets change, then liquidity providers will receive more of one and less of the other. This may change yield if yield is being priced in a third asset, ie, USD.

How it Works

Depositing Assets

Depositing assets on MAYAChain is permissionless and non-custodial.

Liquidity providers can propose new asset pools or add liquidity to existing pools. Anybody can propose a new asset by depositing it. See for details. Once a new asset pool is listed, anybody can add liquidity to it. In this sense, MAYAChain is permissionless.

The ability to use and withdraw assets is completely non-custodial. Only the original depositor has the ability to withdraw them. Nodes are bound by rules of the network and cannot take control of user-deposited assets.

Process

Liquidity can be added to existing pools to increase depth and attract swappers. The deeper the liquidity, the lower the fee. However, deep pools generally have higher swap volume which generates more fee revenue.

Liquidity providers are incentivised to deposit symmetrically but should deposit asymmetrically if the pool is already imbalanced.‌

Symmetrical vs Asymmetrical Deposits

Symmetrical deposits is where users deposit an equal value of 2 assets to a pool. For example, a user deposits $1000 of BTC and $1000 of CACAO to the BTC/CACAO pool.

Asymmetrical deposits is where users deposit unequal values of 2 assets to a pool. For example, a user deposits $2000 of BTC and $0 of CACAO to the BTC/CACAO pool. Under the hood, the member is given an ownership of the pool that takes into account the slip created in the price. The liquidity provider will end up with <$1000 in BTC and <$1000 in CACAO. The deeper the pool, the closer to a total of $2000 the member will own.

Note: there is no difference between swapping into symmetrical shares, then depositing that, or depositing asymmetrically and being arb'd to be symmetrical. You will still experience the same net slip.

Rules for Adding and Removing Liquidity

Entering and Leaving a Pool

To deposit assets/ liquidity on MAYAChain, you need:

  1. A compatible wallet with your assets.

  2. Connect to one of Maya Protocol's User Interfaces (El Dorado or ThorWallet).

Currently you can add liquidity using ThorWallet UI. Or, through El Dorado using Memos.

  1. Add liquidity to any of the active or pending pools. There is no minimum deposit amount, however, your deposit will have to cover the deposit and later a withdrawal fee costs.

The ability to manage and withdraw assets is completely non-custodial and does not require any KYC or permission process. Only the original depositor has the ability to withdraw them (based on the address used to deposit the assets).

Every time you add liquidity, Impermanent Loss Protection time resets.

While Symmetrical additions are recommended, Asymmetrical additions are supported, below are the rules:

If you add symmetrically (%50 Asset - %50 CACAO) first;

  • You will be able to add liquidity asymmetrically with CACAO later

  • You will be able to add liquidity asymmetrically with ASSET later but it would create a new LP position

  • You will be able to add liquidity symmetrically later

If you add asymmetrically (%100 ASSET) first;

  • You will be able to add liquidity asymmetrically with CACAO later but it would create a new LP position

  • You will be able to add liquidity asymmetrically with ASSET later

  • You will be able to add liquidity symmetrically later but it would create a new LP position

If you add asymmetrically (%100 CACAO) first:

  • You will be able to add liquidity asymmetrically with CACAO later

  • You will be able to add liquidity asymmetrically with ASSET later but it would create a new LP position

  • You will not be able to add liquidity symmetrically later

Withdrawing Liquidity

Liquidity providers can withdraw their assets anytime; with the only waiting period being the confirmation time. The network processes the request and the provider receives their % of the pool and earned assets. apply upon withdrawal, are placed into the network reserve.

There are 3 factors affecting returns/ yield:

  • Transaction volume & pool depth: if the volume of the pool is high in comparison to its depth, then liquidity providers will be presented with higher rewards. Conversely, if the volume of the pool is low in comparison to its depth, then liquidity providers will be presented with lower rewards.

  • Share of the pool: the higher the individual's share of a pool, the higher the returns they're granted. For instance, if a liquidity provider holds a %1 stake in a pool, they will receive %1 of the rewards for that pool.

  • Fee size: the fees associated with a given blockchain are determined by the blockchain itself, and the rewards received by liquidity providers are directly proportional to the fees charged. As such, a blockchain with higher fees will result in higher rewards for liquidity providers.

Supplying liquidity into the protocol presents an opportunity for holders of non-yield generating assets (e.g. BTC ) to obtain a return on their investments.

Yield Comes from Fees & Rewards

Liquidity providers earn a yield on the assets they deposit. This yield is made up of fees and rewards.

Fees are paid by swappers and traders. Most swaps cause the ratio of assets in the liquidity pool to diverge from the market rate.

The ratio of assets in a liquidity pool is comparable to an exchange rate.

This change to the ratio of assets is called a 'slip'. A proportion of each slip is kept in the pool. This is allocated to liquidity providers and forms part of their staking yield. Learn more about .

Rewards come from MAYAChain's own . Reward emissions follow a predetermined schedule of release.

Rewards also come from a large token reserve. This token reserve is continuously filled up from. Part of the token reserve is paid out to liquidity providers over the long-term. This provides continuous income even during times of low exchange volume.

Learn about how

See here for an of the staking process.

Strategies

Passive liquidity providers should seek out pools with deep liquidity to minimise risk and maximise returns.

Active liquidity providers can maximise returns by seeking out pools with shallow liquidity but high demand. This demand will cause greater slips and higher fees for liquidity providers.

Requirements, Costs

Liquidity providers must have assets to deposit and their assets must be native to a supported chain. There is no minimum amount to deposit in existing pools. However new assets must win a competition to be listed – larger value deposits will be listed over smaller value deposits.

Liquidity providers must pay for security of their assets, since security is not free. This "payment" is the requirement for liquidity providers to hold CACAO, which acts as a redeemable insurance policy whilst they are in the pool. Holding CACAO allows liquidity providers to retain an ability to economically leverage nodes to ensure security of assets. When the liquidity provider withdraws, they can sell their CACAO back to the asset they desire. H

The only direct cost to liquidity providers is the , charged for withdrawing assets (pays for the compute resources and gas costs in order to process outbound transactions). An indirect cost to liquidity providers comes in the form of impermanent loss. Impermanent loss is common to Constant Function Market Makers like MAYAChain. It leads to potential loss of liquidity provider purchasing power as a result of price slippage in pools. However, this is minimised by MAYAChain's .

Liquidity providers are not subject to any direct penalties for misconduct.

How Yield is Calculated

The yield of a pool on MAYAChain is calculated using a metric called Liquidity Unit Value Index (LUVI) which can be viewed on .

When a user deposits assets into a liquidity pool, they are given ownership of Liquidity Units which represent a percentage of ownership of the pool. LUVI is a measure of the relative value of each liquidity unit and is independent of price.

Where:

Learn more about and

The yield of a pool uses LUVI value data from the previous 30 days and extrapolates an APR if that performance is repeated over the course of a year. A period parameter may be used to change the number of days of data that are taken into consideration.

Example: calculates the APR of a pool with the previous 100 days of data rather than the default of 30 days.

Factors that affect LUVI:

  • Swap fees, block rewards, and pool donations increase LUVI and are the primary yield sources

  • An increase of the synthetic asset liability of a pool decreases LUVI

  • An increase in ASSET Depth or CACAO Depth of a pool increase LUVI

  • Changes in the ratio of ASSET Depth and CACAO Depth in a pool change LUVI

  • Changes in ASSET Price or CACAO Price do not necessarily change LUVI

Liquidity

How MAYAChain facilitates continuous, incentivised liquidity.

Instead of limit-order books, MAYAChain uses continuous liquidity pools (CLP). The CLP is arguably one of the most important features of MAYAChain, with the following benefits:

  • Provides “always-on” liquidity to all assets in its system.

  • Allows users to trade assets at transparent, fair prices, without relying on centralised third-parties.

  • Functions as source of trustless on-chain price feeds for internal and external use.

  • Democratises arbitrage opportunities.

  • Allows pools prices to converge to true market prices, since the fee asymptotes to zero.

  • Collects fee revenue for liquidity providers in a fair way.

  • Responds to fluctuating demands of liquidity.

CLP Derivation

Element
Description
Element
Description

Start with the fixed-product formula:

Derive the raw "XYK" output:

Establish the basis of Value (the spot purchasing power of x in terms of Y ) and slip, the difference between the spot and the final realised y:

Derive the slip-based fee:

Deduct it from the output, to give the final CLP algorithm:

Comparing the two equations (Equation 2 & 6), it can be seen that the Base XYK is simply being multiplied by the inverse of Slip (ie, if slip is 1%, then the output is being multiplied by 99%).

Evolution of the CLP Model

Pegged Model

The simplest method to exchange assets is the pegged model, (1:1) where one asset is exchanged one for another. If there is a liquidity pool, then it can go insolvent, and there is no ability to dynamically price the assets, and no ability to intrinsically charge fees:

Fixed Price Model

The fixed-sum model allows pricing to be built-in, but the pool can go insolvent (run out of money). The amount of assets exchanged is simply the spot price at any given time:

Fixed Product Model

The fixed-product model (Base XYK above), instead bonds the tokens together which prevents the pool ever going insolvent, as well as allowing dynamic pricing. However, there is no intrinsic fee collection:

Fixed-Rate Fee Model

The Fixed-Rate Fee Model adds a 30 Basis Point (0.003) (or less) fee to the model. This allows fee retention, but the fee is not liquidity-sensitive:

Slip-based Fee Model (CLP)

The Slip-based Fee Model adds liquidity-sensitive fee to the model. This ensures the fee paid is commensurate to the demand of the pool's liquidity, and is the one MAYAChain uses. The fee equation is shown separate (12b), but it is actually embedded in 12a, so is not computed separately.

The slip-based fee model breaks path-independence and incentivises traders to break up their trade in small amounts. For protocols that can't order trades (such as anything built on Ethereum), this causes issues because traders will compete with each other in Ethereum Block Space and pay fees to miners, instead of paying fees to the protocol. It is possible to build primitive trade ordering in an Ethereum Smart Contract in order to counter this and make traders compete with each other on trade size again. MAYAChain is able to order trades based on fee & slip size, known as the Swap Queue. This ensures fees collected are maximal and prevents low-value trades.

Benefits of the CLP Model

Assuming a working Swap Queue, the CLP Model has the following benefits:

  • The fee paid asymptotes to zero as demand subsides, so price delta between the pool price and reference market price can also go to zero.

  • Traders will compete for trade opportunities and pay maximally to liquidity providers.

  • The fee paid for any trade is responsive to the demand for liquidity by market-takers.

  • Prices inherit an "inertia" since large fast changes cause high fee revenue

  • Arbitrage opportunities are democratised as there is a diminishing return to arbitrage as the price approaches parity with reference

  • Traders are forced to consider the "time domain" (how impatient they want to be) for each trade.

The salient point is the last one - that a liquidity-sensitive fee penalises traders for being impatient. This is an important quality in markets, since it allows time for market-changing information to be propagated to all market participants, rather than a narrow few having an edge.

Virtual Depths

Balances of the pool (X and Y), are used as inputs for the CLP model. An amplification factor can be applied (to both, or either) in order to change the "weights" of the balances:

Element
Description

If a = b = 2 then the pool behaves as if the depth is twice as deep, the slip is thus half as much, and the price the swapper receives is better. This is akin to smoothing the bonding curve, but it does not affect pool solvency in any way. Virtual depths are currently not implemented

If a = 2, b = 1 then the Y asset will behave as though it is twice as deep as the X asset, or, that the pool is no longer 1:1 bonded. Instead the pool can be said to have 67:33 balance, where the liquidity providers are twice as exposed to one asset over the other.

Virtual Depths were initially applied to Synth Swaps using a multiplier of 2. It was intended that Synth Swaps would create 50% less slip and users pay 50% less fees. However, this was disabled after discovering that this would allow front-running. The multiplier is specified on /constants as:

but currently overridden by a Mimir value of 1.

Calculating Pool Ownership

When a liquidity provider commits capital, the ownership % of the pool is calculated:

  • units = newly created pool units for the liquidity provider

  • r = cacao deposited

  • a = asset deposited

  • R = total Cacao Balance (before deposit)

  • A = total Asset Balance (before deposit)

  • P = total Pool Units (before deposit)

The liquidity provider is allocated rewards proportional to their ownership of the pool. If they own 2% of the pool, they are allocated 2% of the pool's rewards.

Derivation

The new units are derived from the mean of adding new liquidity to both sides, multiplied by final total pool units.

In terms of amounts before the deposit:

Impermanent Loss Protection

Impermanent Loss Protection ensures LPs always either make a profit, or leave with at break even after a minimum period of time (set at 100 days), and partially covered before that point. This should alleviate most of the concerns regarding become an LP.

MAYAChain tracks a member's deposit values. When the member goes to redeem, their loss (against their original deposit value) is calculated and is subsidised with CACAO from the reserve.

Impermanent Loss Protection is always recorded and calculated symmetrically.

There is a 100 day linear increase in the amount of coverage received, such that at 50 days, the member receives 50%, 90 days is 90% etc.

Element
Description
Element
Description

P1 is the pool ratio at withdrawal.

Deposit values are not the amounts the member deposited. They are the immediate symmetrical value of what the member deposited instead.

The coverage is then adjusted for the

``= 1440000 // 100 days

Then the extra CACAO added into the member's liquidity position to issue them extra liquidity units. The member then redeems all their units, and they will realise extra CACAO and extra ASSET.

Since the protection amount is added asymmetrically, the protection will experience a small slip. This helps to prevent attack vectors.

Emergency Procedures

This page describes how to react in a network-wide emergency (funds-at-risk).

MAYAChain is a distributed network. When the network is under attack or a funds-at-risk bug is discovered, Node Operators should react quickly to secure and defend.

Even during emergencies, Node Operators should refrain from doxxing themselves. Staying pseudo-anonymous is critical to ensuring the network is impartial, neutral and resistant to capture.

Reporting a Bug

There is a formal in place for reporting bugs. If you have discovered a bug, you should immediately DM the team or any other admins and/or report via the bounty program. If the bug is deemed to be serious/criticial, you will be paid a bounty commensurate to the severity of the issue. Reports need to include:

  1. Description of the bug

  2. Steps to reproduce

  3. If funds are at risk

Admin Procedures

Once the bug has been verified, admin should make a decision on the level of response, including any mimir over-rides and announcements:

Critical - Funds At Risk

Major - Funds Not At Risk, but Network At Risk (disruption)

Minor - Funds Not At Risk, Network Not At Risk

Network Upgrades

The network cannot upgrade until 100% of active nodes are on the updated version. This can be accelerated:

  1. Naturally, by allowing the network to churn out old nodes

  2. Assertive, by waiting until a super-majority has upgraded (demonstrating acceptance of the upgrade) than banning old nodes

  3. Forced by hard-forking out old nodes.

During a natural upgrade cycle, it may take several days to churn out old nodes. If the upgrade is time-critical, the network may elect to ban old nodes. Banning a node will cycle them to be churned, kick them from TSS and eject them from the consensus set. That node will never be able to churn in again, they will need to fully leave, destroy their node, and set up a new one. Hard-forking out old nodes is also possible but comes with a significant risk of consensus failures.

Network Recovery

The network will not be able to recover until the upgrade is complete, any mimir over-rides are removed, and TSS is re-synced. Additionally, there may be a backlog of transactions that will need to be processed. This may take some time. If external chain daemons were stopped, re-syncing times may also be a factor.

All wallets and frontends should monitor for any of the halts and automatically go into maintenance mode when invoked.

Node Migration

Create node backup

/root/.mayanode/MAYAChain-ED25519 /root/.mayanode/keyring-file/ (directory) /root/.mayanode/config/node_key.json /root/.mayanode/config/priv_validator_key.json

Restore Node backup

bifrost-recovery.yaml:

If you're maling live migration, then after stopping temporary pods on the NEW node stop mayanode and bifrost daemons on the OLD node

Withdraw Liquidity

Withdrawing Liquidity Using Custom Memos.

This guide should only be used by Advanced Users. It is highly recommended to use to transact. A mistake in any step CAN cause loss of funds.

Memo Format

For Symmetric Withdrawal: WD:POOL:BASISPOINTS

For Asymmetric Withdrawal: WD:POOL:BASISPOINTS:ASSET

Liquidity Withdrawal Rules:

  1. If you deposited symmetrically, you can withdraw symmetrically, ASSET asymmetrically side, or CACAO asymmetrically.

  2. If you deposited asymmetrically, you can ONLY withdraw the side you deposited (ASSET/CACAO) asymmetrically.

For a full list of memo formats and abbreviations check this .

Procedure

Through a MAYAChain UI (eg. El Dorado, Asgardex)

Symmetric withdraw (ASSET + CACAO)

  1. Connect/Create your wallet.

  2. If you want to pay withdrawal fees in CACAO, do the transfer/memo from the CACAO side. If you want to pay withdrawal fees in ASSET, do the transfer/memo from the ASSET side. In all cases the memo will be the same. Example:

    • WD:BTC.BTC:10000

    or you can abreviate it to:

    • -:BTC.BTC:10000

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of ASSET/CACAO observed by nodes. The values are as follows:

    • CACAO (1e-10): 0.0000000001

    • BTC (10,001 sats): 0.00010001

    • ETH (1e-8): 0.00000001

    • RUNE (1e-8): 0.00000001

    • DASH (10,001 duffs): 0.00010001

    • KUJI (1e-6): 0.000001

  2. Press send.

  3. Check your transaction/Maya Address on .

Asymmetric Withdraw ASSET side

  1. Connect wallet.

  2. Transfer an amount of ASSET, by substituting the format with actual values. Example:

    • WD:BTC.BTC:10000:BTC.BTC

    or you can abbreviate it to:

    • -:BTC.BTC:10000:BTC.BTC

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of ASSET observed by nodes. The values are as follows:

    • BTC (10,001 sats): 0.00010001

    • ETH (1e-8): 0.00000001

    • RUNE (1e-8): 0.00000001

    • DASH (10,001 duffs): 0.00010001

    • KUJI (1e-6): 0.000001

  2. Press send.

  3. Check your transaction/Maya Address on .

Asymmetric Withdraw CACAO side

  1. Connect wallet.

  2. Transfer an amount of CACAO, by substituting the format with actual values. Example:

    • WD:BTC.BTC:10000:MAYA.CACAO

    or you can abbreviate it to:

    • -:BTC.BTC:10000:MAYA.CACAO

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of CACAO observed by nodes. The value is as follows:

    • CACAO (1e-10): 0.0000000001

  2. Press send.

  3. Check your transaction/Maya Address on .

Through a Non-CACAO UI (using Normal Send tx + MsgDeposit, eg. Asgardex)

Symmetric withdraw (ASSET + CACAO)

  1. Connect/Create your wallet.

  2. If you want to pay withdrawal fees in CACAO, do the transfer/memo from the CACAO side. If you want to pay withdrawal fees in ASSET, do the transfer/memo from the ASSET side. In all cases the memo will be the same. Example:

    • WD:BTC.BTC:10000

    or you can abreviate it to:

    • -:BTC.BTC:10000

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of ASSET/CACAO observed by nodes. The values are as follows:

    • CACAO (1e-10): 0.0000000001

    • BTC (10,001 sats): 0.00010001

    • ETH (1e-8): 0.00000001

    • RUNE (1e-8): 0.00000001

    • DASH (10,001 duffs): 0.00010001

    • KUJI (1e-6): 0.000001

  2. In the address field paste ASSET on MAYAChain.

    Make sure to refresh the page and NEVER use an old inbound address, as it they change every churn.

  3. Press send.

  4. Check your transaction/Maya Address on .

Asymmetric Withdraw ASSET side

  1. Connect wallet.

  2. Transfer an amount of ASSET, by substituting the format with actual values. Example:

    • WD:BTC.BTC:10000:BTC.BTC

    or you can abbreviate it to:

    • -:BTC.BTC:10000:BTC.BTC

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of ASSET observed by nodes. The values are as follows:

    • BTC (10,001 sats): 0.00010001

    • ETH (1e-8): 0.00000001

    • RUNE (1e-8): 0.00000001

    • DASH (10,001 duffs): 0.00010001

    • KUJI (1e-6): 0.000001

  2. In the address field paste ASSET on MAYAChain.

Make sure to refresh the page and NEVER use an old inbound address, as it they change every churn.

  1. Press send.

  2. Check your transaction/Maya Address on .

Asymmetric Withdraw CACAO side

  1. Connect wallet.

  2. Transfer an amount of CACAO, by substituting the format with actual values. Example:

    • WD:BTC.BTC:10000:MAYA.CACAO

    or you can abbreviate it to:

    • -:BTC.BTC:10000:MAYA.CACAO

MAYAChain uses basis points for percentages. Example:

  • 10000 = 100%

  • 5000 = 50%

  • 100 = 1%

  1. In the amount field, type the minimum amount of CACAO observed by nodes. The value is as follows:

    • CACAO (1e-10): 0.0000000001

  2. In the address field paste ASSET on MAYAChain.

Make sure to refresh the page and NEVER use an old inbound address, as it they change every churn.

  1. Press send.

  2. Check your transaction/Maya Address on .

Leaving

How to leave MAYAChain

Overview

Every 3 days the system will churn its nodes. The exact churn interval in blocks is ChurnInterval in the .

Outgoing:

  1. Nodes wishing to leave, and/or

  2. The most unreliable node(s), and/or

  3. The oldest node

  4. But a maximum of 1/3rd the network

Incoming:

  1. The node(s) with the highest bond (typically 4).

Churned out nodes will be put in standby, but their bond will not automatically be returned. They will be credited any earned rewards in their last session. If they do nothing but keep their cluster online, they will be eventually churned back in.

Alternatively, an "Active" node can leave the system voluntarily, in which case they are marked to churn out first. Leaving is considered permanent, and the node-address is permanently jailed. This prevents abuse of the LEAVE system since leaving at short notice is disruptive and expensive.

It is assumed nodes that wish to LEAVE will be away for a significant period of time, so by permanently jailing their address it forces them to completely destroy and re-build before re-entering. This also ensures they are running the latest software.

Unbonding

Yggdrasil vaults have been deprecated, see . They may be used again in the future. Nodes that were active before ADR-002 need to leave as described below.

You cannot unbond if you are "Ready" or "Active" or have any amount of funds in your Yggdrasil address

If a Node Operator wants to retrieve part of their bond & rewards (such as deciding to take profits), they can simply Unbond. This keeps their Node on standby, ready to be churned back in.

To unbond from the system, simply send an UNBOND transaction.

Example, this will draw out 10k in CACAO from the bond, as long as the remaining amount is higher than the minimum bond.

UNBOND:maya1ryr5eancepklax5am8mdpkx6mr0rg4xjnjx6zz:1000000000000

MAYAChain always treats assets in 1e8 'base format' ie, 1.0 CACAO = 100,000,000 units (tor). To get from one to the other, simply multiply by 100m.

If using ASGARDEX to BOND or UNBOND, simply put the CACAO amount, e.g. "100" for 100 CACAO. It does the memo in 1e8 for you.

You can get your node address by running make status

Only the address that originally bonded the funds can UNBOND or LEAVE. This ensures you can safely leave this system if you no longer have access to your node (but it is still running).

Issues with Unbonding/Leaving

If you can't UNBOND, it means your ygg-vault still has funds on it. This means your node spent more gas than it was supposed to during the cycle (various reasons) and is partially insolvent. To fix this you need to rectify your node's insolvency first (send it the missing funds directly) before doing anything.

Leaving

Leaving is considered permanent. There are two steps.

  1. If you are Active, send a LEAVE transaction to be ear-marked to churn out. This will take several hours even after changing your status to 'Standby'.

  2. If you are Standby, send a LEAVE transaction to get your bond back and be permanently jailed.

Prior to running a mainnet validator, you should practice a full sequence of deploy, BOND in and LEAVE on a testnet cluster to ensure you know what you are doing and what to expect.

To leave the system, send the following transaction from your original bond address to the Vault Address: LEAVE:<ADDRESS> with at least 1 tor in funds. Or use ASGARDEX.

Example:

LEAVE:maya1ryr5eancepklax5am8mdpkx6mr0rg4xjnjx6zz

⏱_Wait a few hours, verify on the /nodeaccount endpoint that you are now **Disabled**👀_ Then send another LEAVE:

LEAVE:maya1ryr5eancepklax5am8mdpkx6mr0rg4xjnjx6zz

⏱_Wait a few minutes, verify you have received your bond back 👀_ - make status should show BOND 0.00 and your wallet should get the full Bond back.

Sometimes your Yggdrasil ETH vault may be slightly insolvent due to out-of-gas transactions consuming gas whilst Active. If the network will not let you LEAVE, you may need to manually send your Yggdrasil ETH vault 0.01 - 0.05 ETH from your own personal funds as a top-up, then try LEAVE again. Note: any funds you send to top-up ETH vault you cannot send back to yourself until AFTER your node has left and you have received your bond back, otherwise it will be fined 1.5x what you transfer out.

View your node's vault to find insolvencies: https://viewblock.io/mayachain/address/<nodeAddress> https://mayanode.mayachain.info/mayachain/vault/<vaultPubKey>

🔥 Commence destroying your node 🔥

If your node is both offline and inaccessible, then it will be unable to automatically return any assets in its yggdrasil vaults and it will be slashed 1.5x the value of those assets.

Example: If your node has a $5m bond (in CACAO), but has $1m in assets in its vaults it can't return, it will lose $1.5m in CACAO from its bond. The Node will only get back $3.5m of its bond.

Contingency: Manual Leave Procedure

If your node is completely offline or destroyed, you will have to perform a manual return of Yggdrasil funds in order to prevent 1.5x bond fine. Ensure you have reviewed this procedure and have all tools ready to go in case you need to do it in anger. This is a time-critical event - you have a few hours to return all funds before the network assumes you have stolen them.

If you do not perform all of these steps in time, your bond will be fined 1.5x stolen funds. The remaining funds belonging to Yggdrasil make mnemonic are now yours; but you just paid a 50% premium for them, losing a lot of money. You can use the following procedure in a similar way to recover these funds.

Requirement: You have your make mnemonic Yggdrasil mnemonic available. If you do not have this, you cannot manually return funds.

Options: 1. Coming Soon: Use ASGARDEX for Manual Return. 2. Coming Soon: Check Discord Dev channels for manual return cli tool. 3. Extract Private Key + Manual return each asset using wallets:

Your Yggdrasil make mnemonic phrase is used to generate the m/44'/931'/0'/0/0 private key which is used for all chains. Pasting the mnemonic into common wallets will not work as they will be looking under a different "standard" HD Path. Instead, go to and paste in your mnemonic, select CACAO from the Dropdown list and in the bottom table, copy the m/44'/931'/0'/0/0 private key string. Use this to import into wallets.

The next step is to find the latest inbound addresses. Use

Do not cache inbound_addresses. These are only valid for a short period of time. Always refresh to get the latest before sending funds.

Use the address field. Chains with a router present such as ETH need to send funds via the router smart-contract. Paste the router address into etherscan, click "Contract" and "Write Contract" and use a Web3 wallet to connect.

The memo required is YGGDRASIL-:<BlockHeight>. For example YGGDRASIL-:782412. The block height can be found from the status_since field here:

If your node is standby or disabled status, any integer block height will work for return. e.g. YGGDRASIL-:1. The most important thing is to ensure you send to the correct active vault address or router.

For BTC wallets (BTC, Litecoin) use importprivkey in cli.

For ETH router manual returns, use the deposit() function for individual assets. For ETH use contract 0x0. Use the returnVaultAssets() for multiple assets.

Destroying

Confirming you have left

You should complete this checklist before you do the next step:

  1. Have you sent a final LEAVE transaction and have you received your BOND back - ie 1,000,000 CACAO, and can your account for any slash points or rewards?

If yes, then proceed:

DESTROY

To destroy and remove previously created resources, you can run the command below.

Destroying your cluster will completely destroy your node, including purging all keys on it.

DO NOT DO THIS UNTIL YOUR NODE HAS CHURNED OUT AND YOU HAVE VERIFIED YOUR BOND IS COMPLETELY RETURNED

IF YOU DESTROY A NODE PREMATURELY, YOU MAY LOSE A SIGNIFICANT AMOUNT OF FUNDS

1) Destroying the Node and Tools

First, destroy the node and tools, this will delete your node then your tooling 1-by-1. Do this from the node-launcher repo:

2) Destroy the cluster

Then destroy the cluster from the cluster-launcher repo:

You will be asked to enter your cluster name and region (the same as what you ).

You will be asked to enter your cluster name and region, as well as your Personal Token (the same as what you ).

You will be asked to confirm:

DO NOT DESTROY YOUR NODE UNTIL YOU HAVE CHURNED OUT AND HAVE RECEIVED YOUR FULL BOND BACK IN YOUR CUSTODY

IF YOU DESTROY YOUR NODE WITH FUNDS LOCKED UP - YOU WILL LOSE A SIGNIFICANT QUANTITY OF FUNDS

Liquidity Nodes

Introduction

The Liquidity Nodes model has been designed to address an issue present in many blockchains. To guarantee network security, Nodes are mandated to purchase and stake/bond a predetermined amount of the network's native asset. This serves as a security precaution, as any misbehaving Nodes will be subject to slashing, resulting in the forfeiture of their stake.

These staked/ bonded funds stay idle, with the rewards being subsidized by inflation. While certain networks attempt to counter the inflation through the implementation of burn mechanisms, MAYAChain has proposed an entirely novel approach.

MAYAChain Nodes bond Liquidity Pairs instead of idle funds, which offers three distinct advantages: security, real yield, and capital efficiency.

  1. Security: the slashing mechanism remains in effect, ensuring that any misbehaving Nodes will have their Liquidity Pairs slashed.

  2. Real Yield: there is no need for inflationary rewards; Nodes can earn fees from swaps and transactions.

  3. Capital Efficiency: the funds used to secure the network are now productive, rather than idle.

Security

The security of MAYAChain is of paramount importance, and our nodes must be held accountable to ensure the integrity of our system. To this end, more than 75% of capital should be bonded by our nodes to guarantee trustworthiness. Ideally, the percentage should be closer to 87% to ensure that any potential Sybil attack yields a loss.

To achieve this, Liquidity Providers need to be incentivized to bond their liquidity to MAYANodes. MAYAChain utilizes economic incentives through the redistribution of yield.

Yield

In MAYAChain, fees earned from swaps and transactions are divided into two types of rewards:

  • Node Exclusive Rewards (NER): Rewards that are only given to Liquidity Bonded to MAYANodes. They are distributed evenly among all Nodes.

  • Liquidity Pool Rewards (LR): Distributed to all LPs, including Bonded Liquidity, based on their share of liquidity.

In other words, LR is earned by ALL liquidity provided to MAYAChain (bonded or not), and the NER is only provided to those who Bond their Liquidity.

While Liquidity Bonded to MAYANodes earn NER, Node operators set a fee for providing their services.

But what determines the ratios in which these rewards are divided?

Incentive Pendulum

As you'd expect, the ratios of Bonded to Unbonded Liquidity will be in constant fluctuation. The incentive Pendulum is the mechanism that algorithmically and periodically rebalances the rewards/fees received by Bonded Liquidity relative to Unbonded Liquidity, according to the network's security needs.

For example, if Bonded Liquidity falls below 75% of total liquidity (unsafe zone) the Incentive Pendulum starts giving 100% of the rewards/fees to the Liquidity Bonded in MAYANodes, and 0% to the Unbonded Liquidity. This incentivizes Unbonded LPs to bond in order to earn Yield.

And, if 100% of Liquidity bonded, users will be incentivized to provide liquidity, as they can earn yield without having to bond to a Node.

Capital Efficiency

In the Liquidity Node model, Nodes don't have to choose between Node rewards or Liquidity Rewards, as they can earn both. They also have less risk to bond, as even if they fail to churn-in and be in a standby state, as they will still be earning Liquidity rewards. It also creates deeper pools while still maintaining the network security.

Liquidity Nodes earning both NER and LR means more yield, more yield attracts more liquidity, more liquidity reduces swap fees, less swap fees bring more trade volume, and more trade volume means more yield. A liquidity flywheel.

Calculations

The Exact calculations and yield distribution are as follows:

The calibrations of the economics and incentives that manage the system are algorithmic and code-driven. When the total network's liquidity is disproportionate in either direction (excessive Bonded Liquidity versus excessive Unbonded Liquidity), the incentive mechanism responds by adjusting the rewards accordingly. Below is a visual representation.

Slashing

Whenever a node is slashed, MAYAChain still benefits if their liquidity remains in the pools. It is also possible that the slashing was done in error, so that must be taken into account as well, and only execute the slashing if the Node withdraws its liquidity.

Slashed funds are transferred to the Protocol Owned Liquidity, and if the slashing is forgiven, it is given back. The forgiving of slashing can be done manually or automatically.

Summary in 10 points

  1. It is no longer the case that Capital Efficiency is inversely proportional to Network Security. Both can be achieved.

  2. All of the TVL is invested in pools and is actively traded, thus making MAYAChain significantly more efficient in terms of capital utilization.

  3. An increase in capital efficiency increases the average yield for all the ecosystem participants, which attracts liquidity, making swap fees cheaper, bringing in more volume, and creates a liquidity flywheel.

  4. Nodes with lower bonds yield higher returns per dollar invested than Nodes with higher bonds, discouraging too much Liquidity to be bonded to any single Node, ensuring decentralization and bond homogenization.

  5. As more Nodes compete to churn-in, they contribute to an increase in liquidity. This increased liquidity lowers the Incentive Curve (increasing NER), making it increasingly attractive to become a victorious Node.

  6. As the incentive curve system pulls in any direction, Pool Depth increases.

  7. Node to LP and LP to Node latency is reduced and very easy to do for Operators without incurring slip fees.

  8. Standby Nodes earn yield while they wait to win the Bond War and churn in, making it less risky to compete.

  9. Nodes no longer need 100% exposure to CACAO.

  10. Node misbehavior causes the slashing of a Node’s LP units that are converted into Protocol Owned LP Units that count towards unbonded liquidity. These Protocol Owned LP units will never exit, staying as a buyer of last resort.

Bare Metal Node Guides

An overview of guides made for bare metal setups

Bare Metal nodes come with several advantages over cloud provider nodes. Although the initial costs for purchasing all node equipment are higher, the monthly costs are eventually much lower, and thus the nett yield is higher. Bare Metal nodes are also more resilient. They can't be taken down by hosting services in the case of governmental bans on crypto infrastructure.

Several guides have been made for purchasing and setting up bare metal nodes.

THORChain Validators Migration - by @D5Sammy

Part 2: Multi-Node using MicroK8s - by @D5Sammy

Part 3: Maya’s Chocolate- by @D5Sammy

Build your own THORChain Validator Node - by @Scorch

Bare-metal MAYANode - by @Runetard

x

input amount

X

Input Balance

y

output amount

Y

Output Balance

Eqn1:X∗Y=KEqn 1: X*Y = KEqn1:X∗Y=K
Eqn2:yY=xx+X→y=xYx+XEqn 2: \frac{y}{Y} = \frac{x}{x+X} \rightarrow y= \frac{xY}{x+X}Eqn2:Yy​=x+Xx​→y=x+XxY​
Eqn3:Valuey=xYXEqn 3: Value_y = \frac{xY}{X}Eqn3:Valuey​=XxY​
Eqn4:slip=Valuey−yValuey=(xYX)−yxYX=xx+XEqn 4: slip =\frac{Value_y - y}{Value_y} =\frac{( \frac{xY}{X})-y}{ \frac{xY}{X}} = \frac{x}{x+X}Eqn4:slip=Valuey​Valuey​−y​=XxY​(XxY​)−y​=x+Xx​
Eqn5:fee=slip∗output=xx+X∗xYx+X=x2Y(x+X)2Eqn 5: fee = slip * output = \frac{x}{x+X} * \frac{xY}{x+X} = \frac{x^2Y}{(x+X)^2}Eqn5:fee=slip∗output=x+Xx​∗x+XxY​=(x+X)2x2Y​
Eqn6:y=xYx+X−x2Y(x+X)2→y=xYX(x+X)2Eqn 6: y = \frac{xY}{x+X} - \frac{x^2Y}{(x+X)^2} \rightarrow y= \frac{ xYX} {(x+X)^2 }Eqn6:y=x+XxY​−(x+X)2x2Y​→y=(x+X)2xYX​
Eqn8:y=xEqn 8: y = xEqn8:y=x
Eqn9:y=xYXEqn 9: y = \frac{xY}{X}Eqn9:y=XxY​
Eqn10:y=xYx+XEqn 10: y= \frac{xY}{x+X}Eqn10:y=x+XxY​
Eqn11:y=0.997∗xYx+XEqn 11: y= 0.997 * \frac{xY}{x+X}Eqn11:y=0.997∗x+XxY​
Eqn12a:y=xYX(x+X)2Eqn 12a: y= \frac{ xYX} {(x+X)^2 }Eqn12a:y=(x+X)2xYX​
Eqn12b:fee=x2Y(x+X)2Eqn 12b: fee = \frac{x^2Y}{(x+X)^2}Eqn12b:fee=(x+X)2x2Y​

a

Input Balance Weight

b

Output Balance Weight

Eqn7:y=xYbXa(x+Xa)2Eqn 7: y= \frac{ xYbXa} {(x+Xa)^2 }Eqn7:y=(x+Xa)2xYbXa​
"VirtualMultSynths": 2,
units=P∗rA+Ra+2rarA+Ra+2RAunits=P*\frac{rA+Ra+2ra}{rA+Ra+2RA}units=P∗rA+Ra+2RArA+Ra+2ra​
units=P∗(r/R+a/A)2=P(Ra+rA)2RAunits = P * \frac{(r/R + a/A)}{2} = \frac {P(R a + r A)}{2 RA}units=P∗2(r/R+a/A)​=2RAP(Ra+rA)​
units=(P0+units)∗(R0+r)a+r(A0+a)2(R0+r)(A0+a)units = (P_0+units) * \frac{(R_0+r) a + r (A_0+a)}{2 (R_0+r)(A_0+a)}units=(P0​+units)∗2(R0​+r)(A0​+a)(R0​+r)a+r(A0​+a)​
=(P0+units)∗rA0+R0a+2ra2rA0+2R0a+2R0A0+2ra= (P_0+units) * \frac{rA_0+R_0a+2ra}{2rA_0+2R_0a+2R_0A_0+2ra}=(P0​+units)∗2rA0​+2R0​a+2R0​A0​+2rarA0​+R0​a+2ra​
units∗(2rA0+2R0a+2R0A0+2ra)=(P0+units)(rA0+R0a+2ra)units*(2rA_0+2R_0a+2R_0A_0+2ra)=(P_0+units)(rA_0+R_0a+2ra)units∗(2rA0​+2R0​a+2R0​A0​+2ra)=(P0​+units)(rA0​+R0​a+2ra)
units∗(2rA0+2R0a+2R0A0+2ra−(rA0+R0a+2ra))=P0(rA0+R0a+2ra)units*(2rA_0+2R_0a+2R_0A_0+2ra-(rA_0+R_0a+2ra))=P_0(rA_0+R_0a+2ra)units∗(2rA0​+2R0​a+2R0​A0​+2ra−(rA0​+R0​a+2ra))=P0​(rA0​+R0​a+2ra)
units∗(rA0+R0a+2R0A0)=P0(rA0+R0a+2ra)units*(rA_0+R_0a+2R_0A_0)=P_0(rA_0+R_0a+2ra)units∗(rA0​+R0​a+2R0​A0​)=P0​(rA0​+R0​a+2ra)
units=P0∗rA0+R0a+2rarA0+R0a+2R0A0units=P_0*\frac{rA_0+R_0a+2ra}{rA_0+R_0a+2R_0A_0}units=P0​∗rA0​+R0​a+2R0​A0​rA0​+R0​a+2ra​

R0

CACAO Deposited

R1

CACAO to redeem

A0

Asset Deposited

A1

Asset to redeem

P1=R1A1\text{P1} = \frac{R1}{A1}P1=A1R1​
coverage=((A0∗P1)+R0)−((A1∗P1)+R1)=>((A0∗R1/A1)+R0)−(R1+R1)\text{coverage} = ((A0 * P1) + R0) - ((A1 * P1) + R1) => ((A0 * R1/A1) + R0) - (R1 + R1)coverage=((A0∗P1)+R0)−((A1∗P1)+R1)=>((A0∗R1/A1)+R0)−(R1+R1)
protectionProgress =(currentHeight−heightLastAdded)/blocksForFullProtection\text{protectionProgress }= (currentHeight - heightLastAdded) / blocksForFullProtectionprotectionProgress =(currentHeight−heightLastAdded)/blocksForFullProtection
protection=(protectionProgress∗coverage)\text{protection} = (protectionProgress * coverage)protection=(protectionProgress∗coverage)
100 or 400 day rule like so:
blocksForFullProtection
Depending on the coverage due to CACAO over or under performance.
kubectl get secret mayanode-mnemonic -n mayanode -o yaml > ~/mnemonic_secret_new.yaml
#Replace $pod with the mayanode pod name
kubectl cp mayanode/\$pod:/root/.mayanode/MAYAChain-ED25519 ~/MAYAChain-ED25519
kubectl cp mayanode/\$pod:/root/.mayanode/keyring-file/ ~/keyring-file/
kubectl cp mayanode/\$pod:/root/.mayanode/config/node_key.json ~/config/node_key.json
kubectl cp mayanode/\$pod:/root/.mayanode/config/priv_validator_key.json ~/config/priv_validator_key.json
#Replace $pod with the old bifrost pod name
kubectl exec deploy/mayanode -c bifrost -- sh -c "cd /root/.mayanode && tar cf \"bifrost.tar\" localstate-*.json"
kubectl cp mayanode/\$pod:/root/.mayanode/bifrost.tar ~/bifrost.tar
kind: Pod
apiVersion: v1
metadata:
  name: mayanode-recovery
spec:
  volumes:
    - name: volume-to-debug
      persistentVolumeClaim:
       claimName: mayanode
  containers:
    - name: debugger
      image: busybox
      command: ['sleep', '3600']
      volumeMounts:
        - mountPath: "/data"
          name: volume-to-debug
kind: Pod
apiVersion: v1
metadata:
  name: bifrost-recovery
spec:
  volumes:
    - name: volume-to-debug
      persistentVolumeClaim:
       claimName: bifrost
  containers:
    - name: debugger
      image: busybox
      command: ['sleep', '3600']
      volumeMounts:
        - mountPath: "/data"
          name: volume-to-debug
kubectl scale deployment mayanode bifrost --replicas=0
kubectl create -f mayanode-recovery.yaml
kubectl create -f bifrost-recovery.yaml
kubectl cp node_key.json mayanode-recovery:/data/.mayanode/config/node_key.json
kubectl cp priv_validator_key.json mayanode-recovery:/data/.mayanode/config/priv_validator_key.json
kubectl cp MAYAChain-ED25519 mayanode-recovery:/data/.mayanode/MAYAChain-ED25519
kubectl cp keyring-file mayanode-recovery:/data/.mayanode/
kubectl cp MAYAChain-ED25519 bifrost-recovery:/data/mayanode/MAYAChain-ED25519
kubectl cp keyring-file/mayachain.info bifrost-recovery:/data/mayanode/keyring-file/mayachain.info
kubectl cp bifrost.tar bifrost-recovery:/data/mayanode/bifrost.tar
kubectl exec deploy/mayanode -c bifrost-recovery -- sh -c "cd /root/.mayanode && tar xf bifrost.tar"
kubectl delete -f mayanode-recovery.yaml
kubectl delete -f bifrost-recovery.yaml
kubectl scale deployment mayanode bifrost --replicas=1
kubectl delete secret mayanode-mnemonic
kubectl apply -f mnemonic_secret_new.yaml
cd ./node-launcher/ && make set-ip-address
Bounty Program
Node backup section
https://mayanode.network/
Maya UIs
page
MayaScan
MayaScan
MayaScan
Inbound Address
MayaScan
Inbound Address
MayaScan
Inbound Address
MayaScan

Pool Depth (CACAO)

Fees

Share (of Fees)

Rewards

1,000,000

1000

33%

333

2,000,000

0

0%

0

3,000,000

2000

67%

667

6,000,000

3000

100%

1000

Pool Depth (CACAO)

Fees

Share (of Depth)

Rewards

1,000,000

0

17%

167

2,000,000

0

33%

333

3,000,000

0

50%

500

6,000,000

0

100%

1000

LUVI=(Asset Depth∗Cacao Depth)Pool UnitsLUVI =\frac{ \sqrt (Asset \ Depth * Cacao \ Depth)}{Pool \ Units} \\ \\LUVI=Pool Units(​Asset Depth∗Cacao Depth)​
Pool Units=Liquidity Units+Synth UnitsPool \ Units = Liquidity \ Units + Synth \ UnitsPool Units=Liquidity Units+Synth Units
Learn more
asset listing/delisting
Fees
swapping
reward emissions
network fees
factors affecting yield and how yield is calculated.
interactive example
network fee
slip-based fee
Midgard
Liquidity Units
Synth Units
https://midgard.mayachain.info/v2/pools?period=100d

MAYAName Guide

Create and manage a MAYAName to earn fees and monitor your integration.

Summary

MAYANames are MAYAChain's vanity address system that allows affiliates to collect fees and track their user's transactions. MAYANames exist on the MAYAChain L1, so you will need a MAYAChain address and $CACAO to create and manage a MAYAName.

MAYANames have the following properties:

  • Name: The MAYAName's string. Between 1-30 hexadecimal characters and -_+ special characters.

  • Owner: This is the MAYAChain address that owns the MAYAName

  • Aliases: MAYANames can have an alias address for any external chain supported by MAYAChain, and can have an alias for the MAYAChain L1 that is different than the owner.

  • Expiry: MAYAChain Block-height at which the MAYAName expires.

  • Preferred Asset: The asset to pay out affiliate fees in. This can be any asset supported by MAYAChain.

  • Affiliate Basis Points: The default fee percentage (in basis points) charged when the MAYAName is specified as an affiliate during swaps or when adding liquidity.

  • Subaffiliates: MAYANames can have subaffiliates for revenue sharing. Each subaffiliate has an associated fee share percentage (in basis points).

Create a MAYAName

MAYANames are created by posting a MsgDeposit to the MAYAChain network with the appropriate memo and enough $CACAO to cover the registration fee and to pay for the amount of blocks the MAYAName should be registered for.

  • Registration fee: TNSREGISTERFEE on the Mimir endpoint. This value is in 1e10, so 10000000000 = 1 $CACAO

  • Per block fee: tns_fee_per_block_rune on the same endpoint, also in 1e10.

For example, for a new MAYAName to be registered for 10 years the amount paid would be:

amt = TNSREGISTERFEE + TNSFEEPERBLOCK * 10 * 5256000

5256000 = avg # of blocks per year

The expiration of the MAYAName will automatically be set to the number of blocks in the future that was paid for minus the registration fee.

Memo Format

The accepted memo template is:

~:name:?chain:?address:?owner:?preferredAsset:?expiry:?affialiateBps:?subaffiliate[/subaffiliate2...]:?subaffiliateBps[/subaffiliateBps2...]

Memo Parameters:

  • name: Your MAYAName. Must be unique, between 1-30 characters, hexadecimal and -_+ special characters.

  • chain: (Optional) The chain of the alias to set. If MAYAName already exists, chain is optional.

  • address: (Optional) The alias address. Must be an address of chain. If MAYAName already exists, address is optional.

  • owner: (Optional) MAYAChain address of owner.

  • preferredAsset: (Optional) Asset to receive fees in. Must be supported by an active pool on MAYAChain. Value should be asset property from the Pools endpoint. If MAYA.CACAO is set as the preferred asset, affiliate fees will be sent directly to the MAYA alias as if the preferred asset was not set.

  • expiry: (Optional) The expiration block height for the MAYAName.

  • affiliateBps: (Optional) Default affiliate basis points (fee percentage) used when the MAYAName is specified as an affiliate during swaps or when adding liquidity. Value is in basis points (e.g., 200 for 2%). The maximum value is 200.

  • subaffiliate: (Optional) Subaffiliate MAYAName for revenue sharing. You can provide more "/" separated subaffiliates. The number of subaffiliates must be equal to the number of subaffiliateBps provided in next parameter.

  • subaffiliateBps: (Optional) Basis points for the subaffiliate's fee share (e.g., 2000 for 20%). You can provide more "/" separated subaffiliateBps. The number of subaffiliateBps must be equal to the number of subaffiliates provided in the previous parameter.

Example: ~:AALUXX:BTC:bc1Address:mayaAddress:BTC.BTC

This will register a new MAYAName called AALUXX with a Bitcoin alias of bc1Address owner of mayaAddress and preferred asset of BTC.BTC.

Example: ~:AALUXX2:MAYA:maya1address::THOR.RUNE::50

This will register a new MAYAName called AALUXX2 with a MayaChain alias of maya1Address, a preferred asset of THOR.RUNE, and an Affiliate Basis Points value of 50(0.5% affiliate fee).

Example: ~:AALUXX3:BTC:bc1Address:::::SUBA:2000

This will register a new MAYAName called AALUXX3 with a Bitcoin alias of bc1Address and a subaffiliate called SUBA with a fee share of 2000 basis points (20%). If the MAYAName AALUXX3 already exists, it will simply set the Bitcoin alias and add the SUBA subaffiliate to the existing MAYAName.

Example: ~:AALUXX4:BTC:bc1Address:::::SUBA:0

If the MAYAName AALUXX4 exists, this will change the Bitcoin alias to bc1Address and remove the SUBA subaffiliate from the subaffiliate list of AALUXX4. If AALUXX4 doesn't exist, it will register a new MAYAName called AALUXX4 with a Bitcoin alias of bc1Address. Since the newly registered MAYAName does not have the SUBA subaffiliate, this part of the memo will have no effect.

Example: ~:AALUXX4:MAYA:maya1address::THOR.RUNE::500:SUBA:2000

This will register or change AALUXX4's MayaChain alias tomaya1Address, preferred asset to THOR.RUNE, default affiliate basis points to 500 (5%) and adds SUBA as a subaffiliate with a fee share of 2000 basis points (20%).

Example: ~:AALUXX4::::::100:SUBA1/SUBA2:2000/3000

This will add SUBA1 and SUBA2 as subaffiliates with fee shares of 2000 and 3000 respectively (20% and 30%) for existing AALUXX4 MAYAName.

You can use Asgardex to post a MsgDeposit with a custom memo. Load your wallet, then open your MAYAChain wallet page > Deposit > Custom.

View your MAYAName's configuration at the MAYAName endpoint:

e.g. https://mayanode.mayachain.info/mayachain/mayaname/{name}

Renewing your MAYAName

All MAYAName's have a expiration represented by a MAYAChain block-height. Once the expiration block-height has passed, another MAYAChain address can claim the MAYAName and any associated balance in the Affiliate Fee Collector Module (Read Preferred Asset for Affiliate Fees ), so it's important to monitor this and renew your MAYAName as needed.

To keep your MAYAName registered you can extend the registration period (move back the expiration block height), by posting a MsgDeposit with the correct MAYAName memo and $CACAO amount.

Memo:

~:AALUXX:MAYA:<maya-alias-address>

(Chain and alias address are required, so just use current values to keep alias unchanged)

$CACAO Amount:

cacao_amt = num_blocks_to_extend * tns_fee_per_block

(Remember this value will be in 1e10, so adjust accordingly for your transaction)

Preferred Asset for Affiliate Fees

Starting in MAYANode V112, affiliates can collect their fees in the asset of their choice (choosing from the assets that have a pool on MAYAChain). In order to collect fees in a preferred asset, affiliates must use a MAYAName in their swap memos.

How it Works

If an affiliate'sMAYAName has the proper preferred asset configuration set, the network will begin collecting their affiliate fees in $CACAO in the AffiliateCollector module. Once the accrued CACAO in the module is greater than PreferredAssetOutboundFeeMultiplier* outbound_fee of the preferred asset's chain, the network initiates a swap from $CACAO -> Preferred Asset on behalf of the affiliate. At the time of writing, PreferredAssetOutboundFeeMultiplier is set to 100, so the preferred asset swap happens when the outbound fee is 1% of the accrued $CACAO.

Configuring a Preferred Asset for a MAYAName

  1. Register your MAYAName following instructions above.

  2. Set your preferred asset's chain alias (the address you'll be paid out to), and your preferred asset. Note: your preferred asset must be currently supported by MAYAChain.

For example, if you wanted to be paid out in USDC you would:

  1. Grab the full USDC name from the Pools endpoint: ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48

  2. Post a MsgDeposit to the MAYAChain network with the appropriate memo to register your MAYAName, set your preferred asset as USDC, and set your Ethereum network address alias. Assuming the following info:

    1. MAYAChain address: maya1g8dzs4ywxhf8hynaddw4mhwzlwzjfccakkfch7

    2. MAYAName: wr

    3. ETH payout address: 0x6621d872f17109d6601c49edba526ebcfd332d5d

    The full memo would look like:

~:wr:ETH:0x6621d872f17109d6601c49edba526ebcfd332d5d:maya1g8dzs4ywxhf8hynaddw4mhwzlwzjfccakkfch7:ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48

You can use Asgardex to post a MsgDeposit with a custom memo. Load your wallet, then open your MAYAChain wallet page > Deposit > Custom.

You will also need a MAYA alias set to collect affiliate fees. Use another MsgDeposit with memo: ~:wr:MAYA:<mayachain-address> to set your MAYA alias. Your MAYA alias address can be the same as your owner address, but won't be used for anything if a preferred asset is set.

You can also set one or more subaffiliates to share revenue from affiliate fees. Use another MsgDeposits with memos:

~:wr:500:SUBA1:2000

~:wr:500:SUBA2:1000

If MAYA.CACAO is set as the preferred asset, the affiliate fees are not accumulating in the affiliate collector, instead they are sent directly to the MAYA alias address on every swap. If MAYA alias is not set in MAYAName, MAYANAme Owner address is used.

Once you successfully post your MsgDeposit you can verify that your MAYAName is configured properly. View your MAYAName info from MAYANode at the following endpoint: https://mayanode.mayachain.info/mayachain/mayaname/wr

The response should look like:

{
  "name": "wr",
  "expire_block_height": 22061405,
  "owner": "maya1g8dzs4ywxhf8hynaddw4mhwzlwzjfccakkfch7",
  "preferred_asset": "ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",
  "affiliate_collector_cacao": "0",
  "aliases": [
    {
      "address": "0x6621d872f17109d6601c49edba526ebcfd332d5d",
      "chain": "ETH"
    },
    {
      "address": "maya1v7gqc98d7d2sugsw5p4pshv0mm24mfmzgmj64n",
      "chain": "MAYA"
    }
  ],
  "affiliate_bps": 150
  "subaffiliates": [
    {
      "name": "SUBA1",
      "bps": 2000
    },
    {
      "name": "SUBA2",
      "bps": 1000
    }
  ]  
}

Your MAYAName is now properly configured and any affiliate fees will begin accruing in the AffiliateCollector module. You can verify that fees are being collected by checking the affiliate_collector_cacao value of the above endpoint.

Multiple Affiliates and Subaffiliates

Affiliates can specify subaffiliates to share revenue from affiliate fees. This allows for nested affiliate relationships and revenue sharing models.

Multiple Affiliates and Subaffiliates are effective only for swaps. Subaffiliates are not considered when adding or removing liquidity.

Calculating Affiliate Fee Shares

The affiliate fee is split among the affiliate and its subaffiliates based on their specified basis points.

In case of swap affiliate shares fees are recursively calculated for each affiliate and its nested subaffiliates, ensuring the total does not exceed 100% of the affiliate fee.

Let's take the folowing example:

The cat affiliate MAYAName operates with a 1.5% fee. From this, fox MAYAName receives 30% and pig MAYAName gets 20%. Additionally, fox passes 40% of its share to its sub-sub-affiliate MAYName, frog.

Resulting distribution:

  • cat: 0.75%

  • fox: 0.27% (60% of 30% of 1.5%)

  • pig: 0.3% (20% of 1.5%)

  • frog: 0.18% (40% of 30% of 1.5%).

Here are the MsgDeposit memos used in this example:

# create cat MAYAName with ETH.ETH as the preferred asset and 1.5 bps affiliate fee
~:cat:MAYA:<addr_maya_cat>
~:cat:ETH:<addr_eth_cat>::ETH.ETH
~:cat:150
# create fox MAYAName with ETH.ETH as the preferred
~:fox:ETH:<addr_eth_fox>::ETH.ETH
~:fox:MAYA:<addr_maya_fox>
# create pig MAYAName with ETH.ETH as the preferred
~:pig:ETH:{{ addr_eth_pig }}::ETH.ETH
# create frog MAYAName with ETH.ETH as the preferred
~:frog:ETH:{{ addr_eth_frog }}::ETH.ETH
# Set affiliate->subaffiliate relations
# set fox as cat's affiliate with 30% fee share
~:cat::fox:3000
# set pig as cat's affiliate with 20% fee share
~:cat::pig:2000
# set frog as fox's affiliate with 40% fee share (of fox's share)
~:fox::frog:4000

Streaming Swaps

Streaming Swaps is a means for a swapper to get better price execution if they are patient. This ensures Capital Efficiency while still keeping with the philosophy "impatient people pay more".

There are two important parts to streaming swaps:

  1. The interval part of the stream allows arbs enough time to rebalance intra-swap - this means the capital demands of swaps are met throughout, instead of after.

  2. The quantity part of the stream allows the swapper to reduce the size of their sub-swap so each is executed with less slip (so the total swap will be executed with less slip) without losing capital to on-chain L1 fees.

If a swapper is willing to be patient, they can execute the swap with a better price, by allowing arbs to rebalance the pool between the streaming swaps.

Once all swaps are executed and the streaming swap is completed, the target token is sent to the user (minus outbound fees).

Streaming Swaps is similar to a Time Weighted Average Price (TWAP) trade however it is restricted to 24 hours (Mimir STREAMINGSWAPMAXLENGTH = 14400 blocks).

Using Streaming Swaps

To utilise a streaming swap, use the following within a Memo:

Trade Target or Limit / Swap Interval / Swap Quantity.

  • Limit or Trade Target: Uses the trade limit to set the maximum asset ratio at which a mini-swap can occur; otherwise, a refund is issued.

  • Interval: Block separation of each swap. For example, a value of 10 means a mini-swap is performed every 10 blocks.

  • Quantity: The number of swaps to be conducted. If set to 0, the network will determine the appropriate quantity.

Using the values Limit/10/5 would conduct five mini-swaps with a block separation of 10. Only swaps that achieve the specified asset ratio (defined by Limit) will be performed, while others will result in a refund.

On each swap attempt, the network will track how much (in funds) failed to swap and how much was successful. After all swap attempts are made (specified by "swap quantity"), the network will send out all successfully swapped value, and the remaining source asset via refund (that failed to swap for some reason, most likely due to the trade target).

If the first swap attempt fails for some reason, the entire streaming swap is refunded and no further attempts will be made. If the swap quantity is set to zero, the network will determine the number of swaps on its own with a focus on the lowest fees and maximize the number of trades.

Minimum Swap Size

A min swap size is placed on the network for streaming swaps (Mimir StreamingSwapMinBPFee = 5Basis Points). This is the minimum slip for each individual swap within a streaming swap allowed. This also puts a cap on the number of swaps in a streaming swap. This allows the network to be more friendly to large trades, while also keeping revenues up for small or medium-sized trades.

Calculate Optimal Swap

The network works out the optimal streaming swap solution based on the Mimumn Swap Size and the swapAmount.

Single Swap: To calculate the minimum swap size for a single swap, you take 2.5 basis points (bps) of the depth of the pool. The formula is as follows:

MinimumSwapSize=MinBPStreamingSwap∗CacaoPoolDepthMinimumSwapSize=MinBPStreamingSwap∗CacaoPoolDepthMinimumSwapSize=MinBPStreamingSwap∗CacaoPoolDepth

Example using BTC Pool:

  • BTC Cacao Depth = 20,007,476 CACAO

  • StreamingSwapMinBPFee = 5 bp

MinimumSwapSize = 0.0005 * 20,007,476 = 10,003. CACAO

Double Swap: When dealing with two pools of arbitrary depths and aiming for a precise 5 bps swap fee (set by StreamingSwapMinBPFee), you need to create a virtual pool size called cacaoDepth using the following formula:

virtualCacaoDepth=(2∗r1∗r2)/(r1+r2)virtualCacaoDepth=(2∗r1∗r2)/(r1+r2)virtualCacaoDepth=(2∗r1∗r2)/(r1+r2)

r1 represents the cacao depth of pool1, and r2 represents the cacao depth of pool2.

The cacaoDepth is then used with 1.25 bps (half of 2.5 bps since there are two swaps), which gives you the minimum swap size that results in a 5 bps swap fee.

MinimumSwapSize=(MinBPStreamingSwap/2)∗virtualCacaoDepthMinimumSwapSize=(MinBPStreamingSwap/2)∗virtualCacaoDepthMinimumSwapSize=(MinBPStreamingSwap/2)∗virtualCacaoDepth

The larger the difference between the pools, the more the virtual pool skews towards the smaller pool. This results in less rewards given to the larger pool, and more rewards given to the smaller pool.

Example using BTC and ETH Pool

  • BTC Cacao Depth = 20,007,476 CACAO

  • ETH Cacao Depth = 8,870,648 CACAO

  • StreamingSwapMinBPFee = 5 bp

virtualCacaoDepth = (2*20,007,476*8,870,648) / (20,007,476 + 8,870,648) = 12,291,607 CACAO

MinimumSwapSize = (0.0005/4) * 12,291,607 = 1536.45 CACAO

Swap Count

The number of swaps required is determined by dividing the swap Amount by the minimum swap size calculated in the previous step.

swapCount=swapAmount/MinimumSwapSizeswapCount=swapAmount/MinimumSwapSizeswapCount=swapAmount/MinimumSwapSize

The swapAmount represents the total amount to be swapped.

Example: swap 20,000 CACAO worth of BTC to ETH. (approx 0.653 BTC).

20,000 / 3,072.90 = 6.5 = 7 Swaps.

Comparing Price Execution

The difference between streaming swaps and non-streaming swaps can be calculated using the swap count with the following formula:

difference=(swapCount−1)/swapCountdifference=(swapCount−1)/swapCountdifference=(swapCount−1)/swapCount

The differencevalue represents the percentage of the swap fee saved compared to doing the same swap with a regular fee structure. There higher the swapCount, the bigger the difference.

Example:

  • (7-1)/7 = 6/7 = 85% better price execution by being patient.

https://mayanode.mayachain.info/mayachain/node/<your node address>
make destroy-tools
make destroy-aws
make destroy-do
MAYAChain Constants
ADR-002
https://iancoleman.io/bip39/
https://mayanode.mayachain.info/mayachain/inbound_addresses
put in when you first deployed
put in when you first deployed
Destroying the Tooling
Final destroy complete

MAYANode Overview

Overview of MAYANodes

Overview

MAYANodes service the MAYAChain network. Each MAYANode is comprised of several independent servers in a cluster. All MAYANodes communicate and operate in cooperation to create a cross-chain swapping network.

Running a node is a serious undertaking. While Node Operators are well compensated for running a node, there are also risks, skills required and costs.

See the Node Operator 101 Video to learn more before running a node.

To set up a node, you have three choices:

  1. Set up manually (not recommended unless you are an expert)

  2. Set up via Kubernetes (recommended)

  3. Set up via Provider (coming soon).

MAYANode Stack

Each MAYANode is comprised of 5 major components.

  1. mayanode - this is a daemon that runs the MAYAChain chain itself and a HTTP server, that gives a RESTful API to the chain.

  2. bifrost - this daemon creates connections to remote chains (like Bitcoin, Ethereum, Binance, etc) to both observe activity on those chains (incoming/outgoing transactions), and also sign/broadcast outgoing transactions (moving funds on remote chains).

  3. gateway: MAYANode gateway proxy to get a single IP address for multiple deployments

  4. midgard - this daemotn is a layer 2 REST API that provides front-end consumers with semi real-time rolled up data and analytics of the MAYAChain network. Most requests to the network will come through Midgard. This daemon is here to keep the chain itself from fielding large quantities of requests. You can think of it as a “read-only slave” to the chain. This keeps the resources of the network focused on processing transactions.

  5. Full nodes - for every chain that is supported by the network, each MAYANode operator will run their own full node of each chain (Bitcoin, Ethereum, Binance, etc).

Churning

As new nodes join/leave the network, this triggers a “churning event”. Which means the list of validators that can commit blocks to the chain changes, and also creates a new Asgard vault, while retiring an old one. All funds in this retiring vault are moved to the new Asgard vault.

Normally, a churning event happens every 3 days (50,000 blocks), although it is possible for it to happen more frequently (such as when a node optionally requests to leave the network using the LEAVE memo).

Churning Out

On every churn, the network selects one or more nodes to be churned out of the network (which can be typically churned back in later). In a given churning event, multiple nodes may be selected to be churned out, but never more than 1/3rd of the current validator set. The criterion the network will take into account is the following:

  1. Requests to leave the network (self-removal)

  2. Banned by other nodes (network-removal)

  3. How long an active nodes has been committing blocks (oldest gets removed)

  4. Bad behavior (accrued slash points for poor node operation)

Churning In

On every churn, the network may select one or more nodes to be churned into the network but never adds more than one to the total. Which nodes that are selected are purely by validator bond size. Larger bond nodes are selected over lower bond nodes.

There is an endpoint on Midgard that has deep analytics in mean and median active & standby bond sizes to drive efficient discovery of the best "bond" size. Maya's minimum bond is currently: 100K Cacao (MIMIR Override).

The network is safe when it is over-bonded, but shrewd Node Operators will probably actively manage their bond and pool part of it instead to maximize yield.

Risk of Running a Node

Deciding to run a node should be carefully considered and thought through. While the payoffs/rewards can be significant, there can also be an equally significant cost.

Risks to Bond

To run a node, you must obtain a significant amount of LP, and minimums apply. This CACAO is sent into the network as a “bond” and held as leverage on each node to ensure they behave in the best interest of the network.

Running a malicious node or stealing from the network results in a slashing of this bond. Here are the ways in which a validator’s bond can get slashed.

  • Double Sign (5% of minimum bond) - if it is observed that a single validator node is committing blocks on multiple chains. To avoid this, never run two nodes with the same node account at the same time.

  • Unauthorized transaction (1.5x transaction value) - if a node sends funds without authorization, the bond is slashed 1.5x the value of the stolen funds. The slashed bond is dumped into the pool(s) where the funds were stolen and added to the reserve.

Bond slashing takes directly from the bond and does not affect rewards.

Risk to Income

When a node is active, it earns rewards from the network in CACAO. Sufficient rewards are required to be earned for a Validator to be profitable. Running an unreliable node results in rewards being slashed. Here are the ways in which a validator’s rewards can be slashed.

  • Not Observing (2 slash pts) - if a node does not observe transactions for all chains while other nodes do, they get slash points added.

  • Not signing a transaction (600 slash pts) - if a node does not sign an outbound transaction, as requested by the network, they will get slash points added.

  • Fail to keygen (1 hr of revenue) - When the network attempts to churn and attempts to create a new Asgard pubkey for the network and fails to do so due to a specific node(s), they will lose 1 hr of revenue from their bond.

Slash points undo profits made on the network. For every 1 slash point a node receives, they lose 1 block of rewards. Rewards slashing reduces earned rewards and does not affect a validator’s bond.

Compensation

Bond Rewards

Node Operators receive rewards if they are bonded and active on the network and are paid out in Cacao. While revenue is generated every block (every 5 seconds) to each operator, those funds are not available to the operator until they churn out of the network. Over time, this incentive increases the median bonded amount, increases the network's security, and allows the network to grow. They're claimed whenever a node leaves the network. See Keeping Track of Rewards below for more details.

Rewards are affected by Incentive Curve. The Incentive Pendulum increases and decreases the amount of CACAO allocated to nodes according to the security and capital leverage of the network.

Dynamic Inflation adds up to rewards. When the system is healthy, there is no inflation; should LPs withdraw CACAO considerably, inflation starts to kick in to incentivize pooled liquidity.

Keeping Track

When a node joins the network, the current block height is recorded. The system creates one block unit for every active node for every active block and has a running total of the block units created. When a node leaves, it cashes in its block units for a portion of the bond rewards. The spent block units are destroyed.

For example, there are 10000 CACAO in bond rewards outstanding. Node A has been active for 30 blocks and has 33 block units but accrued 3 slash points. There are 1000 block units in total. Node A leaves the network and cash in its 30 block units (33 - 3). It receives 300 CACAO ((30/1000) * 10000), leaving 9700 CACAO in node rewards. Its 33 block units are destroyed, leaving 967 block units left.

Costs

Depending on how the node was set up, it will likely cost between $1000 and $2000 per month, potentially more as the blockchain scales. The main driver of costs is resource allocation to hosting each MAYANode service.

Skillsets

Running a MAYANode is no simple task. As an operator, you must run/maintain multiple Linux servers with extremely high uptime. It is encouraged that only professional systems engineers run nodes to maintain the highest quality, reliability, and security of the network. The simple question to know if you have the skillsets to run a MAYANode is:

Have you used pagerduty before?

If the answer is no, it’s probably best not to run a node and participate in the network in other ways. The following skill sets are required to be an effective node operator.

  • Advanced knowledge of Linux server administration and security

  • Advanced knowledge of Kubernetes

  • Advanced experience running a host of nodes on a hosted platform such as AWS, Google Cloud, Digital Ocean, etc

  • Knowledge of running full nodes for other chains such as Bitcoin, Ethereum, and Binance.

  • Willingness to be “on call” at all times to respond to issues when/if your node becomes unavailable

MAYANode Details

Node Accounts

When you run a MAYANode, each MAYANode will have its own node account. An example node account looks like this:

{
  "node_address": "maya19h62vypuelrj0pv4jhl26wf79yr5zhxcmd5w85",
  "aztec_address": "",
  "status": "active",
  "pub_key_set": {
    "secp256k1": "mayapub1addwnpepq0ylvhrqepmsm3rqxr4ecuyx42l4y29g2d932zlse258432ccuy8spmddj5",
    "ed25519": "mayapub1addwnpepq0ylvhrqepmsm3rqxr4ecuyx42l4y29g2d932zlse258432ccuy8spmddj5"
  },
  "validator_cons_pub_key": "mayacpub1zcjduepqzknjn39xtkdzr6a2zuzry7f02rn3cnqvy8ar7p2admk80j8xageqj9slpw",
  "bond": "10240000000000",
  "active_block_height": "180",
  "bond_address": "maya1rqhrnvyex4p5zchhu0slgr76dc4cl5dnvzxx2h",
  "status_since": "123",
  "signer_membership": [
    "mayapub1addwnpepqwm3arc5xqgjf8yt70psygcjasfj3c776cux4yxcaacyd9vm859lckczll7"
  ],
  "requested_to_leave": false,
  "forced_to_leave": false,
  "leave_height": "0",
  "ip_address": "206.189.235.75",
  "version": "0.1.0",
  "slash_points": "17",
  "jail": {
    "node_address": "maya19h62vypuelrj0pv4jhl26wf79yr5zhxcmd5w85",
    "release_height": "2393",
    "reason": "failed to perform keysign"
  }
}

Most importantly, this will tell you how many slash points the node account has accrued, their status, and the size of their bond (which is in 1e8 notation, 1 Cacao == 100000000).

Node Statuses

Types of node status:

  1. Unknown - this should never be possible for a valid node account

  2. Whitelisted - node has been bonded, but hasn’t set their keys yet

  3. Standby - waiting to have minimum requirements verified to become “ready” status. This check happens on each churn event (3 days on average).

  4. Ready - node has met minimum requirements to be churned and is ready to do so. Could be selected to churn into the network. Cannot unbond while in this status.

  5. Active - node is an active participant of the network, by securing funds and committing new blocks to the MAYAChain blockchain. Cannot unbond while in this status.

  6. Disabled - node has been disabled by use of LEAVE, and cannot re-join.

To get node account information, make an HTTP call to your maya-api port which will look like the following:

http://<host>:1317/mayachain/nodeaccount/<node address>
http://<host>:1317/mayachain/nodeaccounts

Node Voting

MAYANodes have the ability to vote on Mimir settings.

Mimir settings have specific abilities. The process for voting from a Node is:

Make mimir
=> Enter MAYANode Mimir key: <key>
=> Enter MAYANode Mimir value: <value>
  1. Mimir keys and values are listed in the Mimir endpoint.

  2. A node can vote at any time on any key value.

  3. A node's vote is valid as long as they are active (and removed if they are not).

  4. 2/3rds of active nodes need to agree for the change to happen

  5. If 2/3rds consensus is not reached, Mimir admin takes priority, or a constant if present.

  6. A node can change its vote anytime.

  7. A node can delete its vote by using -1 value

  8. Voting costs one native transaction fee, which is deducted from their bond.

Cluster Launcher

Multi-node Deployment

Some node operators may desire to run multiple validators within the same cluster, while sharing a single set of daemons among them to save resource cost. This can be performed via the following method. These instructions are relevant for mainnet at the time of writing, but please ensure that correct network and current set of daemons are used.

https://gitlab.com/mayachain/devops/node-launcher/-/blob/master/docs/Multi-Validator-Cluster.md

Query Package

How to query MAYAChain information

This package is designed to obtain any desired information from MAYAChain that a developer could want. While it uses Midgard and Mayanode packages it is much more powerful as it knows where to get the best information and how to package the information for easy consumption by developers or higher functions.

It exposes several simple functions that implement all of MAYAChain's complexity to allow easy information retrieval. The Query package does not perform any actions on MAYAChain or send transactions, that is the job of the package.

Code examples in Replit

Currently implemented functions are listed below with code examples. Press the Run button to run the code and see the output. Press Show files, and select index.ts to see the code. Select package.json to see all the package dependencies. and .

Estimate Swap

Provides estimated swap information for a single or double swap for any given two assets within THORChain. Designed to be used by interfaces, see more info . EstimateSwap will do the following:

  • Validate swap inputs

  • Checks for

  • Get the latest pool data from

  • Work out the swap , swap and

  • Deducts all from the input amount (inbound, swap, outbound and any affiliate) in the correct order to produce netOutput and detail fees in totalFees

  • Ensures totalFees is not greater than input.

  • Work out the expected including confirmation counting and outbound delay.

  • Get the current for the inbound asset

  • Advise if a swap is possible and provide a reason if it is not.

Note: This will be the best estimate using the information available, however exact values will be different depending on pool depth changes and network congestion.

Savers

Shows use of the savers quote endpoints.

Check Balance

Checks the liquidity position of a given address in a given pool. Retrieves information such as current value, ILP coverage, pool share and last added.

Check Transaction

Provide the status of a transaction given an input hash (e.g. the output of doSwap). Looks at the different stages a transaction can be in and report.

In development

Estimate Add Liquidity

Provides an estimate for given add liquidity parameters such as slip fee, transaction fees, and expected wait time. Supports symmetrical, asymmetrical and uneven additions.

Estimate Remove Liquidity

Provides information for a planned withdrawal for a given liquidity position and withdrawal percentage. Information such as fees, wait time and ILP coverage

List Pools

Lists all the pool detail within THORChain.

Network Values

List current network values from constants and mimir. If mimir override exists, it is displayed instead.

If there is a function you want to be added, reach out in Telegram or the dev discord server.

Mayachain-AMM
Repo link
install instructions
here
network or chain halts
Midgard
slip
fee
output
fees
wait time
Asgard Vault address

Setup - AWS

Setting up a Kubernetes Cluster with AWS

Deploy a Kubernetes cluster in AWS using EKS service.

Requirements

  1. AWS account

  2. CLI and AWS credentials configured

  3. AWS IAM Authenticator

  4. kubectl

  5. wget (required for EKS module)

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a MAYANode from a Linux VPS.

  2. Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about****


Steps

Firstly, clone and enter the cluster-launcher repository. All commands in this section are to be run inside this repo.

git clone https://gitlab.com/mayachain/devops/cluster-launcher
cd cluster-launcher

Then install the terraform CLI:

Install Terraform:

brew install terraform

AWS CLI

In order for Terraform to run operations on your behalf, you must install and configure the AWS CLI tool. ****To install the AWS CLI, follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install the AWS CLI.

brew install awscli
aws configure

You will be asked for you AWS access credentials (retrieve from AWS IAM from the AWS web console.)

IAM -> User -> Security Credentials -> Create Access Key.

Make sure you handle your secrets securely!

AWS IAM Authenticator

You also must install and configure the AWS IAM Authenticator tool. ****To install, follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install the AWS IAM Authenticator.

brew install aws-iam-authenticator

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). ****To install kubectl , follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install kubectl.

brew install kubernetes-cli

wget && jq

You also need wget and jq, follow these instructions, or choose a package manager based on your operating system.

Use the package manager homebrew to install wget and jq Note: You most likely have these installed already.

brew install wget 
brew install jq

Deploy Kubernetes Cluster

Use the commands below to deploy an AWS EKS cluster. You can run the make command that automates those command for you like this:

make aws

During the deploy, you will be asked to enter information about your cluster:

  • Name

  • AWS Region -- see valid List of Regions

  • Confirm yes

Regions
Note: AWS EKS is not available in some regions

Or manually:

cd aws/
terraform init
terraform plan # to see the plan
terraform apply

Final success message: Apply complete! Resources: 30 added, 0 changed, 0 destroyed.

If you are a returning node operator and you wish to use the same node name, the Cloudwatch log files from your previous session will block this step. You need to manually delete the logs from your console:

Cloudwatch / Cloudwatch Logs / Log Groups -> "delete"

Deploying a cluster takes ~10 minutes

CONFIGURE kubectl

This is done automatically during provisioning. To configure authentication from the command line, use the following command. It will get the access credentials for your cluster and automatically configure kubectl in case you need to to manually reconfigure kubectl.

make kubeconfig-aws

Or get your kubeconfig file manually:

(cd aws && aws eks --region $(terraform output -raw region) update-kubeconfig --name $(terraform output -raw cluster_name))

To verify, run this, and check the status is "Ready":

kubectl version
kubectl cluster-info
kubectl get nodes

You are now ready to deploy a MAYANode.

BACKUPS (OPTIONAL)

Once your node is running, use the following command to automatically backup the Persistent Volumes for your Kubernetes cluster. This may help in recovering your node in the event of a disaster.

Enable backups:

make aws-backups

Disable backups:

make aws-destroy-backups
THORChain bare-metal validator — Part 2: Multi-Node using MicroK8sMedium
THORChain Validator Migration — The Exhaustive GuideMedium
THORChain bare-metal validator — Part 3: Maya’s ChocolateMedium

Deploying

Deploying a MAYANode and its associated services.

Deploy MAYANode services

Now you have a Kubernetes cluster ready to use, you can install the MAYANode services.

Helm charts are the defacto and currently easiest and simple way to package and deploy Kubernetes application. The team created different Helm charts to help to deploy all the necessary services. Please retrieve the source files from the Git repository here to follow the instructions below:

********

Requirements

  • Running Kubernetes cluster

  • Kubectl configured, ready and connected to running cluster

If you came here from the Setup page, you are already good to go.

Steps

Clone the node-launcher repo. All commands in this section are to be run inside of this repo.

Install Helm 3

Install Helm 3 if not already available on your current machine:

Tools

To deploy all tools, metrics, logs management, Kubernetes Dashboard, run the command below.

To destroy all those resources run the command below.

If you are successful, you will see the following message:

If there are any errors, they are typically fixed by running the command again.

Deploy MAYANode

It is important to deploy the tools first before deploying the MAYANode services as some services will have metrics configuration that would fail and stop the MAYANode deployment.

Before deploy

Currently MAYAChain supports ARB, BTC, ETH, DASH, KUJI & THOR. For all of the chains that we support a fullnode is used in order to read transactions from them. Sync time varies from chain to chain, but there's a couple of things you can do to speed up some of them:

ETH

By default the fullnode of ETH will connect checkpoint node provided by Maya Protocol. If you want to customize the checkpoint node to use you can edit the checkpoint_url in ethereum-daemon/values.yaml attribute.

THOR

In order to sync THOR from a ninerealms snapshot you need to explicitly enable it by setting recover: true in thornode-daemon/values.yaml.

You have multiple commands available to deploy different configurations of MAYANode. You can deploy mainnet or stagenet (currently not churning in third-party nodes). The commands deploy the umbrella chart mayanode-stack in the background in the Kubernetes namespace mayanode (or mayanode-stagenet for stagenet) by default.

If you are intending to run all chain clients, bond in & earn rewards, you want to choose "validator".

After deploy

Once it's all deployed you'll need to sync from a snapshot.

We recommend choosing the defaults, but in case you have a specific need you can choose otherwise.

You are now ready to join the network:

Debugging

Set mayanode to be your default namespace so you don't need to type -n mayanode each time:

kubectl config set-context --current --namespace=mayanode

Use the following useful commands to view and debug accordingly. You should see everything running and active. Logs can be retrieved to find errors:

Kubernetes should automatically restart any service, but you can force a restart by running:

Note, to expedite syncing external chains, it is feasible to continually delete the pod that has the slow-syncing chain daemon (eg, binance-daemon-xxx).

Killing it will automatically restart it with free resources and syncing is notably faster. You can check sync status by viewing logs for the client to find the synced chain tip and comparing it with the real-world blockheight, ("xxx" is your unique ID):

Get real-world blockheights on the external blockchain explorers, eg:

CHART SUMMARY

MAYANode full stack umbrella chart

  • mayanode: Umbrella chart packaging all services needed to run a fullnode or validator MAYANode.

This should be the only chart used to run MAYANode stack unless you know what you are doing and want to run each chart separately (not recommended).

MAYANode services:

  • mayanode: MAYANode daemon

  • gateway: MAYANode gateway proxy to get a single IP address for multiple deployments

  • bifrost: Bifrost service

  • midgard: Midgard API service

External services:

  • mayachain-daemon: Mayachain fullnode daemon

  • arbitrum-daemon: Arbitrum fullnode daemon

  • bitcoin-daemon: Bitcoin fullnode daemon

  • dash-daemon: Dash fullnode daemon

  • ethereum-daemon: Ethereum fullnode daemon

  • kuji-daemon: Kujira fullnode daemon

  • thornode-daemon: Thorchain fullnode daemon

  • chain-daemon: as required for supported chains

Tools

  • prometheus: Prometheus stack for metrics

  • loki: Loki stack for logs

  • kubernetes-dashboard: Kubernetes dashboard

git clone https://gitlab.com/mayachain/devops/node-launcher
cd node-launcher
git checkout master
make helm
make helm-plugins
make tools
make destroy-tools
make install
$ make recover-maya
Maya only provides mainnet snapshots. Continue?
:: Are you sure? Confirm [y/n]: y

=> Select snapshot type
   pruned
   full
=> Select snapshot height
   1283017
   1359274
   1690642
   1837687
   1893933
kubectl get pods -n mayanode
kubectl get pods --all-namespaces
kubectl logs -f <pod> -n mayanode
kubectl delete pod <pod> -n mayanode
kubectl logs -f binance-daemon-xxx -n mayanode
https://gitlab.com/mayachain/devops/node-launcher
BTC Explorer
DASH Explorer
ETH Explorer
THOR Explorer
Joining
Build your own THORChain Validator Node — Step by step guideMedium
Bare-metal MAYANode: The comprehensive n00b guideMedium

Aaluxx Interviews

Watch our Co-Founder Aaluxx speak about Maya with various hosts!

Aug 23, 2024

Key Points
  • On the first day of Rare Evo, Aaluxx, co-founder of Maya Protocol, took the stage alongside H Payne from Shapeshifter and Reza Shahi from Nine Realms to discuss the multi-chain decentralized future.

  • The panel delved into the importance of a multi-chain ecosystem and how Maya Protocol is actively working to integrate widely-used chains, reduce transaction fees, and seamlessly connect them with the same assets. Together, they explore the solutions to interact with other ecosystems, highlighting the path forward for a more interconnected and efficient DeFi landscape.

Aug 22, 2024.

Key Points
  • At Rare Evo, Aalux, co-founder of Maya Protocol, is joined by Zey from Moka and Giga Thad from El Dorado to talk about accelerating and innovating within the DeFi space through collaboration.

  • Alongside Baokba, Aaluxx discusses the role of strategic partnerships in shaping the future of decentralized finance. Get ready for a deep dive into how collaboration is fueling the growth of DeFi.

Aug 22, 2024

Key Points
  • The collaboration between the Maya protocol and Maestro, a leading infrastructure provider for the Cardano ecosystem, focuses on bringing seamless interoperability and bridgeless swaps to Cardano.

  • The integration process for including Cardano on the Maya protocol is expected to take two to three months, possibly extending to four to six months to address any unique challenges. The development team is incentivized to expedite the integration to benefit from increased transaction volume and to contribute to Cardano's ecosystem expansion.

March 10, 2024

Key Points
  • In this episode of The Deep Dive, Aaluxx sits down with Zeb to explore the inner workings of Maya Protocol. They dive deep into key details such as Cacao, the Maya token, the fair launch, and the overall mission of Maya Protocol.

  • They also discuss what sets Maya apart from other projects like Thorchain, shedding light on its unique approach to decentralization and the future of cross-chain interoperability. Tune in for an in-depth look at the goals behind Maya Protocol and how it’s shaping the future of DeFi!

Jan 27, 2024

Key Points
  • Discussions were held regarding cross-chain swaps for Cardano using Maya protocol and Maestro team. The teams' representatives introduced themselves, including Marvin (co-founder and CEO of Maestro), Vas (co-founder and CTO of Maestro), and Aluxx (co-founder and lead of Maya protocol). The Maya protocol allows for cross-chain swaps by utilizing pooled liquidity from multiple chains, minimizing risks compared to bridges. The discussion revolved around Cardano proposals to accelerate Maya's capabilities on the platform for improved user experience and interoperability.

  • Maya is a fork of Thorchain that expands its capabilities to more blockchain networks, with plans of interoperability. It implements changes such as using liquidity node validators and a non-inflationary token for improved efficiency and yield. It functions as a cross-chain decentralized exchange with trustless swaps and incentivized liquidity providers.

  • Adding assets to liquidity pools on decentralized exchanges, specifically on Maya, where assets are paired with cacao. Maya also offers a "Savers" feature for single asset exposure, but with lower yields.

  • Integrating Cardano requires MAYANode operators to run full Cardano nodes and make necessary protocol upgrades. This process incurs additional costs but also brings in new volume and fees. Two Catalyst proposals aim to make the protocol compatible and provide support for testing and running a new Cardano cluster.

  • The main limitation in Cosmos chains is the Tendermint consensus technology, which currently only allows for 120-150 nodes due to its requirement for instant finality. This requires multiple rounds of voting, causing delays due to network latency. To improve throughput, there are plans to increase the node limit to 200-250 and enhance network performance. Instant finality is crucial for cross-chain services like Maya, while large collateral is needed for permissionless validation. As such, trustlessness is achieved through game theory incentives instead of a large number of nodes.

  • Maya determines valid blocks on different blockchain networks using bifrost, which has an observer and signer client. Maya stores incoming blocks using a block scanner for each chain. Other chains like Kujira have instant finality, while with Cardano, there is collaboration with researchers to determine confirmation mechanisms and refund management based on Ouroboros. This process involves testing and iterative improvements.

  • The benefits of streaming swaps between Cardano (ADA) and Bitcoin are discussed, as they break large swaps into smaller sub-swaps executed over multiple blocks, decreasing slippage and fees. This has resulted in a 20x increase in daily trading volumes on other chains, with the largest swap being $10 million.

  • Integration of Cardano would require two weeks for initial work, followed by testing, audits, and bootstrapping liquidity through node-created vaults. A funding proposal would help complete the integration efficiently. This integration plan, first planned for 2021, will enhance cross-chain functionality for decentralized exchanges and wallets.

  • Discusses cross-chain swaps between Cardano and other protocols through Maya, a decentralized exchange, potentially increasing capital inflow and new users. Wallets facilitating swaps may receive affiliate fees as a form of monetization. Highlighted as an important goal is the fulfillment of trustless peer-to-peer transactions.

Jan 5, 2024

Key Points
  • In this interview, Aaluxx shares the journey behind Maya Protocol, a decentralized cross-chain DeFi solution born from Thorchain. He discusses Maya’s mission to support blockchains not yet integrated by Thorchain, including Cardano, Zcash, Solana, and more.

  • Aaluxx explores how Maya empowers users with decentralization, the challenges with centralized exchanges, and the team’s vision for the future. Learn about Maya’s

Oct 6, 2023

Key Points
  • Recent drama in the Thorchain ecosystem, particularly ThorSwap, has sparked mainstream news coverage. Legal pressure in certain jurisdictions, such as the US, is difficult for DEX teams. DEXs are better for users than centralized exchanges, even with legal compliance changes. Privacy coin concerns have shifted to focus on DEX operations.

  • Aditya historically used decentralized swap services for cryptocurrency privacy, wanting to add Zcash and Dash to Thorchain. But Thorchain didn't add them, so they looked into Maya protocol. Nighthawk has been integrating Zcash into Thorchain for over a year, funded by a Zcash grant. However, integration has taken longer than expected due to vulnerabilities in Thorchain and network upgrades. Explores importance of integration for Zcash and current status.

  • Decentralized exchange protocols, like THORChain and Maya Protocol, offer an improved experience for privacy minded users. They enable single-click swapping between coins, and the privacy of funds is greater than with centralized exchanges, which require personal info. Decentralized Protocols also reduce risks like insolvency and regulation, making privacy coins more accessible and secure.

  • Maya Protocol offers value through arbitrage, redundancy, assets not available on THORChain, and helps with regulatory issues especially with the delisting of privacy coins on CEXs.

  • Privacy is a human right being eroded by tech. While some crypto users don't value it, it remains of high importance

  • Neutral infrastructure shouldn't be blamed for illicit funds. A gradual approach should be taken, with optional privacy. People don't understand that bitcoin transactions are traceable.

Oct 4, 2023

Key Points

• Aaluxx expresses happiness at the two-year effort and commends the community support. Liquidity has exceeded expectations, but the roadmap has been slower. Interest from other platforms to integrate Maya has been high, but competing priorities have slowed progress.

• Issues with Dash transactions getting stuck on Maya blockchain due to node validators not scanning Dash history and volatile gas prices led to a backlog of 50-60 stuck transactions. Version 107 is being released to remove all transactions from queue and manually pay back users. 21 unique addresses were affected, with 16 paid and 5 remaining.

• Thorchain developers have more resources and are breaking new ground, while Maya follows behind. Maya is seen as higher risk, higher reward, with developers improving over time, though long-term success remains uncertain.

• Aaluxx hopes community participation in their project will grow and improve alongside core team. Invites more involvement and need for more hands.

• Starting liquidity pools can be tough due to price volatility, so streaming swaps are an option to help.

• Maya differs from THORChain by not using inflationary tokens and having a different tokenomic structure. To enable more development and use cases, Maya plans to create a smart contract layer on a Cosmos-based chain using the same Cacao token. This would increase total value locked in Cacao and attract more developers, allowing for greater flexibility.

• AZTECChain is a smart contract layer built on Maya Protocol. It uses $CACAO token, providing stability, and supports native synths

• CosmWasm contracts are easier to develop than Solidity. Aztec doesn't need to be the best, just better than average. 90% of fees go to Maya node operators, 10% to Aztec token holders.

• $Maya token revenue sharing model proposed by someone in the Terra ecosystem as compensation for dev/investors. Initial challenge was how investors could exit without obligation to new owners. Solution was Maya tokens representing revenue sharing, with 10% of protocol fees distributed to token holders every 24hrs automatically.

• $MAYA model incentivizes long-term thinking over short-term profits, and provides alternative to ICOs. It also better aligns interests of speculators and users.

• Revenue sharing token approach will be adopted by more & more protocols in the future.

• Maya's goal is to separate money from state.

• Regulators are targeting crypto projects, raising questions over whether tokens like XRP and Filecoin are securities. The revenue share model of Maya tokens, however, is not a concern as the team is based in Mexico and utility tokens were given away rather than sold. Some private sales have occurred but not via public ICO.

• It is believed that SEC would have no jurisdiction and attitudes may change in five years as crypto adoption increases. This is seen as beginning of a monetary revolution away from state control.

Maya seeks decentralization to protect against state threats. No user interfaces or customer-facing systems exist, eliminating legal action by having no central control/failure.

• Countries like El Salvador & Switzerland, and their cryptocurrency adoption, attract users leaving jurisdictions with increasing governmental control, and in a few years, we could witness a transfer of wealth.

• Maya team currently has authority and the community is rallied around them, this could change over time as more people get involved with differing opinions.

• The nodes have full governance rights similar to Thorchain.

• It's believed Maya has a sustainable future as something generating economic value through features like savings, lending, and integrating more blockchain networks.

• Maya's focus for the next year is bringing more features and innovations while expanding more safely and quickly, and provides links for people to learn more about and start using Maya.

Sep 11, 2023

What Is Maya Protocol: Cross-Chain Paradigm, Integrating Cardano!

Key Points
  • Maya Protocol, a cross-chain protocol, was ceated to simplify crypto trading. This was motivated by their dissatisfaction and limited crypto options in their native Mexico. In 2021, Aaluxx joined THORChain as a liquidity provider and began working to solve this issue, eventually resulting in Maya Protocol.

  • Maya Protocol, launched two years ago, seeks to be an aggregator and arbitrager between blockchain networks. Named after Latin pride, Cacao tokens were distributed with no inflation. Development and launch were completed in 18 months, and currently supports Bitcoin, Ethereum, and stablecoins. Future plans include supporting more coins and networks.

  • Maya Protocol enables cross-chain trading of cryptocurrencies, providing easy access to different blockchain ecosystems without needing centralized exchanges or complicated transactions. Thus, it furthers the goal of trustless, peer-to-peer interactions across various blockchains.

  • DEXs such as Uniswap and Curve are becoming more popular due to lower costs & simpler trading of ERC-20 tokens. It is expected that the next bull run will strengthen this trend with platforms like Maya providing improved user experiences, and more chains.

  • Governance is enabled by 17 validator nodes, so far, and can go up to 120, which are permissionless and anonymous, posting collateral to run. TSS signatures secure the vaults. Mimir allows for quick response to issues, approved by validators and transparently recorded; intended to phase out as team and validators mature. Team is incentivized by network fee percentage.

  • Maya's cross-chain asset transfer system allows users to swap assets from one chain to another. Transactions require two-thirds of nodes to sign, incentivized by a bond that can be slashed for improper behavior.

  • Maya, though a separate team from THORChain, considers them friendly forks, aiming to add to the THORChain ecosystem.

  • Maya & THORChain collaborate to enable one-click asset transfers. They pay for bug bounties, provide ideas for implementations, & advise on security. Their efforts aim to decentralize exchanges & move away from centralized entities. Maya has current infrastructure & dAPP integrations & dedicates resources to expand them. It is a "one plus one equals three" situation.

  • Maya is integrating with different blockchain ecosystems and platforms, with progress made in three categories: wallet connections like Ledger, existing third-party chains, and ecosystem-specific integrations. Integration with Cardano, one of the top 5 ecosystems, is planned, with the opportunity to connect several large ecosystems.

  • Maya Protocol is integrating with Cardano blockchain, which is complex and requires extra work. Submitted Catalyst funding proposal for $600,000 to support pool and reduce slippage. Looking to launch by year-end.

  • Hopes to have aggregations and integrations with Polkadot, Ledger, Trust Wallet, Cardano & other chains in a year's time. Features like savers, streaming swaps, memoless txs also planned. Roadmap for next year achievable to be ready for bull run.

July 1, 2023

Dash Podcast 206 with Aaluxx: Dash Activation on the Maya Protocol

Key Points
  • Dash integration into Maya is on StageNet, with finalization ongoing. Release of the final version is imminent.

  • Dash Team has been making modifications to the Dash network, including chain locks & instant send, to boost security & liquidity.

  • Dash is unique in that it is focused on being a payment system. In addition, Dash Evolution and GroveDB are significant improvements to the chain that will enable new layers and use cases.

  • Institutions need to be more open and inclusive to crypto, otherwise they risk driving away innovation.

  • MAYAChain is a decentralized exchange that uses a Threshold Signature Scheme to ensure that only authorized users can access funds.

  • MAYAChain doesn't use or need oracle, market forces and arbitrage opportunities make sure the prices are accurate.

  • MAYANodes protect the network using economic security.

  • Similarly Masternodes secure Dash, incentivized to maintain honest behavior, or risk losing their investment.

  • MAYAChain is a friendly fork of THORChain. THORChain's code is battle tested, with past setbacks making it stronger.

  • THORChain and MAYAChain employ a unique approach to governance that is consensus-based and verifiable, with emphasis on decentralization.

  • THORChain and MAYAChain have both employed several safeguards such as solvency tracker, and chain halts to enhance chain security.

  • Dash integration to MAYAChain will make Dash available to trade on mulitple interfaces.

  • THORWallet is making strides beyond just being a swapping interface.

  • To maximize Dash's success on MAYAChain, the Dash community must

    • utilize the decentralized exchange,

    • offer liquidity to reduce costs of swaps,

    • and request the feature (decentralized swaps) from wallets and interfaces.

June 20, 2023:

Update on Dash-Maya Integration | Incubator WEEKLY

Key Points
  • Despite successful launch and liquidity, maintaining network stability was difficult due to ETH Shanghai update, BTC & BRC-20 mempool failure, and Thorchain updates. Striking a balance between keeping the chain running and adding new integrations was challenging. Previous versions focused on stability; v105 introduces Dash integration, and Liquidity Nodes update.

  • Dash is currently in Stagenet, undergoing comprehensive testing before Mainnet launch.

  • v105 will witness MAYAChain transition from Genesis to Liquidity Nodes. GN and LN will run simultaneously until economic security is achieved, then GN will be retired with time.

  • Maya Protocol seeks to integrate with a variety of wallets, enabling users to access Maya without having to be brought to it. As decentralization values choice, multiple front ends with varying fee structures are available.

  • The benefits of THORChain & MAYAChain being similar yet distinct offer the opportunity to assess different ideas, features, and implementations to determine the optimal solution. Example, some of MAYAChain's propositions regarding lending have been incorporated into THORChain, of which we are proud. We are optimistic about THORChain's upcoming lending feature and look forward to its launch to evaluate its suitability for MAYAChain.

  • We are integrating Dash, Kujira, Arbitrum and Cardano, and a smart contract layer, with swaps and volume being our primary focus. Dash is on Stage Net with no major issues, and we are still testing before releasing. We have confidence but must consider real-life parameters.

  • MAYAChain seeks Dash community support during the current CEX and crypto restrictions, including offering swap volume, liquidity, and promotion. Aaluxx invites the Dash community to make their requests heard.

  • Running a Liquidity Node on MAYAChain is estimated to cost $100k.

  • The Dash Incubator team will develop a product that will utilize Dash CoinJoin feature combined with Maya’s cross-chain swaps. This allows private and anonymous transactions between BTC, ETH, and other assets supported by Maya Protocol.

March 13, 2023:

Maya Protocol - Non-custodial Cross-chain swaps on Kujira

March 6, 2023

Will DASH Plus MAYA Equal DEX Success? | Incubator WEEKLY

March 3, 2023

Halborn Flash Videos with Aaluxx Myth of Maya Protocol

February 27, 2023

Maya Protocol Launch - Interview With AaluxxMyth About The Launch And Long-Term Plans

February 21, 2023

Citizen Cosmos: A citizen odyssey, ep. XVI, special mission - Maya Protocol

February 8, 2023

An Intro To... Maya Protocol!

January 18, 2023

Aaluxx of the Maya Protocol on Expanding THORChain's Vision of Cross-Chain Swaps and Liquidity

October 13, 2022

What is Maya Protocol?

December 19th, 2022

CROSS CHAIN CRYPTO EXPLOSION!? With Maya Protocol

Tutorials

Example actions within MAYAChain

Find Savers Position

Endpoints have been made to look up a savers position quickly.

Savers Position using Thornode

Request: Get BTC saver information for the address 33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf

Response:

Returns all savers for a given asset. To get all savers you can use

Savers Position using Midgard

Request Get Savers Position for address 33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf

Response:

Find Liquidity Position

Similar to savers, looking up the liquidity position with a given address is possible.

Liquidity Provider Position using Thornode

Request: Get liquidity provider information in the BTC pool for the address bc1q00nrswtpp3zddgc0uvppuszhnr8k8zfcdps9gn

Response:

Liquidity Provider Position using Midgard

Several endpoints exist however the member's endpoint is the most comprehensive

Request: Get liquidity provider information for the address bc1q0kmdagyqhkzw4sgs7f0vycxw7jhexw0rl9x9as

Response:

Any address can be used with this endpoint, e.g. bc1q0kmdagyqhkzw4sgs7f0vycxw7jhexw0rl9x9as with ?showSavers=true to show any savers position also.

User Transaction History

Actions within THORChain can be obtained from Midgard which will list the actions taken by any given address.

Request: List actions by the address bnb1hsmrred449qcmhg9sa42deejr8nurwsqgu9ga4

Response:

Will also include savers' actions. The Action endpoint is very flexible, see the .

Check the status of a Transaction

Transactions can once sent to THORChain.

Request: Get the status for BTC tx A56B423250020E4960D9836C6F843E1D3333FAE583C9CA26776F0D68DA69CE4A sent to the Savers vault.

Response:

Note this endpoint is in alpha and the response will differ for swaps.

For more details information, can be used looking for updated_vault

{
  "asset": "BTC.BTC",
  "asset_address": "33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf",
  "last_add_height": 8794877,
  "units": "71338",
  "asset_deposit_value": "71723",
  "asset_redeem_value": "71830",
  "growth_pct": "0.001491850591860352"
}
{
  "pools": [
    {
      "assetAddress": "33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf",
      "assetBalance": "71723",
      "assetWithdrawn": "0",
      "dateFirstAdded": "1671838673",
      "dateLastAdded": "1671838673",
      "pool": "BTC.BTC",
      "saverUnits": "71338"
    }
  ]
}
{
  "asset": "BTC.BTC",
  "asset_address": "bc1q00nrswtpp3zddgc0uvppuszhnr8k8zfcdps9gn",
  "last_add_height": 6332320,
  "units": "3190637579",
  "pending_rune": "0",
  "pending_asset": "0",
  "rune_deposit_value": "5340160943",
  "asset_deposit_value": "548543",
  "rune_redeem_value": "6217698938",
  "asset_redeem_value": "500382",
  "luvi_deposit_value": "1696309",
  "luvi_redeem_value": "1748188",
  "luvi_growth_pct": "0.030583460914255598"
}
{
  "pools": [
    {
      "assetAdded": "67500000",
      "assetAddress": "bc1qw5cj49wng7jpfg2zq6ca5py7uctq4maulyc66c",
      "assetPending": "0",
      "assetWithdrawn": "0",
      "dateFirstAdded": "1669373649",
      "dateLastAdded": "1669373649",
      "liquidityUnits": "466600725237",
      "pool": "BTC.BTC",
      "runeAdded": "955003804620",
      "runeAddress": "thor169lfsnv2myg8yrudx4353xakq44756w9830crc",
      "runePending": "0",
      "runeWithdrawn": "0"
    }
    ...
  ]
}
{
  "actions": [
    {
      "date": "1647866221415353933",
      "height": "4778782",
      "in": [
        {
          "address": "thor169lfsnv2myg8yrudx4353xakq44756w9830crc",
          "coins": [
            {
              "amount": "63684757953",
              "asset": "THOR.RUNE"
            }
          ],
          "txID": "ED1384012BA129B889CCF3285A1FB73B127101A0924F49B64FE58A6939FA47C4"
        },
        {
          "address": "bnb1hsmrred449qcmhg9sa42deejr8nurwsqgu9ga4",
          "coins": [
            {
              "amount": "541348102046",
              "asset": "BNB.BUSD-BD1"
            }
          ],
          "txID": "F8CEAF2EA762D08AE22CC173BC4B2781B082927990C4F623D2629C4EE2BEC93F"
        }
      ],
      "metadata": {
        "addLiquidity": {
          "liquidityUnits": "38152218105"
        }
      },
      "out": [],
      "pools": [
        "BNB.BUSD-BD1"
      ],
      "status": "success",
      "type": "addLiquidity"
    },
    ....
  ],
  "count": "6"
}
{
  "tx": {
    "id": "A56B423250020E4960D9836C6F843E1D3333FAE583C9CA26776F0D68DA69CE4A",
    "chain": "BTC",
    "from_address": "bc1qmlw9x4xnkmyd5xgtvn5cuwc5jcq033g4cj2ur9",
    "to_address": "bc1q02hrv5y4dm7rux2swg020yzykhaufrglyv7kkj",
    "coins": [
      {
        "asset": "BTC.BTC",
        "amount": "30051812"
      }
    ],
    "gas": [
      {
        "asset": "BTC.BTC",
        "amount": "2500"
      }
    ],
    "memo": "+:BTC/BTC:t:0"
  },
  "stages": {
    "inbound_observed": {
      "completed": true
    },
    "inbound_finalised": {
      "completed": true
    }
  }
}
https://thornode.ninerealms.com/thorchain/pool/BTC.BTC/saver/33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf
https://thornode.ninerealms.com/thorchain/pool/BTC.BTC/savers
https://midgard.ninerealms.com/v2/saver/33XBYjiR3B7g8755mCB56aHtxQYL2Go9xf
https://thornode.ninerealms.com/thorchain/pool/BTC.BTC/liquidity_provider/bc1q00nrswtpp3zddgc0uvppuszhnr8k8zfcdps9gn
https://midgard.ninerealms.com/v2/member/thor169lfsnv2myg8yrudx4353xakq44756w9830crc
https://midgard.ninerealms.com/v2/member/bc1q0kmdagyqhkzw4sgs7f0vycxw7jhexw0rl9x9as?showSavers=true
https://midgard.ninerealms.com/v2/actions?address=bnb1hsmrred449qcmhg9sa42deejr8nurwsqgu9ga4
docs
take time to fully process
https://thornode.ninerealms.com/thorchain/alpha/tx/status/A56B423250020E4960D9836C6F843E1D3333FAE583C9CA26776F0D68DA69CE4A
https://thornode.ninerealms.com/thorchain/tx/A56B423250020E4960D9836C6F843E1D3333FAE583C9CA26776F0D68DA69CE4A/signers
Logo
Logo

FAQs

Please find the most frequently asked questions in the following sections.

General FAQs

What can I do on MAYAChain?

You can swap/trade (buy & sell) Assets, provide Liquidity and earn yield, and/or run a Node to help secure our network in exchange for fees and yield.

How much CACAO do the founders and team have?

The team and founders have Zero CACAO allocation. If they do have it, they have acquired it by buying it from the market, like everyone else. 90% of CACAO has been donated to early Liquidity Providers during the Liquidity Auction, while the remaining 10% is in the Maya Fund vault to finance pools' Impermanent Loss.

How much MAYA do the founders and team have?

Maya Protocol founders have 15.6% of MAYA, but these tokens can't be sold. You can check Maya Protocol's Operations Wallet (that pays the team, marketing, and other expenses) at this link.

What are the assets supported by Maya?

For an updated list please check MayaScan Pools Page. But as of time of writing this guide, supported coins are: BTC, ETH, RUNE, USDT, USDC, wstETH, KUJI, USK, AETH, XRD & CACAO.

Where can I buy CACAO?

You can currently buy CACAO on both El Dorado and THORWallet.

  • There is no BEP20 or ERC20 CACAO in existence.

  • You can only buy Native CACAO from the market.

  • Only native CACAO is used in MAYAChain.

How can I buy $MAYA?

Currently, the only way to buy MAYA is OTC. If you wish to do so, you can head to our Discord.

What's the difference between Uniswap and MAYAChain?

Uniswap enables decentralized crypto trading within a blockchain (mainly Ethereum), while MAYAChain offers a secure method to trade/exchange native assets across blockchains.

What assets can you swap and provide liquidity for?

  • Current Chains — Bitcoin, Ethereum, THORChain, Dash, Kujira, Arbitrum & Radix.

  • Tokens such as: ERC-20 (USDT, USDC & wstETH) and Kujira native assets (USK)

  • See full list on the blockchain explorer.

Does MAYAChain need Oracles?

No, it doesn't. MAYAChain's Continuous Liquidity Pool design & arbitrageurs set prices. When pools become imbalanced, arbitrage bots trade to rebalance them. CACAO binds all pools together, allowing arbitrage traders to purchase tokens at a lower price on MAYAChain & sell them for a profit. Arbitrage bots interact with the API 24/7, & anyone can run their own!

Are there withdrawal fees and why is there a 3x withdrawal fee premium?

Yes, there is a fee for every withdrawal, whether it is an asymmetrical or symmetrical deposit.

TLDR: Transaction Fee = Inbound fee Network Fee = 3x fee charged by network Total = Sum of both

Overview of the process and why:

  1. Nodes Pay 1* Standard Fee from the native pools (gas pools)

  2. LPs get paid back 2* St Fee, they earn >1x in margin due to arbing

  3. Reserve gets paid back 3x, it earns 1x in margin which goes to the reserve.

➜ See Outbound-Fee.

➜ Standard Fee inbound address end point.

➜ Watch Fees and Wait Times Explained video

Will all ERC20 assets be supported and listed on MAYAChain by default?

No. Only short tail assets with high MarketCap, good velocity and economic activity would have chances to win liquidity competition to get listed. Although DEX Aggregators connected to MAYAChain can offer this service. Check Governance for how tokens are added, and our pools for the full list of supported tokens.

Open a ticket in Discord if you would like to see a new ERC-20 (on Ethereum or Arbitrum) or Kujira native asset added to Maya Protocol.

Are Synths Interest-bearing Assets?

No. Synths enables synthetic assets with no IL and with single asset exposure. They do not generate yield.

Technical FAQs

Why use BFT Tendermint?

MAYAChain uses Tendermint which is a classical BFT algorithm. 2/3 of the validators need to agree and the network values safety. The chain has instant finality and this is needed to secure cross-chain bridges.

Why does CACAO need to be the settlement asset in every pool?

If each pool is comprised of two assets (e.g. BTC:ETH) then there will be a scaling problem with n*(n-1)/2 possible connections. By having CACAO on one side of each pool, CACAO becomes a settlement bridging asset allowing swaps between any two other assets. Additionally, having CACAO in a pool ensures that the network can become aware of the value of assets it is securing.

Why use 1-way state pegs instead of atomic swaps or 2-way asset pegs?

Simply put, Cross-chain bridges are a better solution than Atomic Swaps. Atomic Swaps involve a complex process of signing cryptographic keys between two parties that require interactivity. You also need a counter-party on all trades. Cross-chain bridges, coupled with continuous liquidity pools means you don't need a designated counter-party, and swaps can happen in less than a second. 1-way state pegs are better than 2-way asset pegs because assets don't need to be wrapped or pegged. Instead of having IOU tokens, real native assets can be used instead.

What is the CACAO monetary policy / Tokenomics?

The goal is to have a fixed supply at all times, instead of constantly emitting (infinite supply like Cosmos or Ethereum) or reducing the emission down to zero (Bitcoin). Although, Maya Protocol can elect to use dynamic inflation.

How are new pools added in MAYAChain?

Approximately every three days, the pending pool with the deepest liquidity is churned in (becomes an active pool). This is called a Pool Churn. Note: A pending pool must have a minimum 10K CACAO to be eligible for a churn.

This means there is an open decentralised liquidity competition where the community can vote with their liquidity. N.B. Caps will prevent voting with liquidity.

There is a set max of 100 active pools, and once achieved, deeper pending pools will be able to replace shallowest active pools. See Governance for more information.

My transaction failed, I can’t add liquidity or make swaps?

Make sure you have a sufficient amount of native cacao to process transactions. Also be sure to check if the liquidity caps are full. If so, you will not be able to add liquidity at that time. If you see errors like “No UTXOs to send” or “Need to wait for more UTXO confirmation”; likely you are trying to spend UTXO assets (BTC, LTC, BCH) that you have just transferred into your wallet. Please wait for more blockchain confirmations, and try again later!

What is the average number of blocks per day for MAYAChain?

MAYAChain produces a block every 6 seconds on average. So, MAYAChain produces around 14,400 blocks per day. Sometimes blocks can be produced slightly faster or slower, so these numbers are estimations.

How can I see the numbers of churns on-chain?

You can check the churns here. Each entry is a churn.

How to convert THORChain Address to MAYAChain Address?

You can convert any Thor address to Maya Address using this tool, as Thor and Maya share the same hdpath.

How Can I check midgard data?

You can by visiting this link.

Swaps

Do I need CACAO to swap tokens on Maya?

You do not need CACAO to interact with MAYAChain. You can perform swaps and add/remove liquidity without directly touching $CACAO or the MAYAChain protocol. You will need to find a MAYAChain-connected wallet.

Is there a Network Fee?

Yes, the Network Fee is collected in CACAO. If the transaction involves an asset that is not CACAO, the user pays the asset's Network Fee. The equivalent amount is taken from that pool's CACAO supply and added to the Protocol Reserve.

What assets are available to swap?

Users can swap any assets which are on connected chains and which have been added to the network. Users can swap from any connected asset to any other connected asset. They can also swap from any connected asset to CACAO.

Are swaps decentralized?

MAYA manages the swaps following the rules of the state machine - which is completely autonomous. Every swap that it observes is finalized, ordered, and processed. Invalid swaps are refunded, and valid swaps are ordered transparently and resistant to front-running. Validators can not influence the order of trades and are punished if they fail to observe a valid swap.

How long does it take to complete a swap?

Swaps are completed as fast as they can be confirmed, around 5-10 seconds.

Are there any costs to swap?

The cost of a swap is made up of two parts:

  1. Outbound Fee

  2. Price Slippage

All swaps are charged a network fee. The network fee is dynamic – calculated by averaging recent gas prices.

How are swap fees calculated?

Swap fees are dependent on the depth of liquidity pools, the deeper the pools (aka the more liquidity) the less the fee is. Swap fee also depends on the size of the deposit. Bigger deposits incur more swap fees.

Note that users who force their swaps through quickly cause large slips and pay larger fees to liquidity providers. Learn more about Network Fees.

Liquidity Providers

What is a keystore?

The Keystore is an encrypted version of a user's private key, protected by a password, and presented in JSON/text format. It is a more secure alternative to the private key, as it requires a password to access.

What does it mean to be a Liquidity Provider?

Liquidity providers deposit their assets in liquidity pools and earn yield in return. They earn tokens in Cacao and the pool's connected asset. For example, someone deposited in the BTC/CACAO pool will receive rewards in BTC and CACAO.

Read our whitepaper for a detailed breakdown of being a Liquidity Provider on Maya.

Can anyone participate in liquidity pools?

Yes! Depositing assets on MAYAChain is permissionless and non-custodial.

What factors affect how much yield I get from LPing?

Several factors will affect how much yield you receive, including your ownership % of the pool, swap volume, and size of swaps. The yield comes from fees and rewards from the protocol.

How am I compensated for providing LP?

Yield is calculated for liquidity providers in every block. Yield is paid out to liquidity providers when they remove assets from the pool. Rewards are calculated according to whether or not the block contains any swap transactions. If the block contains swap transactions, the amount of fees collected per pool sets the number of rewards. If the block doesn't have trades, the amount of assets in the pool determines the rewards.

Is there a lockup period if I provide Liquidity?

There is no minimum or maximum time or amount. Join and leave whenever you wish. There is however a required confirmation time before MAYAChain credits you with liquidity when adding or swapping to protect against Reorgs.

If you bonded your liquidity you have to wait for the Node you bonded to to churn out.

What is the difference between asymmetric and symmetric LP deposits?

Symmetrical deposits are where users deposit an equal value of 2 assets to a pool. For example, a user deposits $500 of BTC and $500 of CACAO to the BTC/CACAO pool.

Asymmetrical deposits are where users deposit unequal values of 2 assets to a pool. For example, a user deposits $2000 BTC and $0 CACAO to the BTC/CACAO pool. In the backend, the member is given ownership of the pool that considers the slip created in the price. The liquidity provider will end up with <$1000 in BTC and <$1000 in CACAO. The deeper the pool, the closer to a total of $2000 the member will own.

Can I withdraw LP symmetrically after depositing an asset asymmetrically?

No. You cannot withdraw symmetrically. You can withdraw only asymmetrically for LP you deposited asymmetrically.

I entered asymmetrically but received less than anticipated?

Yes, because when you pool asymmetrically your asset is swapped into 50% cacao and 50% asset. When swapping you are subject to slippage and fees. There are 2 types charged on asymmetrical deposits/withdrawals:

  1. The on-chain deposit transaction fee (inbound tx)

  2. The liquidity fee as a function of slip

Upon withdrawal, there will also be a transaction fee (outbound tx)

Are there slippage fees for symmetrical deposits?

No, there is only the deposit transaction fee.

What ways can I withdraw my asymmetrical deposit?

If you deposit asymmetrically you can ONLY withdraw asymmetrically.

What ways can I withdraw my symmetrical deposit?

You can withdraw your symmetrical deposit both asymmetrically and symmetrically.

Is my asymmetric deposit covered by IL Protection?

Yes, but the IL Protection is applied to the asymmetrical deposit after it has been converted into a symmetrical deposit (also meaning after slippage and fees). This means that the IL Protection will cover both assets. See ILP above.

What is Impermanent Loss Protection (ILP), and does Maya offer it?

Currently, yes. Our ILP guarantees that LPs will either make a profit or at least recoup their investment (in USD value) in comparison to holding them externally after a certain period (currently set to 100 days) and even that they can be partially reimbursed for any impermanent losses incurred before that time. Any potential losses in the LP deposit are subsidized in CACAO.

$CACAO underperforms the external ASSET

ILP kicks in 50 days after providing liquidity, with a 1% compensation for any realized IL. After that, 1% more is added everyday until , on day 150, 100% of the IL realized is covered. As an example, on day 100 after adding liquidity, your ILP is 50%.

$CACAO performs better than the external ASSET

ILP kicks in 50 days after providing liquidity, with a .25% compensation for any realized IL. After that, .25% more is added everyday until , on day 450, 100% of the IL realized is covered.

Is there a liquidity cap?

The Soft Cap has been removed, so there should be no limit to the amount of liquidity entered. There is a hard cap in place to ensure the total pooled cannot exceed the total bonded, making the network unsafe however the Incentive Pendulum makes this cap near impossible to reach.

Are there any strategies for Liquidity Providers?

There are two main strategies; active and passive.

Passive liquidity providers should seek out pools with deep liquidity to minimize risk and maximize returns.

Active liquidity providers can maximize returns by seeking pools with shallow liquidity but high demand. This demand will cause greater slips and higher fees for liquidity providers.

How is "bond address" different from the "node address"?

A Node Operator may or may not have their own bond provider address. If they do, node address = bond address. If they don't have it, node address = node operator address.

How to calculate a pool's APR manually?

Head to MayaScan pools page. Choose the pool of interest. Get the swap fees and annualize them (x365) then divide by the total pool size.

How to check your initial liquidity vs. your current liquidity?

  1. Go to this link.

  2. Choose your pool (BTC, ETH, etc..)

  3. Paste in your wallet address.

  4. Press "Check Position".

Coding Guide

A coding overview to XChainJS.

General

The foundation of xchainjs is defined in the xchain-util package

  • Address: a crypto address as a string.

  • BaseAmount: a bigNumber in 1e8 format. E.g. 1 BTC = 100,000,000 in BaseAmount

  • AssetAmount: a BaseAmount*10^8. E.g. 1 BTC = 1 in Asset Amount.

  • Asset: Asset details {Chain, symbol, ticker, isSynth}

All Assets must conform to the Asset NotationassetFromString() is used to quickly create assets and will assign chain and synth.

  • CryptoAmount: is a class that has:

baseAmount: BaseAmount
readonly asset: Asset

All crypto should use the CryptoAmount object with the understanding they are in BaseAmount format. An example to switch between them:

// Define 1 BTC as CryptoAmount
oneBtc = new CryptoAmount(assetToBase(assetAmount(1)), assetFromStringEx(`BTC.BTC`))
// Print 1 BTC in BaseAmount 
console.log(oneBtc.amount().toNumber().toFixed()) // 100000000
// Print 1 BTC in Asset Amount 
console.log(oneBtc.AssetAmount().amount().toNumber().toFixed()) // 1

Query

Major data types for the mayarchain-query package.

  • Package description

  • Github source code

  • Code examples

  • Install procedures

EstimateSwapParams

The input Type for estimateSwap. This is designed to be created by interfaces and passed into EstimateSwap. Also see Swap Memo for more information.

Variable

Data Type

Comments

input

CryptoAmount

inbound asset and amount

destinationAsset

Asset

outbound asset

destinationAddress

String

outbound asset address

slipLimit

BigNumber

Optional: Used to set LIM

affiliateFeePercent

number

Optional: 0-0.1 allowed

affiliateAddress

Address

Optional: thor address

interfaceID

string

Optional: assigned interface ID

SwapEstimate

The internal return type is used within estimateSwap after the calculation is done.

Variable

Data Type

Comments

totalFees

TotalFees

All fees for swap

slipPercentage

BigNumber

Actual slip of the swap

netOutput

CryptoAmount

input - totalFees

waitTimeSeconds

number

Estimated time for the swap

canSwap

boolean

false if there is an issue

errors

string array

contains info if canSwap is false

TxDetails

Return type of estimateSwap. This is designed to be used by interfaces to give them all the information they need to display to the user.

Variable

Data Type

Comments

txEstimate

SwapEstimate

swap details

memo

string

constructed memo MAYAChain will understand

expiry

DateTime

when the SwapEstimate information will no longer be valid.

toAddress

string

current Asgard Vault address From inbound_address

Do not use toAddress after expiry as the Asgard vault rotates

AMM

Major data types for the thorchain-query package.

  • Package description

  • Github source code

  • Code examples

  • Install procedures

ExecuteSwap

Input Type for doSwap where a swap will be actually conducted. Based on EstimateSwapParams.

TxSubmitted

Variable

Text

Text

hash

string

inbound Tx Hash

url

string

Block exploer url

waitTimeSeconds

number

Estimated time for the swap

Logo
Logo
Logo

Managing

Accessing Logs, Metrics and more

MAYANode commands

The Makefile provide different commands to help you operate your MAYANode.

There are two types of make commands, READ and WRITE.

Run make help at any stage to get an exhaustive list of help options and how to interact with the system.

READ COMMANDS

Read commands simply read your node state and doesn't commit any transactions.

To get information about your node on how to connect to services or its IP, run the command below. You will also get your node address and the vault address where you will need to send your bond.

make status

Opens a shell into your thor-daemon deployment: From within that shell you have access to the thorcli command.

make shell

Display stream of logs of MAYANode deployment:

make logs

This will print your node mnemonic (phrase). Use this to ever rescue your node funds if something goes wrong.

Note: This phrase should only be used "in anger". This is your node "hot vault", also referred to as its yggdrasil vault, which allows the network to delegate swaps for faster execution. You will be slashed significantly if any funds are moved from this vault, since it is monitored by the MAYAChain network. Your bond is held at ransom in order to prevent you from stealing funds from this vault. Your bond will always be more valuable than funds on this vault, so you have no economic reason to touch these funds.

make mnemonic

A keystore file that secures your private keys is also stored on the MAYANode. The password that is used to decrypt it can be printed by the following command

make password

Restart a MAYANode deployment service selected:

make restart

Reset a MAYANode deployment service selected, including deleting the persistent volume. This command is destructive and will reset the chain back to 0%. You would use this for unrecoverable issues that make restart did not solve.

make reset

WRITE COMMANDS

Write commands actually build and write transactions into the underlying statechain. They cost CACAO from your bond, currently 0.02, but you can check this on the /constants endpoint "CLICOSTINCACAO". This will post state in the chain which will be now updated globally. The CACAO fee is to prevent DDoS attacks.

Send a set-node-keys to your node, which will set your node keys automatically for you by retrieving them directly from the maya-daemon deployment.

make set-node-keys

Send a set-ip-address to your node, which will set your node ip address automatically for you by retrieving the load balancer deployed directly.

make set-ip-address

In order to update your MAYANode to a new version, you will need to update the docker tag image used in your deployments. Depending on your choice of deployment this can be done differently.

For Kubernetes deployments, you can edit the deployments of the different services you want to update using the commands below.

To update your thor-daemon, thor-api and bifrost deployment images to version 0.2.0:

kubectl set image deployment/thor-daemon thor-daemon=registry.gitlab.com/mayachain/mayanode:mainnet-0.2.0
kubectl set image deployment/thor-api thor-api=registry.gitlab.com/mayachain/mayanode:mainnet-0.2.0
kubectl set image deployment/bifrost bifrost=registry.gitlab.com/mayachain/mayanode:mainnet-0.2.0

To update your `midgard` deployment image to version 0.2.0

kubectl set image deployment/midgard midgard=registry.gitlab.com/mayachain/midgard:mainnet-0.2.0

You can then follow the deployments restarting status either by checking your Kubernetes dashboard or using the CLI command below:

kubectl get deployment/thor-daemon

Once the deployments are all in the ready state again, you need to broadcast to the network that you are running a new version using the command below:

make set-version

Tools

Note, all of these should already be installed from make tools. However you can install them separately useing the DEPLOY tabs below.

To access the tools, navigate to the ACCESS tabs below.

All of these commands are to be run from node-launcher

LOGS MANAGEMENT (LOKI)

It is recommended to deploy a logs management ingestor stack within Kubernetes to redirect all logs within a database to keep history over time as Kubernetes automatically rotates logs after a while to avoid filling the disks. The default stack used within this repository is Loki, created by Grafana and open source. To access the logs you can then use the Grafana admin interface that was deployed through the Prometheus command.

You can deploy the log management automatically using the command below:

make install-loki

This command will deploy the Loki chart. It can take a while to deploy all the services, usually up to 5 minutes depending on resources running your kubernetes cluster.

You can check the services being deployed in your kubernetes namespace loki-system.

Access Grafana

See previous section to access the Grafana admin interface through the command make grafana.

Browse Logs

Within the Grafana admin interface, to access the logs, find the Explore view from the left menu sidebar. Once in the Explore view, select Loki as the source, then select the service you want to show the logs by creating a query. The easiest way is to open the "Log browser" menu, then select the "job" label and then as value, select the service you want. For example you can select mayanode/bifrost to show the logs of the Bifrost service within the default mayanode namespace when deploying a mainnet validator MAYANode.

Destroy Loki logs management stack

make destroy-loki

METRICS MANAGEMENT (Prometheus)

It is also recommended to deploy a Prometheus stack to monitor your cluster and your running services.

You can deploy the metrics management automatically using the command below:

make install-metrics

This command will deploy the prometheus chart. It can take a while to deploy all the services, usually up to 5 minutes depending on resources running your kubernetes cluster.

You can check the services being deployed in your kubernetes namespace prometheus-system.

We have created a make command to automate this task to access Grafana from your local workstation:

make grafana

Open http://localhost:3000 in your browser.

Login as the admin user. The default password should have been displayed in the previous command (make grafana).

Access Prometheus admin UI

We have created a make command to automate this task to access Prometheus from your local workstation:

make prometheus

Open http://localhost:9090 in your browser.

As part of the tools command deployment, you also have deployed a Prometheus stack in addition to the Elasticsearch in your Kubernetes cluster. All CPU, memory, disk space, and MAYANode / MAYAChain custom metrics are automatically being sent to the Prometheus database backend deployed in your cluster.

You should have available different dashboards to see the metrics across your cluster by nodes, deployments, etc, and also a specific MAYANode / MAYAChain dashboard to see the MAYAChain status, with current block height, how many validators are currently active and other chain related information.

Click the 🔍 SEARCH ICON to find the list of dashboards

Example of Grafana Dashboard

For a more in-depth introduction of Grafana, please follow the documentation here.

Kubernetes Dashboard

You can also deploy the Kubernetes dashboard to monitor your cluster resources.

make install-dashboard

This command will deploy the Kubernetes dashboard chart. It can take a while to deploy all the services, usually up to 5 minutes depending on resources running your kubernetes cluster.

We have created a make command to automate this task to access the Dashboard from your local workstation:

make dashboard

Open http://localhost:8000 in your browser.

View your kubernetes dashboard by running the following:

make dashboard
Kubernetes Dashboard

Backing up a MAYANode

You should backup your MAYANode in case of failures. By default, if you are using the Kubernetes deployments solution, all the the deployments are automatically backed up by persistent volume disks. Depending on your provider, the volumes are usually available in the provider administration UI, for example in AWS, you can find those volumes in your regular console, in the region you chose to deploy your Kubernetes cluster.

Again by default, with Kubernetes, by using persistent volumes used in the default configuration, you are already protected again restart failures at container level, or node failures. As long as you don’t specifically use the destroy commands from the Makefile or manually delete your Kubernetes deployments, your volumes will NOT be deleted at any time.

It is still recommended, as any project, to have different backups on top of those volumes to make sure you can recover in admin error deleting those volumes or other Kubernetes resources that would imply deleting those volumes.

For AWS, you can easily setup in your console to have snapshots of your cluster volumes be taken every day. For other provider there can be different ways to achieve this as well either manually or automatically.

It is up to the node operator to setup those extra backups of the core volumes to be able to recover in any kind of failures or human errors.

Some volumes would be more critical than others, for example Midgard deployment are also by default backed up by persistent volumes, so it can recover in case of container restarts, failures or node failures and the deployment being automatically scheduled to a different node, but if you were to delete the Midgard volume, it would reconstruct its data from your MAYANode API and events from scratch. For that specific service having extra backups might not be critical, at the time of the writing of that document, Midgard implementation might change in the future.

At minimum you should also securely backup your node keys: node_key.json and priv_validator_key.json. Do this as follows:

kubectl get pods -n mayanode

Copy the mayanode pod name, e.g. mayanode-abcdefg-hijkl and replace with {mayanode pod name} below:

kubectl cp mayanode/{mayanode pod name}:root/.mayanode/config/node_key.json node_key.json

kubectl cp mayanode/{mayanode pod name}:root/.mayanode/config/priv_validator_key.json priv_validator_key.json

For full disaster recovery (complete loss of cluster), it is possible to issue LEAVE command from the original BOND wallet and manual return of funds from your Yggdrasil. In this case you need a secure backup of make mnemonic (Yggdrasil mnemonic) and a working wallet that did the original BOND. See Leaving.

Node Security

The following are attack vectors:

  1. If anyone accesses your cloud credentials, they can log in and steal your funds

  2. If anyone accesses the device you used to log into kubernetes, they can log in and steal your funds

  3. If anyone accesses your hardware device used to bond, they can sign a LEAVE transaction and steal your bond once it is returned

  4. If anyone has your Yggdrasil make mnemonic phrase, including in logs, they can steal your funds

  5. If any GitLab repo is compromised and you git pull any nefarius code into your node and run make <any command>, you can lose all your funds.

Checking diffs

Prior to git pull or make pull updates, review node-launcher repo diffs:

git fetch
git diff multichain..origin/multichain

Regularly review patches in GitLab: https://gitlab.com/mayachain/devops/node-launcher/-/commits/multichain

When chain clients have updated tags (version number or sha256), inspect the GitLab diffs for the relevant image in https://gitlab.com/mayachain/devops and ensure the CI build checksum matches the expected. This ensures you are executing code on your node that you are satisfied is free from exploits. Some images such as Ethereum use the 'official' docker image, e.g. https://hub.docker.com/r/ethereum/client-go/tags.

RUNNING A NODE IS SERIOUS BUSINESS

DO SO AT YOUR OWN RISK, YOU CAN LOSE A SIGNIFICANT QUANTITY OF FUNDS IF AN ERROR IS MADE

MAYANODE SOFTWARE IS PROVIDED AS IS - YOU ARE SOLELY RESPONSIBLE FOR USING IT

YOU ARE RESPONSIBLE FOR THE CODE RUNNING ON YOUR NODE. YOU ARE THE NETWORK. INSPECT ALL CODE YOU EXECUTE.

Yggdrasil vaults

At the moment , there are five external chain get connected to MAYAChain, there are

  • Binance Chain

  • Bitcoin

  • Bitcoin cash

  • Litecoin

  • Ethereum

Each node has a unique address on each supported chain. This is their Yggdrasil vault. The network will fund all nodes Yggdrasil vaults and instruct them to perform small transactions in order to lower the number of computationally expensive TSS signatures.

Finding Yggdrasil addresses

To find your Yggdrasil addresses, firstly navigate to https://viewblock.io/mayachain/vaults

  1. Find your node address and click on the link.

Alternatively, visit any mayachain endpoint using your node address from make status:

http://mayanode.mayachain.info/mayachain/node/<Node Address>

Copy your secp256k1 public key and put it here:

http://mayanode.mayachain.info/mayachain/vault/<Public Key>

And look for addresses array at the bottom.

Finding Yggdrasil Private Key

  1. Run make mnemonic and securely store this.

  2. Visit https://iancoleman.io/bip39/ - or for more safety, clone the GitHub repo and open src/index.html offline.

  3. Paste in your mnemonic and choose CACAO - MAYAChain from the drop-down list.

  4. Your private key string is the first one: m/44'/931'/0'/0/0

Dealing with slash

When running a node, it is quite common to get slashed. The network relies on slash points to rate node quality. When your node is slashed, the first thing you need to do is run make status, and make sure all your chains are 100% in sync. If any of the external chains are not 100% in sync, then it will cause node to be slashed due to missing observations.

The best prevention is to have a cluster with lots of fast resources (cpu, memory, IO, network) and good backups/redundancy to prevent downtime.

Unfortunately even when your node is fully in-sync, it is still possible to be slashed due to external chain events. Here are some of the scenarios:

600 point slash (isolated)

When a node is slashed 600 points, it is typically because the yggdrasil vault failed to send an outbound transaction (more accurately: the transaction it was tasked to perform wasn't mined within a specified time limit). This most likely to happen on ETH chain. Here is what you need to check:

  1. Find your Yggdrasil ETH address. Use the previous instructions.

  2. Visit https://etherscan.io/ and paste in your Yggdrasil ETH address.

Potential problem 1: Transaction ran out of Gas (wrong estimate):

Cause: The network uses geth inbuilt eth_estimateGas function to estimate how much gas to set as limit for a transaction. On rare occasions this can return a number too low causing the transaction to fail. In this case there is nothing you can do - just wait it out. Note: your Yggdrasil ETH vault is now insolvent by a small amount of gas burned in the failed transaction that you will need to personally top-up prior to LEAVE. See section on LEAVE for more details.

Potential problem 2: Transaction didn't mine after 15mins

Cause: External unexpected Gas price hike. The network uses a 1.5x the previous N blocks as the gas rate to use. If there is a sudden increase in Gas price required due to unforseen external events, the transaction may not be mined. In order to make sure customer is paid in a reasonable time, there is a auto cancel transaction process build in bifrost. The network will keep monitoring the outbound transactions and if any of the outbound transaction signed out by yggdrasil vault didn't commit after 15 minutes, it will automatically cancel it and assign to another node to send.

You should be able to see a transaction like the following, which is sending 0 ETH back to itself which cancels anything pending:

600 point slash (repeated)

If your node is slashed 600 points continuously, it is likely your ETH vault is stuck or transactions sent to your local geth aren't propagated fully into mempools used by miners. This might happen if your local ethereum-daemon doesn't sync well with the network, even though it reports 100% in sync.

  1. Run make logs and choose bifrost

  2. Search your logs for cancel and look for transactions such as:

{"level":"info","service":"bifrost","module":"ethereum","time":"2021-05-28T14:43:58Z","message":"broadcast cancel transaction , tx hash: 0xec396286e54f9a95081e60424c73fcc0e580c47d2ffacb216ad9ef2d9c787082, nonce: 25 , new tx hash:0x5823abbee421f4c2ce230f5e7808b4dc6728ebeb5e21b62d95b812144d522672"}
  1. Find the last cancel tx in the logs (with the highest nonce).

  2. Search etherscan for the new tx hash transaction ID.

  3. Your geth is stuck and out of sync if etherscan does NOT find the new tx hash cancelled transaction. If you do not find your tx in etherscan - proceed as follows:

  4. Find the lowest nonce from Etherscan:

  5. Go to https://etherscan.io and paste your yggdrasil ETH address in the search box

  6. Find the last successful transaction send out from your yggdrasil ETH address. It is the top transaction in the list:

  • Click the transaction. Note the nonce used in the last good transaction (e.g. 39), and then plus 1 (e.g. 40). This is the lowest stuck tx nonce.

  1. Find the highest stuck nonce from your local geth:

  2. make shell then choose ethereum-daemon

  3. geth attach

  4. eth.getTransactionCount('{YOUR YGGDRASIL ETH ADDRESS}','pending') -- this is the highest stuck tx nonce

  5. exit and exit again.

  6. If the highest nonce is larger than your lowest nonce, it means there are a few transactions sent and stuck in the mempool of your local ETH daemon. You need to unstuck these from highest to lowest.

  7. Make a fork of https://replit.com/@mayachain/YggCancelETH

  8. Update index.js lastPendingNonce and firstStuckNonce. Also put in your hex encoded private key to KEY variable. Remember to add the 0x prefix which bip39 calculator above will not have.

  9. Update gasPrice to a very high gas price. The price should be higher than all the transactions stuck in the mempool. Recommend to spend more than 200 Gwei or double the highest from https://mayanode.mayachain.info/mayachain/inbound_addresses (which ever is higher).

  10. Run the script using node index.js. Note: you may need to install some dependecies first with npm install ethers. The output should look like:

    0x2aefdf705d1b28dfdf6b524ec697082326b23a2e62b7f25a60c1d2a1a9108243
    CANCELLING 39 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0x1cc81e968d68cfddcd8b605591b9ac7955ec7fdabf222678d3bcfaea4d7c4fd0
    CANCELLING 38 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xc0a15e2ec9c92300aae3924c26a26d64f964b2c2aba8d445fea9e54bf734e58a
    CANCELLING 37 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0x1d6311b0fb33717091ec4e86282f445216068a9e13d48748906a6abf375a8392
    CANCELLING 36 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xf1ed11a1172937ed37514ba9d4d315806e1c8f49a075dde7e0c0239eed30853e
    CANCELLING 35 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xfd73ab1c15a18edc13aa9a192d85c369b4ba02fa72aa04e836fd8e9d41b5159c
    CANCELLING 34 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0x45fd4c88168e9ce86716a45f1f0ea25b233a4affa90b866023b2ca7d25f57367
    CANCELLING 33 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xd2d283479386156b9c9441dd4630b25af42d5842b910c3aaa95e28e7bc499be2
    CANCELLING 32 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0x2d37f455c9066c2d8c8f5ae2f62a720123677707047f8a4e3ee61bb1c261015e
    CANCELLING 31 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xdce9df663b7c35eb7aefc52d5640b710e2af38979615ce7686729d37dd0da5a8
    CANCELLING 30 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0xccdd1b9d8e6ac0c7314fa39f78442c7702688db56091e8d379da75a3cfbce936
    CANCELLING 29 for 0x3eb68bF15A7A6769219A66C5c493fa7C40511E19
    0x43bad098782f7bac68e401390ef300dc97d9d1d1b322eb566de1ff06b2cf9b21
  11. make restart and choose ethereum-daemon

Constantly accumulating slash points

Problem: Sometimes bifrost fails to forward observations to mayanode, due to an account number / sequence number mismatch. Here is what you need to check:

  1. run make logs , and choose bifrost

  2. Search your bifrost logs for {"level":"error","service":"bifrost","module":"observer","error":"fail to send the tx to mayachain: fail to broadcast to MAYAChain,code:32, log:account sequence mismatch, expected 26806, got 26807: incorrect account sequence","time":"2021-05-30T07:28:18Z","message":"fail to send to MAYAChain"} 3. Solution: make restart and choose bifrost

"CROSS CHAIN CRYPTO EXPLOSION!? With Maya Protocol" by Degens for a Brighter Future
"Halborn Flash Videos with Aaluxx Myth of Maya Protocol" by Halborn Security
"What is Maya Protocol?" by Not Another Crypto Show
"Will DASH Plus MAYA Equal DEX Success? | Incubator WEEKLY" by Dash Incubator
"Citizen Cosmos: A citizen odyssey, ep. XVI, special mission - Maya Protocol" by Cosmos Citizen
"Maya Protocol - Non-custodial Cross-chain swaps on Kujira" by Just Crypto
Dash Podcast 206 with Aaluxx: Dash Activation on the Maya Protocol
"Aaluxx of the Maya Protocol on Expanding THORChain's Vision of Cross-Chain Swaps and Liquidity" by Digital Cash Network
Update on Dash-Maya Integration | Incubator WEEKLY
"An Intro To... Maya Protocol!" by Kuji Kast
"Maya Protocol Launch - Interview With AaluxxMyth About The Launch And Long-Term Plans" by Kyle Krason

Twitter Spaces

Mondays with Maya

#113 May 5, 2025 Title: BiorBank and Maya Protocol updates. 🔗 Listen here

Key Points

🔧 Maya Protocol Updates

  • Validator Churn Complete One of the final two churns for the validator airdrop snapshot. If you’re a node operator or bond provider in this set you’re in!

  • Sharding Stress Test Passed With shared → unshared vault mode tested, our sharding implementation is confirmed stable. We’re now scaling the validator set from 100 to 120.

🚀 Chain Integrations

  • Zcash: Node launcher PR is live. Validators are syncing—full rollout targeted by end of week.

  • Cardano: Stage testing begins shortly.

👤 Guest Spotlight: BiorBank

Hassen, a long-time Maya community member and privacy advocate, introduced BiorBank—a platform built around real-world usability and financial sovereignty.

Key Highlights:

  • New App Version: Coming soon on Google Play.

  • No-KYC Debit Cards: • Prepaid Visa • $1K per card (4 max) in US/Canada • $4K/month globally • Online shopping now; GPay, Apple Pay & physical cards coming

Their mission: Build tools people can actually use—privacy-first, no gatekeepers.

#102 Jan 27, 2025 Title: Asgardex and Maya Protocol updates. 🔗 Listen here

Key Points

MWM #102 Key Points

For Docs

Special Guest:

  • We had the pleasure of hosting the Asgardex team in this episode!

About Asgardex:

  • Asgardex has launched a brand-new website with a sleek design and improved user experience—be sure to check it out!

  • It's one of the few tools that makes sending custom memos and custom deposits easy, particularly useful for node operators.

  • Our partnership with Maya Protocol opens access to different chains and tokens like Radix and Dash, providing new opportunities for users.

  • What’s Next for Asgardex and Maya Protocol?

  • Enhancing node operations for better efficiency.

  • Integrating Zcash and Cardano with Maya Protocol.

  • Supporting more of Maya Protocol’s advanced features.

  • What’s Coming Next for Asgardex?

  • Chainflip integration: Expanding cross-chain capabilities.

  • Vultisig integration: Boosting security and asset management.

  • Secure assets.

Maya Protocol Updates:

  • Zcash integration: Smoke testing begins in just a few days.

  • Cardano integration: Testing is further out due to ECDSA development.

  • Version 115: Improvements, especially for affiliate features.

  • Second server: Itzamna will be installing it this week, boosting reliability and performance.

#101 Jan 20, 2025 Title: Aaluxx and Itzamna 1-on-1 Recap 🔗 Listen here

Key Points

ECC Summit with Zcash Team:

  • Warm welcome: Zcash is one of the most welcoming and supportive community we've encountered for an integration. Their team has been very supportive and collaborative in every step of the way.

  • Maya Protocol spotlight: Aaluxx and Itzamna presented Maya Protocol, explained how it works, and outlined the integration process. Excitement is high, and we're working hard to finalize this integration ASAP.

  • Liquidity and roadmap: A roadmap was created for the integration, starting with basic support for Zcash and gradually adding more layers until full support is achieved.

Technical Updates on Zcash Integration:

  • Tackling the Challenge: Zcash’s technical nature brings its challenges, especially with shielded transactions. Our team is fully focused on developing these features to ensure top-notch privacy and functionality.

  • Developer allocation: Two developers from 13Heavens are actively working on Zcash integration alongside our team.

Other Key Technical Progress:

  1. Affiliate features: These are being developed in parallel with Zcash efforts.

  2. Node expansion: 13Heavens is expected to onboard a significant number of nodes soon which will boost the network’s security and scalability.

  3. Asgardex sharding: Major strides here will boost network security and reliability.

  4. Cardano integration: Two developers are focused on this integration, ensuring code aligns with historical updates and future plans. Data is being handled via a local database in Bifrost for querying and transaction processing.

Pipeline Evolution:

  • Smoke tests: Efforts are ongoing to reduce test duration.

  • Assimilation tests: Modeled after Thorchain's process.

  • Sync tests: These ensure new versions function seamlessly with previous ones, a time-intensive but essential step.

  • Launcher: This tool will allow us to manage nodes efficiently and eventually run Thorchain and Maya nodes symbiotically.

#100 Jan 13, 2025 Title: MWM #100 Recap: Celebrating a hundred episodes! 🔗 Listen here

Key Points

For our 100th episode of Maya Weekly Meeting (MWM), we welcomed two special guests: Omecayan, Head of 13 Heavens, and Crypto XZ from THORWallet, our launch partner. Here’s a full breakdown of the highlights:

Maya Protocol Updates:

  • Zcash & Cardano Integration: Our dev team is making significant progress toward integrating these networks.

  • Zcash Conference: Aaluxx and Itzamna attended as guests to the event, they will be part of a talk and will participate in a workshop. They’re thrilled to build closer connections with the Zcash community and team.

  • TokenPocket Integration: Coming soon.

Reflecting on 100 Episodes:

  • We’re incredibly grateful to the tribe for making this milestone possible. Weekly MWMs provide an open platform for communication, encouraging community participation beyond our Discord platform everybody is welcome to join the conversation.

  • From a small, team to a growing network supported by 13 Heavens with Omecayan at the front (born as an inspiration from 9 Realms and THORChain) Maya Protocol continues to evolve with a bigger and stronger team.

Omecayan’s Vision for the Future:

  • Aztec Expansion: Excited to bring a new product that is in development to position Aztec as a core value generator for the network.

  • Cacao Staking Pool: A design is in the works for a staking pool that bonds cacao without impermanent loss, boosting network robustness.

  • Basket of Stablecoins: inspired in our whitepaper and roadmap, the implementation is under review, but this be a key ecosystem feature.

  • Node Access for the Community: 13 Heavens is now running its own nodes and will soon open access to the tribe.

Omecayan also called on the community to spread the word, promote the brand, and actively contribute to Maya’s journey.

Discussing Savers:

  • Savers, while a fantastic product to bring more users into the ecosystem, but it requires careful planning and significant design changes. It’s not a current priority but remains under consideration for the future.

THORWallet Highlights:

  • Crypto XZ shared updates on the Titan Token, which offers exciting benefits like 17% cashback and enhanced rewards for users. Stay tuned for their launch!

Celebrating Our Achievements:

  • We’ve grown from $162k to over $1 million in volume in less than two years—a 100x increase! While our goal is reaching $22 billion, we’re focused on consistent volume, ensuring sustainable value for liquidity providers, Maya token holders, and the ecosystem.

Thank you, tribe, for your incredible support. Here’s to the next 100 episodes and beyond! 🚀

#99 Jan 6, 2025

Title: Maya Updates & El Dorito 🔗 Listen here

Key Points

Special Guest: El Dorito

  • Rebrand: El Dorito shared their rebrand aimed at being more fun, unique, and relatable to their community.

  • Platform Vision: They're building a platform designed for everyday use, allowing users to:

    • Swap assets.

    • Manage their portfolio.

    • Earn yield—all in a self-custody manner.

  • Token Launch:

    • Feeless swaps available if you hold a specific amount of their token.

    • Focused on reducing user friction, making DeFi more accessible.

  • Infrastructure Development:

    • Revamping their UI/UX to deliver a standout experience.

    • Building their own router and SDK to create infrastructure for other apps and backends.

  • Upcoming Integrations:

    • Ready to support Cardano and Zcash when Maya goes live with the integration.


Maya Protocol Updates

  • Ecosystem Health:

    • Volume is back to healthy levels, and everything is operating smoothly.

    • The ThorWallet refund issue has been resolved.

  • Development Progress:

    • Slow but steady progress on the Maya node, with clarity on version 118.

    • Teams working in parallel on Zcash and Cardano integrations.

    • Wallet integrations are on the horizon.

  • Alpha Alert:

    • Token Pocket feature coming soon to Maya Protocol!

#98 Dec 30, 2024 Title: V115 and future plans 🔗 Listen here

Key Points

  • Version 115 Released:

    • Version 115 launched last Monday with updates required for Thorchain.

    • Thorchain has been successfully unhalted, and stability has been restored.

  • XRD Unhalted:

    • XRD is now operational, with good stability across the platform.

    • While everything is running smoothly, the team remains ready to make adjustments if needed.

  • ETH Halt and Upcoming Version 116:

    • Following an issue reported by ThorWallet on a large swap, ETH was halted last Friday as a precautionary measure.

    • Our team fully supports the node's decision and is finalizing version 116 to unhalt ETH.

    • Version 116 is expected to roll out tomorrow.

  • Future Integrations:

    • Development for Cardano and Zcash integrations is underway, with promising progress.

    • We are thrilled to participate in the upcoming Zcash Convention this January. Aluxx and Itzmana will represent the team and engage with the Zcash community.

  • Node Churn Progress:

    • A new node churn occurred after a while, and we’re working towards having consistent churns every 7-8 days moving forward.

#97 Dec 23, 2024 Title: KeepKey’s Innovations & Maya Protocol Updates 🔗 Listen here

Key Points

Mondays with Maya #97 brought exciting developments from KeepKey, a hardware wallet championing privacy and innovation, as well as key updates on Maya Protocol’s progress. Here's a breakdown of what you need to know. KeepKey Highlights

  • Privacy-Centric Design: KeepKey ensures seamless multi-chain asset management without requiring KYC.

  • Open Source Commitment: Their entire stack is open source, fostering transparency and community-driven development.

  • Thorchain Ecosystem Integration: Designed to connect assets across Thorchain, KeepKey is enhancing the decentralized finance (DeFi) experience.

  • Browser Extension:

    • A new browser extension simplifies integrations.

    • Minimal dependencies required—use the window function to enable transfers, swaps, and other multi-chain actions.

    • This tool reduces friction for developers and expands functionality for users.

👉 Take Action:

  • Explore the KeepKey browser extension and provide feedback—it’s essential as they prepare for the big announcement in January

    Maya Protocol Updates

    • Version 115:

      • The next release is designed to align with the Thorchain hard fork.

      • Smoke and synth tests were completed; the team is now conducting staging tests.

      • Minor issues with messaging arose, and updates will follow via Discord.

    • Radix Integration:

      • Stuck transactions have been resolved, but integration is temporarily halted until version 115.1 to address node synchronization issues.

      • The Radix team is actively collaborating on the fix.

    • Future Integrations:

      • The Maya team is actively working on new integrations, paving the way for broader adoption and enhanced functionality

#96 Dec 16, 2024 Title: Ctrl Wallet and Maya Protocol updates. 🔗Listen Here

Key Points

Welcome to another Mondays with Maya, where we bring you the latest from the Maya Protocol and beyond! Today’s session was packed with excitement:

  • A special guest appearance by Ctrl Wallet, revealing their bold rebrand and innovative features.

  • Key updates from Maya Protocol, including bug fixes, upcoming version 1.15, and exciting new integrations.

  • Plus, reminders about our ongoing Advent Calendar challenges!

Special Guest Spotlight: Ctrl Wallet

  • Bold New Look: Ctrl Wallet unveiled their rebranded identity with a sleek, innovative design that focuses on boldness and user experience.

  • Multi-Chain Extension: The first-ever multi-chain wallet extension, designed for seamless navigation, allows users to see their total crypto balance and its breakdown by wallet and account—empowering them with a clear understanding of their holdings.

  • Custody Equals Freedom: Ctrl Wallet champions the idea that true user freedom lies in custody, redefining the DeFi wallet experience.

  • Comprehensive Features: Tribe members can use Ctrl Wallet to send, receive, and connect with other interfaces that support Maya Protocol.

  • Future Innovations: Exciting features are planned for 2025, hinting at even more dynamic functionality.

  • Action Step: Explore the Ctrl extension and their mobile app on iOS and Android to experience the future of wallet management.

Maya Updates: Key Highlights

  • Cacao Price Fix on CoinGecko: A bug affecting the Cacao price display on CoinGecko has been resolved. Maya apologizes for any inconvenience caused.

  • Version 1.15 in the Works: The next major release will include:

    • Updates to align with Thorchain’s v3 hard fork (Rune will remain halted until further notice).

    • Refunds as part of the version’s rollout.

  • New integrations underway: Zcash and Cardano integrations are progressing, with great advancements being made.

  • The Advent Calendar Dynamic runs until December 24th.

    Challenges and riddles will increase in difficulty each week, offering even better prizes for the tribe’s participation.

#95 Dec 9th, 2024 Title: Maya Protocol and Junction 🔗Listen Here

Key Points

Today at MWM, we were happy to host Junction as a special guest to discuss our upcoming integration. Junction was created to address the need for a unified DeFi platform, offering comprehensive on-chain access to all DeFi tools in one place. Their mission empowers users by giving them full control

  • Junction Highlights:

    • Unified DeFi Access: Junction’s API supports seamless cross-chain interactions across 100+ blockchains, simplifying multi-chain transactions.

    • Enhanced User Experience: Features like gas fee abstraction and an intuitive UI make DeFi more accessible and engaging.

    • Maya Integration Benefits: Integrating with Maya Protocol enables native swaps in other ecosystems that nobody else support, expanding asset accessibility and improving transaction efficiency.

    • Future Developments: Junction will launch with all chains supported by Maya and continue adding new ones we integrated.

    • Visit Junction’s website and subscribe to their newsletter to stay updated on the latest developments.

  • Maya Protocol Updates:

    • Progress on integrating Zcash and Cardano is underway—stay tuned for updates.

    • Node synchronization issues from V114 are being resolved, with enhanced redundancies in development.

    • We are very excited for 2025 with plans for new products, increased volume, and broader ecosystem support.

#94 Dec 2nd, 2024 Title: V112 and V113 🔗Listen Here

Key Points
  • Version 1.12

    • XRD Bonding: XRD is now bondable.

    • Queue Optimizations: Adjustments in Ethereum and Arbitrum Bifrost to prevent the queue from getting stuck.

    • Zcash Refund Addresses: Refund addresses will be required we are paving the way for our Zcash integration.

    • Fee Collector Module

    • Multiple affiliates perfect for upcoming integrations and UIS

    • Clear Pending Liquidity: Implements Thorchain’s solution to manage incomplete asymmetrical liquidity adds.

    • Whitelisted several DEX agregation: l Radix tokens, refund vaults, and smart contracts.

  • Version 1.13

    • Fixes: Bug fixes for Kujira and Arbitrum functionality.

    • XRD Testing: Continued testing of Radix functionality.

    • New Integrations: InstaSwap and Ctrl Wallet are now integrated go and check them out.

  • What’s Next?

    Zcash Integration:

    • We're actively working with the side by side with Zcash team to have this integration as soon as possible.

    Stay tuned for more exciting developments!

#93 Nov 25, 2025 Title: Cross-Chain Milestones: Dash, InLeo, and Maya Protocol. 🔗Listen Here:

Key Points
  • Building Bridges: Dash, InLeo, and Maya Protocol in Action

    This week on Mondays with Maya, we had the pleasure of hosting special guests from Dash and InLeo for an insightful conversation about their projects and how they connect with Maya Protocol.

    From the game-changing Dash Evolution upgrade to InLeo’s decentralized platform for content creators, and Maya Protocol’s role as the bridge between ecosystems, this session was all about milestones, innovation, and collaboration.

    Here’s a quick recap:

    Dash Evolution: A Decade of Progress

    • 9 Years in the Making: Dash’s Evolution upgrade launched in July 2024 and was activated in September, marking a significant leap forward in usability and functionality.

    • Breaking Records: Over 1,200 transactions in a single day, pushing Dash closer to becoming a real-world, data-focused blockchain.

    • Next-Gen Wallet Features:

      • Register unique usernames for simplified payments.

      • Privacy-focused design conceals actual addresses for secure, discreet transactions.

      • A new dash wallet makes private, global transactions user-friendly.

    InLeo: Decentralized Content for Creators

    • Blockchain-Powered Creator Platform:

      • Combines microblogging, long-form posts, videos, and premium content creation.

      • Built on the Hive blockchain, ensuring user ownership and decentralized storage of all content.

    • Own Your Data:

      • All content is secured with private keys—no intermediaries involved.

    • Dual Revenue Streams:

      • Earn Hive dollars and Leo tokens through upvotes from the rewards pool.

      • Instant payouts reward both creators and curators.

    Dash x InLeo x Maya: Seamless Integration

    • Dash Meets Hive Ecosystem:

      • Dash users log into InLeo with their wallets and gain access to Hive’s creator-driven ecosystem.

      • Activities on the platform automatically earn Hive dollars and Leo tokens.

    • Effortless Swapping via Maya Protocol:

      • Hive and Leo tokens are auto-swapped into Dash, enabling seamless cross-chain transactions.

    • Expanding Utility:

      • Dash users explore Hive’s decentralized content economy.

      • Hive users gain opportunities to transact using Dash’s private digital cash.

    Why It Matters

    • Cross-Chain Interoperability: Maya Protocol bridges ecosystems, ensuring low fees, seamless swaps, and enhanced utility for tokens.

    • Real-World Impact:

      • Dash empowers sovereign digital cash for everyday use.

      • InLeo redefines decentralized content creation and monetization.

    • Enhanced Ecosystem Benefits:

      • Users enjoy greater token utility and opportunities across Dash, Hive, and Maya.

    Learn More: Catch the full discussion on Mondays with Maya, featuring Dash, InLeo, and Maya Protocol

#92 Nov 18, 2024 Title: Mondays with Maya x Vultisig 🔗 Listen here

Key Points
  • This week’s Mondays with Maya featured a special guest, Vultisig, the next standard for crypto wallets. In this session, we explored how Vultisig is redefining wallet security and simplicity, its ambitious roadmap, and its partnership with Maya Protocol. We also shared important updates on Maya’s progress.

    Vultisig Highlights:

    • Enhanced Security:

      • Two-factor authentication (2FA) using two devices (Fast Vaults).

      • Public key exposure only, with no seed phrases to steal.

    • Versatile Use Cases:

      • Replace MetaMask for daily users.

      • Replace Ledger for secure cold storage.

      • Replace institutional services with a scalable, robust solution.

    • Comprehensive Product Suite:

      • iOS/Android: VultiSigner & VultiWallet.

      • Windows/Mac: Desktop wallet support.

      • VultiConnect: Seamless integration with apps and DEXs.

    • Token & Airdrop Updates:

      • Token not launched yet, but airdrop details for early adopters are coming soon.

      • Stay updated via Vultisig’s official channels.

    • Maya x Vultisig Partnership:

      • Enabling secure cross-chain transactions.

      • Thorwallet rebranding to VultiWallet is just the beginning they are bringing full DeFi functionalities like LPs and Savers.

      • Exciting new features like plugins are in development.

    Maya Protocol Updates:

    • Airdrop Countdown:

      • Only 11 churns left before the airdrop deadline—get ready!

    • Version 1.12 Updates:

      • StageNet testing ongoing with pools for LPs, custom refund addresses (useful for Zcash), an affiliate collector module, and pending liquidity features.

      • Significant improvements for Arbitrum to enhance user experience.

      • Churns remain halted until version 1.12 is finalized, ensuring a smoother rollout.

#91: Nov 11, 2024

Title: Exploring the Future of DeFi with Edge Wallet and Maya Protocol 🔗 Listen here

Key Points
  • We welcomed Edge Wallet for an in-depth conversation on their recent integration with Maya Protocol. Paul, from Edge Wallet, shared the evolution of the project since its start in 2014, highlighting a 2018 revamp that introduced new features like buy, sell, and trade options.

  • Edge Wallet stands out for its privacy-preserving approach and a user-friendly interface designed to feel as accessible as a centralized exchange while maintaining decentralized security and key management.

  • What's Next for Maya and Edge The discussion covered exciting upcoming features, including Savers and a highly anticipated Zcash integration. Paul and Aaluxx shared insights on the future of DeFi.

#90: Nov 4, 2024 Title: Reactivation & Validator Success 🔗 Listen here

Key Points
  • Trading is back! Join us for an update on the successful churn and validator updates. Find out what’s in store for our next steps and roadmap.

#89: Oct 28, 2024 Title: Trading Halted & Milestone Records 🔗 Listen here

Key Points
  • Trading is temporarily paused for validator maintenance, but we’re celebrating huge milestones: $200 million monthly and $8 million daily records. Thanks to all of you for being a part of this!

#88: Oct 14, 2024 Title: Dive into Maya Names 🔗 Listen here

Key Points
  • We’re on the verge of breaking our highest volume record! Plus dive into Maya names.

#87: Oct 07, 2024 Title: New Volume Record & Node Testing 🔗 Listen here

Key Points
  • This week, we hit a new volume record in just three days! Learn about our testing and improvements for enhanced operations.

#86: Sep 29, 2024 Title: Tier 1 Airdrop Verification & Team Growing 🔗 Listen here

Key Points
  • Tier 1 list verification is now available on Discord! We’re also expanding our team—apply now and join our tribe.

#85: Sep 16, 2024 Title: Version 112 Final Testing 🔗 Listen here

Key Points
  • We’re polishing the final details for version 1.12! With the final merge in sight, learn about the last steps before launch.

#84: Sep 9, 2024 Title: Astrolecent Partnership 🔗 Listen here

Key Points
  • We welcomed our guest from Astrolecent to discuss the project, its roadmap, and our upcoming integration. Get to know what's in store!

#83: Sep 1, 2024 Title: Snapshot & Version 1.12 Updates 🔗 Listen here

Key Points
  • The Tier 1 snapshot has been paid out! Plus, we’re working on version 1.12 and introducing the Cross-Chain Crusaders. Find out what’s happening on Discord and Telegram.

#82: Aug 05, 2024 Title: CacaoSwap & Radix Guests 🔗 Listen here

Key Points
  • In this edition of Mondays with Maya, we’re joined by CacaoSwap and Radix! Learn more about the projects, milestones, and exciting upcoming integrations.

#81: Jul 29, 2024 Title: Radix Goes Live 🔗 Listen here

Key Points
  • Exciting news! Radix is live, and our team is seeding the pool. Learn about this new integration and its potential as we dive into how Radix supports additional tokens.

#80: Jul 22, 2024 Title: Post-Rare Evo Updates & XRD 🔗 Listen here

Key Points
  • Back from Rare Evo with all the details! Get the scoop on our latest updates and everything XRD. Dive into the highlights from the convention and find out what's next.

#79: Aug 05, 2024 Title: Version 1.11 Preview & New Partnerships 🔗 Listen here

Key Points
  • Sneak peek at version at version 111

#78: Jul 29, 2024 Title: New Integrations & Project Goals 🔗 Listen here

Key Points
  • We share updates on our latest integrations and discuss our roadmap for the year ahead.

#77: Jul 22, 2024 Title: Project Roadmap & Tokenomics Discussion 🔗 Listen here

Key Points
  • We explore our roadmap for the rest of the year and discuss the project’s unique tokenomics.

#76: Jul 15, 2024 Title: Mainnet Testing & New Bondable Assets 🔗 Listen here

Key Points
  • Streaming swaps are tested on mainnet, with new bondable assets on the way.

#75: Jul 08, 2024 Title: Last Testing for Streaming Swaps 🔗 Listen here

Key Points
  • Version 1.10 is here! Get the latest on final tests for streaming swaps.

#74: Jul 01, 2024 Title: Finalizing v1.10 🔗 Listen here

Key Points
  • We’re close to the finish line! Testing and polishing continue as v1.10 nears completion.

#73: Jun 24, 2024 Title: Streaming Swap Testing & New Integrations 🔗 Listen here

Key Points
  • The streaming swap code is done! We’re conducting over 200 tests and making progress on Zcash, Radix, and Cardano integrations. Plus, El Dorado joins to discuss their project.

#72: Jun 17, 2024 Title: Roadmap Growth & Streaming Swaps Strategy 🔗 Listen here

Key Points
  • We dive into upcoming integrations and share how our approach to streaming swaps stands out from Thorchain’s.

#71: Jun 10, 2024 Title: Validator Node Churn & Streaming Swap Update 🔗 Listen here

Key Points
  • Exciting progress as our second Thorchain validator node churns, plus news on streaming swaps.

#70: Jun 03, 2024 Title: Team Growth & Streaming Swaps Progress 🔗 Listen here

Key Points
  • New team members join as we advance streaming swaps and prepare for Radix integration.

#69: May 27, 2024 Title: XDEFI Integration & Project Roadmap 🔗 Listen here

Key Points
  • Guests from XDEFI join to share details about their project, achievements, and our upcoming integration.

#68: May 20, 2024 Title: Cardano Progress & Bifrost Setup 🔗 Listen here

Key Points
  • Get the latest on Cardano’s Node Launcher and the Bifrost setup, plus updates on the push for the Catalyst grant.

#67: May 13, 2024 Title: Rango Exchange Integration & Airdrop Update 🔗 Listen here

Key Points
  • Rango Exchange guests discuss their project and roadmap. Plus, the Tier 1 airdrop payout and eligible node and bond provider list are now available on Discord.

#66: May 06, 2024 Title: ThorSwap Launch & Streaming Swaps Sneak Peek 🔗 Listen here

Key Points
  • We celebrate our smooth integration with ThorSwap, updates on streaming swaps, and share progress on Radix, Zcash, and other exciting updates.

#65: Apr 29, 2024 Title: What’s Next for ThorSwap & v1.10 Updates 🔗 Listen here

Key Points
  • ThorSwap guests cover their latest features, including Swap Kit, and we share progress on v1.10.

#64: Apr 22, 2024 Title: Exploring Zcash Integration 🔗 Listen here

Key Points
  • A special episode with Zcash, discussing the upcoming integration, its importance, and what to expect.

#63: Apr 15, 2024 Title: Arbitrum Live & New Pools on MayaScan 🔗 Listen here

Key Points
  • Arbitrum integration is now live! Explore 16 new pools available on MayaScan.

#62: Apr 08, 2024 Title: The Future of DeFi with JP Thor & Chad B 🔗 Listen here

Key Points
  • In one of our biggest Spaces yet, JP Thor and Chad B discuss the future of DeFi, diving deep into Thorchain, Maya, and the evolution of multi-chain.

#61: Apr 01, 2024 Title: Turbo Trade Integration & KeepKey News 🔗 Listen here

Key Points
  • Learn about our new integration with Turbo Trade, plus exciting news about MayaChain now live on KeepKey.

#60: Mar 25, 2024 Title: Node Launcher & Arbitrum Sync Update 🔗 Listen here

Key Points
  • The Node Launcher is live, and node synchronization is underway. Catch the latest on Arbitrum progress and more.

#59: Mar 18, 2024 Title: Future of DeFi with ThorWallet & MayaScan 🔗 Listen here

Key Points
  • Special guests from ThorWallet and MayaScan dive into the future of DeFi. Aaluxx shares the latest on v1.09 and upcoming Arbitrum integration.

#58: Mar 11, 2024 Title: Key Points: CacaoSwap Crew, Savers, and Arbitrum Integration. 🔗 Listen here

Key Points:
  • In this special episode, we hosted the CacaoSwap team, who shared their latest alpha, roadmap, and exciting future plans. We also covered updates on our next big release featuring Savers and our upcoming Arbitrum integration.

#57: Mar 04, 2024 Title: CacaoSwap & Upcoming Release Highlights 🔗 Listen here

Key Points
  • Join us for alpha on CacaoSwap’s roadmap, plus key updates on the next release for savers and exciting plans ahead.

#56 | Feb 26, 2024 Title: Deep Dive into Fees with ThorChain University 🔗 Listen here

Key Points
  • Special guests from Thorchain University and ThorWallet cover everything you need to know about inbound, outbound, and affiliate fees in DeFi.

#55 | Feb 19, 2024 Title: Kenso Finance Integration & v1.09 Updates 🔗 Listen here

Key Points
  • Guests from Kenso Finance join to discuss their upcoming integration, what to expect, and development updates as we polish v1.09 for launch.

#54 | Feb 12, 2024

Title: Early Node Snapshots & New Integrations 🔗 Listen here

Key Points
  • The latest on early node snapshot payouts, Cardano proposal voting updates, and KeepKey testing. Plus, news on upcoming integrations with Kenosha Finance and CacaoSwap.

#53: Feb 05, 2024 Title: Dev Updates & DeFiSpot Insights

https://x.com/i/spaces/1vOxwjPWNzPJB

#52: Jan 29, 2024.

Title: XDEFI Integration Takes Maya to the Next Level - Get Ready for the Epic Launch!

https://twitter.com/i/spaces/1vOGwjBZmqEKB?s=20

Key Points

  • Exciting updates from the XDEFI integration! We've successfully integrated XDEFI to Maya we are in the final testing phase before the official launch, so stay tuned for the big reveal.

  • Our team has been actively working on version 109 which includes Arbitrum and some minor fixes. We are happy to announce that we will be back to the normal routine of node cycling every Monday and Thursday.

  • We are preparing Arbitrum for some smoke testing, with over one hundred simulated transactions covering various scenarios. If the initial smoke test goes well, we'll proceed to the next step: stage testing

  • In terms of new integrations, Keepkey is on the horizon, undergoing final adjustments before becoming the first hardware wallet to support Maya. More integrations are in the pipeline, so expect exciting developments soon.

  • If you're interested in helping us grow our ecosystem, consider participating in our catalyst proposals and spreading the word about Maya's value. Voting is open until February 8th. Check them out here: https://cardano.ideascale.com/c/idea/112584 https://cardano.ideascale.com/c/idea/11252

  • Don't forget to join the Zealy quest – an opportunity to earn $CACAO and $Aztec while actively contributing to our ecosystem's growth. Your involvement is crucial, so let's get started!

#51: Jan 22, 2024.

Title: Churn, Arbitrum, & XDEFI

https://twitter.com/Maya_Protocol/status/1749446939387854954

Key Points
  • Hey, great news on the Rune front! Our team has sorted out the outbound transaction fees and has been on a manual refund spree, especially for those transaction wizards out there. If you're more of a one or two-transactions kind of person, don't worry – you'll get your share automatically in version 109.

  • All our chains are doing their thing without a hitch. The integration with Asgardex is making leaps and bounds, and we're in the final testing stretch for swaps. Midgard is also getting some fine-tuning love from our end.

  • Big news – get ready for a churn! We've done the test bonding and unbinding dance, and everything seems to be grooving nicely. The churn is on the horizon, so if you’ve got pre-churn preparations, bond providers and node operators, now's the time. Remember, this churn and the next one put you in the running for the second early node Maya airdrop. It's a good chance to grab some extra goodies!

  • What's on the horizon? The launch of ARBITRUM I and the router is coming up. We're mirroring the router from Ethereum, which is not just a time-saver but a game-changer.

  • Get ready to cast your votes in the Cardano proposal, starting this Friday. We'll hang out in Twitter spaces with Maestro – big things on the horizon.

  • Next week, the ALPHA Maya chain is making its debut on XDEFIi. Keep your eyes peeled for more updates.

  • The Mids are minted, and there's a lot more goodness to come. Stay tuned for some extra perks and cool info.

  • And guess what? We're dropping a new version of Maya Quest with a fresh prize pool of Maya and Aztec. We've revamped the rules to keep it fair and square, so everyone's got an equal shot at winning. We'd love to see you in the game!

#50: Jan 15, 2024.

Title: Arbitrum Addition, Refunds for Overpaid Fees, and Rare Shrimp Collection.

https://twitter.com/Maya_Protocol/status/1746910372463009950

Key Points
  • Our team has been focused on addressing mainnet issues, such as resolving the fee concern with rune transactions and fixing an Ethereum-related glitch.

  • These matters have been successfully sorted out, and everything is functioning smoothly. For users who experienced higher fees while swapping rune, rest assured that we will be refunding the difference in version 109—be sure to keep an eye out for this update.

  • Now that these minor issues are resolved, we are gearing up to restart our nodes and prepare for the early node snapshot. Stay tuned for more exciting developments!

  • Speaking of version 109, it will not only contain crucial fixes but also pave the way for the addition of ARBITRUM.

  • In other news, the Shrimp Collection Mids minting event is just around the corner! Join us this Friday, January 19th, at 3 pm UTC. The mint price is set at $USK, and you'll need $USK on @StargazeZone to participate.

  • Furthermore, we extend an invitation to our tribe to join the Rare Evo: A Blockchain Event next summer. Consider buying a ticket and visiting us—our team will be there, and we would love to meet you in person. Exciting times ahead!

#49: Jan 8, 2024.

Title: Get Ready for the NFT Mids Collection.

https://twitter.com/Maya_Protocol/status/1744373674470253006

Key Points
  • Great news Version 108 was realized yesterday and adopted by 100% of nodes. The chain is in good health, although we have to do some checks on features discovered that we will do today.

  • We encountered a minor issue: 100% of validators adopted v108 during the update. One of our full nodes that is used as infra for the endpoints that people typically use was corrupted. We needed to reset and resync; we analyzed how the version deploys in the sense that all the features work correctly. We will do this later today to ensure everything is good and excellent.

  • Savers is just around the corner and churning regularly as well. We expect to have Savers and churns by the end of the week, so stay tuned.

  • What's on the horizon? Brace yourselves for the upcoming NFT Mids collection! We'll release later this week a blog post with all the essential details, including dates, benefits, and more.

  • In the coming week, Cardano's proposal is set to go live for voting. Join us in a Twitter space with Maestro as we collaborate with him on this exciting proposal.

  • Meanwhile, our team is working on version 109, featuring Arbitrum. Making great progress and we're optimistic about a swift release if we don’t have any significant issues on mainnet or in the bifrost , the roadmap remains unchanged, maintaining a clear.Anticipate new interfaces arriving soon – stay connected for further updates.

#48: Jan 2, 2024.

Title: Breakthroughs from Maya Protocol's Latest Meeting! Secrets, Surprises, and More Unveiled!

https://twitter.com/Maya_Protocol/status/1741897158104616990

Key Points
  • Maya will have a booth along with THORChain in ⁠@RareEvo⁠ in LA in August. Welcome to join, if you’re near.

  • ⁠@AaluxxMyth⁠ and Gima plan to travel to Europe before the upcoming event to improve their presence and seize business opportunities through networking.

  • Aaluxx will also attend Denver and possibly consensus but without a booth, for the same purpose.

  • Maya Ledger Integration is in final stages.

  • A very good release Candidate for savers (Version 108) is being tested. MAYANode issues to be fixed, and will also have data pass-through, which is the first step for THORChain aggregation

  • An NFT collection "Mids" in collaboration with ⁠@ShrimpClubNFT⁠ will launch within the next week. They will be priced at ⁠$5⁠ each on the Stargaze platform. The purpose is to expand the community, with a chance to earn ⁠$CACAO⁠ as well.

  • Version 109, will have the Arbitrum integration, which will be implemented shortly after version 108.

  • Version 110 will have streaming swap. After that we will focus on fine-tuning and making adjustments based on the current state.

  • After Version 110, will work on Cardano and other chains.

  • Team is expanding, and all versions are being worked on at the same time, as well as the Ethereum Router to enable different interactions with ERC-20s, that will open many new possibilities.

#47: Dec 18, 2023.

Title: Happy Holidays! WE appreciate your Support This Year.

https://twitter.com/Maya_Protocol/status/1736763373369393233

Key Points
  1. The Shrimp Club is thrilled to announce the launch of an NFT (Non-Fungible Token) collection of1,000 unique NFTs with cool rewards for users. This initiative connects chains and fosters a sense of community across ecosystems, bridging the Kujira and Maya protocols for increased awareness.

  2. We are very happy to announce that our team has been making great process with the work of KeepKey and Ledger, thanks to our new developers. Stay tuned for forthcoming updates.

  3. We successfully migrated from our Genesis nodes to an entire network of liquidity nodes, node operators, and bond providers. This collaborative effort is paramount to ensuring the security of our network.

  4. Version 108 introduces a substantial fix: a store migration to address dropped transactions. Be vigilant for this update, as it contributes to a more seamless user experience.

  5. Exciting developments are underway for Version 109, which includes the implementation of Arbirturm and Exchange AS. Node Launcher received its first green light, and our team is working hard to have this version as soon as possible.

  6. Asgardex continues to perform exceptionally well, and we are saticefised with its positive results.

  7. If you would like to learn more about Cardano integration, make sure to join tomorrow's Twitter Spaces "coffee with Cardano" and get to know more details about this integration.

  8. Participate in our latest edition of Maya Quest! Explore,participate and earn rewards.

#46: Dec 11, 2023.

Title: $1 Billion Transactions, Exciting Partnerships, and More!

https://twitter.com/Maya_Protocol/status/1734226620741796030 https://twitter.com/Maya_Protocol/status/1734232460643258430

Key Points

1. Tier1 Airdrop:

  • Tier 1 members, check your wallets! The first new Maya is ready for you to print some chocolate. Big thanks for your support from March till now!

  • Two more airdrops are on the way, so stay tuned for the upcoming airdrops.

2. Early Node Airdrop:

  • Airdrop alert! We will be having a final churn and after that churn, we'll take a snapshot and initiate payouts. Keep an eye out for the next two airdrops.!

3. Milestones Achieved:

  • Celebrating $1 billion $CACAO transacted!

  • Record-breaking 110,000 swaps and 10,000 wallets – a fantastic achievement. Exciting times ahead!

4. Welcome to New Dev Team:

  • The 1st dev, a returning talent, has already made a significant impact on Maya Protocol..

  • The 2nd dev brings expertise in node development, contributing to liquidity nodes format.

  • The 3rd dev will kick off effective and safe code reviews starting in January.

5. Exciting Partnerships:

  • Shoutout to the Shrimp Club NFT – an exciting partnership in the works. Stay tuned for details of this NFT collection it will be dope and it aims to attract the Kujira community.

  • Dash community reached 1 million in TVL. Thank you for your support!

6. Maya Interfaces and Integration:

  • Anticipate more Maya interfaces using Exchange AS.

  • ASGARDEX integration is a huge step. It's now open source, downloadable, and supports various functions, including sending, receiving, and storing $Cacao and $Maya tokens.

7. Bare-Metal Migration:

  • Maya is now fully migrated to bare metal. Exciting developments on Stagenet and Mainnet nodes, testing, and access to impressive APYs.

  • 80% of validators are now running on bare metal, ensuring a safer and more resilient infrastructure.

8. Maya Swap Improvements:

  • The Maya Swap feature now allows trading $CACAO and $Maya in an order book system. Experience the enhanced speed and functionality on Maya's scan!

9. Arbitrum:

  • We are currently working with Arbitrum Foundation to launch a proposal for the new chain integration. Look forward to Arbitrum on version 109! Stay connected for more updates, and thank you for being part of this exciting journey!

#45: Dec 4, 2023.

Title: 10,000 Followers, New Integrations, and Special Airdrops Await!

https://twitter.com/Maya_Protocol/status/1731689903228883340

Key Points
  • Our team is actively working on Version 108, and while we've faced some delays, primarily due to the ongoing bare-metal migration for our Genesis nodes, we're optimistic about completing it by the end of the week. With the help of our new two developers.

  • Progress on the exchange front has been commendable. A big shout-out to our community developers for their awesome work, the integration with this exchange will also make the implementation of Asgardex smoother and faster.

  • Exciting developments on the Asgardex front! Soon, the first version related to Maya activity involving $cacao and Maya transactions will be out. This will enable users to send custom memos and other assets through Asgardex.

  • This Tuesday the distribution of Airdrops and Ambassador will be payout. Additionally, the Tier 1 LP Airdrop is scheduled for the upcoming Tuesday. An early node airdrop is also expected this Monday, catering to the third to last Monday, the second to last Monday, and the previous churn from the snapshot."

  • For those considering maximizing their Maya position, an enticing opportunity awaits. A special airdrop, allocating 17,500 Maya tokens, will be distributed. Eligibility includes anyone churning on Monday, Thursday, or the following Monday. This airdrop is split evenly between node operators and bond providers.

  • We are very excited to announce the integration of Maya to LeapWallet, a non-custodial gateway to the COSMOS universe! Now you can Seamlessly send, receive, or HODL your $CACAO and $MAYA tokens through Leap Wallet.

  • Exciting news! Our proposal for Maya integration with XDEFI has received the green light, thanks to the support of our voters. We're thrilled about the enthusiasm from the XDEFI community. This integration promises to simplify transactions significantly.

  • We are celebrating a significant milestone – surpassing 10,000 followers! We're thrilled to welcome new members into our tribe. If you're new to Maya Protocol, explore our website for tools, articles, guides, and our white paper. Join our Discord for any queries; our team is here to assist you.

#44: Nov 28, 2023.

Title: New Cardano Catalyst Proposal, Churn Routine Resuming, with Upgrades and Exciting Features

https://twitter.com/Maya_Protocol/status/1729183376383631605

Key Points
  • Churn scheduled in a few hours; nodes and bond provider

  • Excited to resume churn routine next week after resolving delays due to Kujira issues with TSS (Threshold Signature Scheme).

  • Some $Kuji outbound transactions were stuck.

  • Assuring users that some were paid, others had to be dropped, but all will be resolved.

  • Urgent fund needs can be addressed through a help desk ticket for manual refunds.

  • Version 108 will include fixes to prevent similar bugs in the future.

  • Ongoing votes in ShapeShift and XDEFI to prioritize adding Maya to their interfaces.

  • We encourage users of Fox and XDEFI to vote, comment, and spread the word.

  • Preparing a new Catalyst proposal for Cardano in collaboration with the Cardano team we are very optimistic about the chances we have of success.

  • Maya Quest ending on November 30th with a reward of 6,000 Maya tokens, don’t miss your chanse and participate.

  • Despite small errors, airdrop for our Tier1 will be sent this weekend. Thanks for your continued support.

#43: Nov 20, 2023.

Title: "Maya's Tier1 LP Airdrop is Just a Stop - Major Updates and Airdrops Coming Soon!"

https://twitter.com/Maya_Protocol/status/1726616426159784051

Key Points
  • Exciting news! The Tier 1 LP airdrop is coming soon, with a slight delay due to the huge number of addresses being reviewed. But trust us, it will be worth the wait! Keep your eyes peeled for the airdrop.

  • We are pleased to see a rise in active Discord users and increased interest from projects wishing to collaborate with Maya.

  • Leap Wallet integration is almost here. Final updates and polishing are happening for the last bits of data. Launching any day now!

  • Maya has reached 1,000 active users, 8,000 wallets, and we have a strong following of 10,000 on Twitter.

  • You can now find Maya Protocol on Defilama.

  • Future developments: expanded chains, improved UI, increased security measures and dev team.

  • Addressing a payout issue in progress for version 108 and enabling bonding wstETH.

  • Our focus is on users rather than CEX listings. Onboarding new users is a simple process for any token supported by Maya. Purchases of $CACAO occur on chain, increasing the number of wallets, usage, volume, and revenue for LPS.

  • THORChain's streaming swaps feature is planned to be incorporated in Maya Protocol's version 110 to increase trade volume. New UIs will also be launched to capture this momentum.

  • Maya will stand out with innovative technology and exclusive swaps not found on other DEXes. Look out for early node and LP airdrops, as well as GLD airdrops in January and March. Visit Maya Scan for more information.

#42: Nov 13, 2023.

https://twitter.com/Maya_Protocol/status/1724079763449389333

Key Points.
  • Maya reached record-breaking achievements last week in the decentralized cross-chain space. The efforts of Maya and Thorchain are revolutionary.

  • Our tribe is expanding rapidly, with daily growth and significant activity, such as $17 million in volume and payments increasing for Maya holders. Integration plans are in place for the future.

  • We appreciate our community and their support, camaraderie, and helpful vibes. Together, we are addressing questions and promoting the Maya protocol.

  • Maya Protocol's goal is to address market gaps and expand the cross-chain DEX space. We are broadening our reach by including assets such as Dash, Arbitrum, Kuji, and others.

  • Expect greatness with the upcoming version 108, and each coming version. Stay tuned! 🚀

#41: Nov 06, 2023.

https://twitter.com/Maya_Protocol/status/1721543464892891363

Key Points
  • Our latest Tier 1 unlock has ended and all current system assets are voluntary, with many users choosing to remain in holding. There is an increasing interest in long-term holding of Bonded LP, particularly in $CACAO. We look forward to the results of this shift and greatly appreciate your ongoing support.

  • Our team promptly addressed a consensus failure during a churn caused by a provider having 0 LP. The error temporarily halted block generation, but our developers quickly fixed it by modifying the formula, allowing normal operations to resume.

  • Sync issues with validators and Kujira are being addressed by our team and will be resolved by the end of the week.

  • Our chains have consistently delivered impressive results this week, with a total volume of $1.95 million and reaching a milestone of 4,000 wallets.

  • Tier 1 snapshot is on the horizon, and we'll be sharing an Excel document with the corresponding addresses on Discord.

  • The highly awaited Version 108 is coming soon with housekeeping features and the long-awaited Savers. Updates to follow.

  • MayaScan introduced Maya Perps, a perpetual contract trading platform, with improved accessibility, transparency, and usability.

  • Unlike traditional centralized exchanges, Maya provides transparent and visible processes for user monitoring.

#40: Oct 23, 2023.

https://twitter.com/Maya_Protocol/status/1716469734294839509

Key Points
  • Our team is finalizing KUJIRA's launch and incorporating USK as the third stablecoin in our asset selection. We are excited about this integration and will provide updates on Discord.

  • Our team will operate a node on Thorchain, a significant milestone for us as one of the largest Rune third-party custodians. We are pleased to be running a node and welcome any Rune holders who wish to delegate to our validator. Please contact us for more information.

  • There are now eight liquidity nodes and bond providers will be affected by Kujira's unhaulting. May Protocol's next airdrop will occur in nine churns and will be divided equally for bond providers and validators.

  • Tier 1 unlocks are coming soon and we are optimistic about the future due to our increasing daily trading volume. The Tier 1 airdrop snapshot is scheduled for November 3, remember to watch out for it.

  • Additionally, Maya quests are back with new missions and attractive rewards.

#39: Oct 16, 2023.

https://twitter.com/Maya_Protocol/status/1713947967395160501

Key Points
  • Kujira was launched successfully last week, but an unexpected update the following day forced us to temporarily halt the chain. Our team is working on fixing the changes and will inform you promptly when the Kujira chain is resumed.

  • Local Money is a peer-to-peer protocol allowing individuals to trade using local currencies. The protocol is inviting its community to form a Decentralized Autonomous Organization (DAO).

  • Trades are conducted on-chain with escrow for both fiat and crypto assets, ensuring prompt payment. Communication is secured off-chain with public key access. Oracle pools maintain accurate prices against USD without user price-setting. Transaction confirmations are easily sent and received.

  • Local Money integration with Thorchain and Maya allows for smooth transitions and reduces reliance on centralized exchanges, benefitting users in regions with strict government regulations. Transaction confirmations are simple to send and receive.

  • Our integration offers a unique peer-to-peer experience with lower fees based on user tiers, transforming the industry. Users can access a wide variety of assets for exchange.

  • Local Money allows for converting fiat money to Bitcoin using THOR/MAYAChain assets, creating numerous opportunities.

  • At Maya Protocol, we are excited about the diverse chains that add value, such as Dash for privacy and Local Money for off-ramping fiat, along with Arbitrum for converting crypto to USD via ThorWallet credit cards.

  • Cross-chain technology is undoubtedly the future and we are dedicated to advancing it with optimism and enthusiasm.

#38: Oct 9, 2023.

https://twitter.com/Maya_Protocol/status/1711396163323388248

Key Points

Liquify:

  • Liquify now supports Maya Protocol, offering a comprehensive dashboard network, allowing users to monitor network health and access historical data.

  • Soon, Bond providers can subscribe for updates that reports insights into node statistics, rewards, and protocol health.

  • They are also operating a node, contributing to decentralization.

  • Thanks to their dashboard, node churn process has been improved, benefiting bond providers and node operators.

El Dorado:

  • A Maya-exclusive swapping platform, is improving UX further.

  • They are integrating $KUJI and soon #Savers on #MAYAChain.

  • With volume increasing you can still partake in our Vision of the city of gold with our seed raise still open.

  • DEX aggregation feature with Manta DAO assets. Allowing users to swap any Kujira asset in one click.

MayaScan:

  • After M-Tokens & M-NFTs MayaScan now offers p2p messaging, allowing users to select which address to communicate with, enhancing interaction with nodes & monitoring of messages.

General:

  • Node operator rewards increasing. Perfect time to consider running a node and boost your $CACAO rewards.

  • You can now bond $DASH LP and soon $KUJI.

  • V107 automates reward payouts.

  • Retiring first Genesis Node as we move forward.

  • $DASH is operating seamlessly without any issues.

  • Kujira is live; announcing availability & enabling swaps after 24hrs of LPing. UIs has tested Kuji on stagenet & in own environments, so integration

#37: Oct 2, 2023.

https://twitter.com/Maya_Protocol/status/1708859529591464011

Key Points
  • Our team was dedicatedly working on Version 107 last week. The launch is imminent; developers are refining the final details to guarantee a smooth release.

  • We have decided to not include Savers in Version 107, opting for a rapid rollout of Version 108 dedicated to Savers after Version 107's release. Version 107 will contain essential fixes for Dash and the Kujira addition.

  • Our team is addressing the 21 addresses that have yet to receive their funds; 16 have been resolved and we are working to resolve the remaining 5. Updates to follow.

  • Introducing MayaScan, a fast, simple, and user-friendly blockchain explorer acclaimed for its UI & efficiency. This weekend we launch the MRC-20 Standard & M-NFTs, well-received by the Maya community, with future features such as gaming multipliers. Open source & user-friendly, try it & explore!

#36: Sep 25, 2023.

https://twitter.com/Maya_Protocol/status/1706322760174010536

Key Points
  • Kujira integration into MAYAChain, allows users the access to Kujira's top of the line DeFi solutions and ecosystem, permissionless & without the use of bridges or wrapped assets.

  • "Savers" feature, allowing users to earn yield on their favorite assets (BTC, ETH, RUNE, DASH, KUJI) without exposure to CACAO.

  • Reward logic to be fixed for Node payouts where rewards will be distributed to Node Operators, after each churn, according to the fees they set, and proportionally among Bond Providers according to their LP share.

  • $Dash and $KUJI will gain the ability be bonded to Liquidity Nodes in v107, enabling $DASH & $KUJI LPers to get a bigger share of MAYAChain fees.

  • A known bug regarding quoting synths on MAYAChain will be fixed. Users can now swap synths to any asset.

  • Finally, Node Operator fees are now adjustable at any time to ensure more flexibility and ease of use to our Node Operators.

#35: Sep 18, 2023.

https://twitter.com/Maya_Protocol/status/1703786253618159926

Key Points
  • We're pleased to announce Maya Protocol's integration into Pulsar Finance, providing users effortless monitoring of CACAO/MAYA tokens, LP positions, and Savers positions. Pulsar also added support for the Dash chain.

  • The release of version 106 marked a significant milestone for Maya Protocol. Here are some noteworthy updates:

    • Dynamic Outbound Fee Multiplier (DOFM): Our commitment to enhancing user experience includes more flexible fee structures.

    • Node Rewards Fix: To further enhance stability, we've resolved issues related to node rewards.

    • Whitelist of Ethereum Tokens: Safeguard your swaps with an enhanced security measure against scam tokens.

    • First Dex Aggregation Contracts for Ethereum: Seamlessly swap BTC, ETH, and more across Ethereum's decentralized exchanges.

    • Improved MAYANode Sync: We've fixed bugs to ensure accurate chain synchronization status.

  • Version 106 had synchrony issues; Fixes, Savers & Kujira to launch version 107 by week's end with changes to operator fee & more. Further details to follow.

  • We believe in the power of community collaboration. If you possess knowledge of JavaScript and would like to contribute to our project, please reach out!

#34: Sep 11, 2023.

https://twitter.com/Maya_Protocol/status/1701249471193952542

Key Points
  • $KUJI integration in MAYAChain broadens Kujira capabilities, by providing $KUJI holders access to THORChain and MAYAChain backed assets e.g. Bitcoin, Ethereum, Dash, THORChain, without KYC and transparently.

  • At the same time, #Kujira will be the gateway for Maya Protocol into the broader Cosmos ecosystem, ushering in exciting new possibilities in all the relevant Cosmos chains.

  • THORWalletDEX recently teased the introduction of $KUJI in their wallet, allowing for sending/receiving assets on the Android test flight. To access these features, update the APP and explore the world of Kujira.

  • MAYANodes airdrop successfully distributed last Friday, rewarding all contributors to MAYAChain security.

  • Our team is preparing to release an update with bug fixes, clearing the $DASH transaction queue, and making fees cheaper (improving the Outbound Fee Multiplier).

#33: Sep 4, 2023.

https://twitter.com/Maya_Protocol/status/1698712993121366120

Key Points
  • Airdrop to nodes to be distributed this week; allocation details to be shared later today. Bond operators/nodes with doubts should notify us; payments to be made by Wednesday/Thursday.

  • We have halted liquidity node churns for a few days due to a bug in Dash. We are diligently working to fix the issue and will provide updates by week's end.

  • Regarding Dash, We've made changes to Bifröst to collect more data and logs. Two fixes are planned; one may not be ready this week, while the other may be resolved by the end of the week. Keep an eye on Discord for updates.

  • Our team is progressing and performing admirably. Preparations for the Kujira launch are underway; Kujira has been quite helpful. We plan to launch Dash version 106 shortly and a potentially major Maya update is being considered to expedite the process.

  • We may need to submit a second proposal with further clarity is necessary for the Cardano funding proposal. We thank the Cardano community for their positive feedback.

  • On the development front, our contributors and community have been actively involved, we thank you and really appreciate your feedback and new ideas.

  • Participants in the Ambassadors Program must complete the form soon; announcements will be made on Discord and Twitter.

  • We've implemented new security measures to ensure Discord server safety and are actively discussing ways to further improve security.

#32: Aug 28, 2023.

https://twitter.com/Maya_Protocol/status/1696176009110802887

Key Points
  • Thorwalled and ZK Discord were compromised despite 2Fa and security measures due to Discord's structure. Hacker gained access, booted moderators, and claimed an airdrop with associated wallets compromised. Accounts regained today with further security measures encouraged. Social engineering, not only code, and 2FA should be taken into account for Maya Protocol security.

  • Maya Protocol never rushes airdrops; announcements are made way in advance to ensure careful claiming processes. Limited times or spots are usually indicative of a scam.

  • Maya Protocol will never send/redirect to an unofficial website; official websites will be used exclusively.

  • We encourage you to use new wallets to claim Airdrops; it's fast and easy to setup, not to mention, much safer.

  • Always verify information from multiple sources; consult our mods/admins, docs, & website; be skeptical.

  • Hackers plan meticulously; stay vigilant and report suspicious activity. Help protect the community.

Business side

  • Kujira's arrival is imminent; integration of Maya protocol into their ecosystem has been confirmed by multiple teams.

  • Our team is developing v106, featuring Kujira, savers, outbound fee multiplier, and improvements for node operators to enhance churns. Dash core wallets, ledger, and trust wallets are in the pipeline.

  • Our team achieved the first early node airdrop last week! Visit our Discord for more info. Interested in contributing? Check out the Data passthrough and join the conversation. https://gitlab.com/mayachain/mayanode/-/issues/16

#31: Aug 21, 2023.

https://twitter.com/Maya_Protocol/status/1693639214410105310

Key Points
  • Our team is focusing on v.106 & ledger integration, which will include features like $Kujira, Dynamic fee multiplier, & savers, plus relevant fixes.

  • Integration with Ledger expected in early September, followed by Trust wallet and Swap kit.

  • Last week saw our first churn post-Tss updates, raising our nodes from 13 to 15. Active validator set bond eclipsed 2M, totaling 4.6M with active and standby bonds.

  • One last churn before the first airdrop of Maya tokens, split 50/50 between node operators and bond providers, is the final opportunity to join the active validator set. Following 12 churns, a second airdrop will be delivered, after 18 churns a third, and after 36 churns, the last 17,500 $Maya tokens, totalling 70,000 $Maya tokens.

  • We recommend our community use MayaScan and the team is working diligently to have its features match the old explorer.

  • Record of $15.4K on $Dash pool in 24 hrs. DAO approved cacao addition, pool soon to exceed $200K.

  • We invite our community to aid us in advancing our gitbook, webpage, and discord by contributing and/ or identifying areas for improvement.

#30: Aug 14, 2023.

https://twitter.com/Maya_Protocol/status/1691103455421636608

Key Points
  • Executed a successful churn, allocating $4M LP Bonds evenly by validators and stand-bys.

  • Maintenance on Binance TSS will delay the upcoming churn. We remain committed to emulating their approach and await the necessary adjustments. Three more churns are expected before the early node airdrop is fully allocated.

  • Our team is creating version 106 and essential housekeeping updates to speed up our development process.

  • We have achieved a major accomplishment in our partnership with the Dash Investment Foundation and will soon be adding Lp to the pool, offering great potential.

  • High priority is given to Ledger support. Testing and refining are being carried out, with Ledger team providing evaluation to ensure integration.

  • Our ecosystem achieved a noteworthy milestone over the weekend, with a record-breaking volume of $700,000 and total liquidity rising from $15.6 million to $18 million.

  • Join Maya Protocol and actively participate, share experiences, and provide feedback to our team. Engage with our community and help spread awareness of ThorChain. Together, we can elevate the ecosystem.

#29: Aug 7, 2023.

https://twitter.com/Maya_Protocol/status/1688565705711489024

Key Points
  • Last week our team focused on fixing the threshold when signing transactions and finding bugs.

  • v106 nearing completion; Kujira, savers, dynamic fee multiplier implementation are getting closer.

  • We achieved a successful churn after 13 attempts; to reduce it to 2 attempts, key agent fixes will be implemented in version 106.

  • Security has risen to 3M dollars (20% of network security) with active validators at 1.6M and standby bonds at 1.2M. Impressive numbers.

  • Ledger support coming soon; testing rounds underway; priority for Dev team; similar to TC; should go smoothly.

  • Bond providers 4-6 to ensure continuous growth. Gain $MAYA airdrop by bonding or running a node.

  • Dash LP swaps are working well; we must focus on increasing Lp. We have a few things prepared to make it happen.

  • If you want to help us, you can start by pushing integrations for Dash x Maya to have this integration everywhere.

  • What is next? New chains. We invite you to engage, join the conversation in our Discord and let us know what you think about new chains integration.

  • Some of you participated in the THORWallet referrals program. 4 or 5 people haven't yet linked their wallet, so please get in touch.

#28: July 31, 2023.

https://twitter.com/Maya_Protocol/status/1686029238544011265

Key Points
  • Last week's launch of version 105 was successful, with four active validators and nine standby liquidity nodes with a combined $1.9 million in bonds. Interested in running a node? Instructions are available on Discord.

  • Dash integration is live and functioning, with add, withdraw, and swap operations. ThorWallet and El Dorado are polishing final details; watch out for them.

  • Dash pool has reached $113K, aiming to exceed $1M with further support.

  • v106 is upcoming, introducing Kujira, savers, and dynamic fee multipliers. v107 will introduce Arbitrum and streaming swaps.

#27: July 24, 2023.

https://twitter.com/Maya_Protocol/status/1683492356643868678

Key Points
  • We are delighted to launch v105, our biggest update yet, with major changes to our codebase. Tested for reliability.

  • v105 of our system features updated Liquidity Nodes and Dash integration. Stage net is live today and tomorrow, followed by bond unhalt. In a few days, Liquidity Nodes will be churned, allowing community members to add liquidity and trade.

  • Emphasizing safety, we urge all to take the time necessary to ensure security.

  • Liquidity nodes & Dash integration pave the way for future chain integration.

  • Our team will be rewarding Thor Wallet referrals with Maya tokens this week. Stay tuned of further information.

  • v106 is in development, with either Arbitrum or Kujira. It will also address any issues detected during v105 testing.

  • Look out for the new streaming swap features coming soon after rigorous testing on THORChain for reliability.

#26: July 17, 2023.

https://twitter.com/Maya_Protocol/status/1680947009866575874

Key Points
  • Version 105 of MAYAChain and Dash integration is imminent. For updates, follow our Discord.

  • Version 106 with features Kuji & Savers coming soon after 105. Progress made by team is impressive.

  • Tier 2 unlocked. Withdrawing available on testflight, android, and web app. Apple users can expect new version soon with added features. Thanks for feedback.

  • Introducing MayaScan, a cutting-edge blockchain explorer designed for speed and user-friendliness. Check your transactions and data effortlessly. Keep an eye out for upcoming features that will enhance your experience further.

  • Exciting integrations are in progress! Maya will soon be integrated into Dash core wallets.

  • Kuji Devs have also confirmed their integration with Maya. If you are a Dev in the Kuji ecosystem, we want to hear from you! Reach out to us on Discord to explore opportunities.

#25: July 3, 2023.

https://twitter.com/Maya_Protocol/status/1675882220748144640

Key Points
  • Our team is testing Dash's chain locks with the Dash incubators team to create a consensus layer alternative. This will take a few more days; stay tuned.

  • We are refining, testing, and confirming the operation of liquidity nodes. Tests are progressing well, revealing minor issues, facilitating quicker fixes, and enabling seamless mainnet operation.

  • Maya Mask Airdrop distributed. Check wallet & Discord for updates.

  • Defispot offers an exchange experience with DEFI, replicating the functions of centralized exchanges. Defispot is a cross-chain aggregator for token swaps, and Maya protocol adds support for cross-chain native tokens.

  • Integrating MAYAChain is essential to increase options and create new liquidity pools, routes and chains (e.g. Cardano, Dash and Kujira). MAYAChain will also add new features and enhance the DeFi user experience.

  • Devs are nearing completion of MAYAChain integration; stay updated on our socials for news.

#24: June 26, 2023. https://twitter.com/Maya_Protocol/status/1673346009626206209

Key Points
  • Testing of Liquidity Nodes (LN) feature revealed compatibility issue due to logic changes between v104 and v105; adjustments needed and will be completed in a few days.

  • Dash is operational, nodes ready, Bifrost scanning; integration imminent, stay alert.

  • For Savers & Kuji anticipate a swift update following v.105, with a rapid release cycle.

  • We invite our tech-oriented members to explore our Gitbook for updates and innovations, along with engaging content.

  • DEX Aggregation enabled: Code present, interface paused; soft launch in few weeks, hard launch later; feature arriving soon.

  • Maya Mask holders have 48 hours to review the list to published on Discord. If issues arise, contact the team. Airdrop to follow.

  • Our team is compiling and organizing referral code data; cashbacks will be distributed next week.

  • Quests are active; join for rewards without the Maya mask requirement.

  • We'll host our first Twitter Spaces with Ambassadors to discuss Maya Protocol. Further info to come later this week.

#23: June 19, 2023. https://twitter.com/Maya_Protocol/status/1670808614317981696

Key Points
  • v105, containing Dash and LN, is performing better. A Dash issue was stuck on Monday, which necessitated API updates, and was resolved with assistance from the Dash Core Group & Dash Incubator.

  • We updated the smoke tests for Dash & Maya, pushed the integration to Stagenet, and resolved liquidity nodes issues; however, there is still a bond issue pending.

  • Testing is imperative for a successful launch to Mainnet; Dash & LN should be open to bonds this week if testing is successful. Updates will be given on Discord.

  • Dynamic Outbound Fees Multiplier (which reduces swap fees) postponed to v106 due to compatibility issues on Stagenet. Resolution will take a couple of weeks, so the update was postponed to avoid delaying Dash & LN.

  • We are fixing Midgard and CACAO prices on CoinGecko, as well as developing v106 savers.

  • Regarding Maya Masks: 20th of June (Today) is the last day to link your wallets, we will have a list showing the addresses that were eligible on Friday the 16th.

  • Caution advised when seeking support; scammers WILL pose as support. Never provide your seed phrase & always verify information from multiple sources.

  • There is a lot of interest in running MAYANodes especially from Bare Metal Nodes operators.

  • We will finally get to see the tradeoffs of Liquidity Nodes vs Pure Bonds tested in real life.

  • New Maya Quests will conclude on July 17th; all are welcome, Mask not required.

  • Ambassadors selected; additional spots available shortly. Ambassadors Twitter Spaces being planned for end of week.

#22: June 12, 2023

https://twitter.com/Maya_Protocol/status/1666987304785973249

Key Points
  • Dash integration experienced a compatibility issue with the RPC connecting nodes to send/receive transactions. Observations are working, however, signing transactions has encountered the issue. The Dash Core team is currently addressing and both teams are striving to resolve it promptly.

  • Version 105 is nearly ready with its exciting features, including the Dynamic fee multiplier reducing fees from 3X to 1.5X. The Maya Mask airdrop will have an eligible address list released in the coming days. If any doubts arise, contact a team member for assistance.

  • We are pleased to share that the Swapper DEX wallet will soon integrate Maya. Finalizing the update will enable us to welcome new community members, unique users, and increased volume to the tribe.

  • We are delighted to welcome our first Maya Ambassadors: Mr.Mohawk, Team Ocebot, Anouluwalove, brawncrypto_eth and shelleymaeph! Welcome to the program.

#21: June 5, 2023

https://twitter.com/Maya_Protocol/status/1665535307163525121

Key Points
  • Version 105, featuring Dash and Liquidity Nodes, is soon to be released. These additions are anticipated to expand the user base, boost volume and create stronger security. Additionally, Liquidity Nodes are expected to improve liquidity stability.

  • Claim your Maya Mask in two weeks before the snapshot! Connect your ETH wallet holding Maya Mask to the Maya Protocol via swap or liquidity.

  • Our team has selected people for the first round of the Maya MaAmbassador's program; a new form will be available on our website for the next round. Claim your Maya mask before the snapshot taken this month by connecting your eth wallet to Maya Protocol (via swap or liquidity provision). Two more weeks remain.

  • Maya Academy's marketing team is releasing beginner-friendly, 101 crypto info articles, as well as sophisticated material for experienced users.

  • Participants have one week remaining to compete and reach the summit of Maya Quests' rankings!

#20: May 29, 2023.

https://twitter.com/Maya_Protocol/status/1663198707486015490

Key Points
  • Back on schedule and team has resumed work on v105 updates, including DASH, Liquidity Nodes, and Savers.

  • Liquidity Nodes feature is essentially ready; undergoing review and minor changes. Should be added to v105 updates.

  • Dash is our top priority; the rebase is now complete. We are conducting a small test with Dash; a giant simulation to visualize & catch problems quickly. Once these tests are run, we will be ready for Dash integration.

  • Our team is making progress in adjusting savers' yield percentage based on synth utilization; the changes are straightforward and will be ready soon.

  • After Dash, we're focusing on Kujira, then Airbitrum; integrating one chain at a time to guarantee functionality and identify problems quickly.

  • Expect the Maya Mask airdrop soon. Refer to the guide and #MayaMask channel on Discord for details. If uncertain, contact a team member for assistance.

  • We love to hear about our community; reach out on our discord, make your case, and let us know which chain you want us to integrate.

#19: May 23, 2023.

https://twitter.com/i/spaces/1ZkKzXrrNVyJv?s=20

Key Points
  • Team finishing version 104 polishing & testing; trading to be enabled soon.

  • Making significant and smooth progress with the Liquidity nodes feature; expect news soon.

  • Dash and Savers up next; 104 version rebase in the works; exciting & noticeable upcoming updates for users.

  • Maya now integrates with Wallet Connect, streamlining the connection to Maya Chain and enabling swapping, sending, & receiving.

#18: May 16, 2023.

https://twitter.com/Maya_Protocol/status/1658140343668441089

Key Points
  1. $MAYA airdrop to $RUNE holders is imminent. We appreciate your patience. We are double checking to make sure all data are correct.

  2. Team is working hard on the housekeeping update, which will make easier and faster to notice on-chain issues. This update will help us to unhalt BTC chain.

  3. Next on the schedule is $DASH and savers, which will bring more liquidity to the protocol.

  4. We're excited to launch our Ambassador program! Content creators and influencers can apply to join and get rewarded with Maya tokens.

  5. Maya Mask holders receive exclusive quests this month as per community vote and in line with the vision that the Maya-Masks are utility NFTs.

  6. Starting next month Non-holders will also have opportunities to earn $MAYA.

  7. Do you believe you or someone you know can contribute to Maya Protocol, reach out on our Discord.

#17: May 9, 2023.

https://twitter.com/Maya_Protocol/status/1655603671210639365

Key points
  • Numerous UIs have declared integration of Maya Protocol. Wallets, Dexes, and Portfolio managers will be included, with some already in the process. Anticipate amazing news soon.

  • BTC chain is halted as a precaution to prevent double transactions caused by fee fights.

  • Snapshots for $Rune holders taken May 3; team gathering all data points for distribution. A document containing addresses/points will be available soon; tickets on Discord for inquiries.

  • Rewards for the Maya quests were distributed over the weekend; check wallets.

  • The Maya Tribe is an NFT media, marketing & ambassador community for creators that want to contribute to the Maya ecosystem. Visit their Twitter and Discord for more info.

  • We welcome feedback and collaboration; join our Discord and reach out.

#16: May 3, 2023.

https://twitter.com/Maya_Protocol/status/1653444528949305345

Key points
  • Chain has been performing well, with swaps, synths, and withdrawals functioning as intended. A minor update is scheduled for mid-week, allowing for further refinements.

  • Our team is working on a liquidity nodes feature requested by node operators, which enables bond providers to select the number of LP units to bond with a node, aiding node operator operations.

  • Integration of Dash & Savers is a top priority; end of week target for testing Dash-ETH, Dash-Rune swaps on stage net. Mainnet deployment imminent.

  • We are excited to be negotiating with multiple wallets and UI to integrate Maya, with a new integration expected every 1-2 weeks.

  • Rewards for Maya Quests to be sent by week's end; awaiting info from ThorWallet; announcement once ready.

  • The claiming period for the $MAYA Airdrop has been extended to May 3rd, 23:59 CST. Subsequent to this date, claiming will be closed and data collected to compute points. An official announcement will be made once the airdrop is completed.

#15: April 25, 2023.

https://twitter.com/Maya_Protocol/status/1650545334320345107

Key points
  • We've finally achieved a stable version of the network with an incredible 2,000 swaps and an astounding $1 million of accumulated volume in just 4 days! This is only the beginning, and we're already looking forward to our next milestone: 10 million!

  • Right now, we're focused on increasing the number of liquidity nodes - the more nodes we have, the more decentralized we become, and the deeper liquidity we have. This will also provide $CACAO with greater stability against any potential withdrawal activity, which has been surprisingly low - a true testament to the confidence in the protocol!

  • Maya will integrate $DASH in the next major update, which will create swap routes that are unique to Maya Protocol. This integration will provide more use cases and higher volume, making Maya a more attractive option.

  • Mid-term, we will work on other integrations such as KUJI, ADA (might happen earlier than expected), and $AZTEC.

  • ThorWallet now enables you to swap all assets in the Web App, and you can now make swaps on mobile via Test Flight and Android.

  • The Thorwallet team is working hard to enable LP. We expect this by the end of the week. We are extending the $MAYA AirDrop claiming process for $RUNE holders to four days after ThorWallet enables LP.

  • Listing soon: We filling all applications for the CoinGecko listing team for review. We have already listed ourselves on Coinmarketcap. We just need to link the price info.

#14: April 17, 2023.

https://twitter.com/Maya_Protocol/status/1647978356644651008

Key points
  • We are thrilled to announce that we have successfully donated CACAO! We have an exciting week ahead of us as we eagerly await the activation of trading. We will quickly churn and then we will be ready to unhault the trading.

  • MAYA will concentrate on three pillars: Deep Liquidity, Routes (Chains), and Availability. Once trading is enabled, we will focus on onboarding integrations and partnerships, increasing swaps, and boosting volume. These three pillars must be of the highest quality.

  • The team expects Rango to smoothly integrate Maya once trading is enabled, as ThorChain is already integrated into Rango. Rango is a Crosschain Dex/ Bridge aggregator that enables interoperability between 53 different blockchains.

  • Until 20 April, $Rune holders can still claim the $Maya Airdrop. Once ThorChain reopens the pools, the claiming process will be simplified and the alpha airdrop will occur 10 days later.

#13: April 10,2023.

https://twitter.com/Maya_Protocol/status/1645449202141364224

Key points
  • We expect the final stage net to be available on Tuesday, which will include an update, churn, $CACAO donation, and trading activation. Keep yourself updated by following our Discord & Twitter.

  • We're developing a Community Ambassador initiative aimed at expanding our presence in untapped markets and communities, including Dash and Kuji.

  • We delayed the donation event due to incomplete and error-filled memos. The issues were resolved promptly, but we urge our community to handle funds with care and responsibility.

  • Genesis Nodes protect with trust, Liquidity Nodes with incentives. Liquidity Nodes can boost their capital efficiency by earning both Validator and Liquidity Provider rewards.

  • Your ideas and feedback are invaluable to us. To contribute to Maya, review our Gitbook, or if you are a senior cosmos developer, contact us. More eyes on the code mean better outcomes.

  • Check the complete Maya episode, and stay updated on our latest news by joining our Discord.

#12: April 3, 2023.

https://twitter.com/Maya_Protocol/status/1642894658803232769

Key points
  • Maya Protocol raised $11,421,176.19 and will start operations with approximately $23 million TVL.

  • We're preparing for the $CACAO Donation and will enable trading as soon as possible with minimal slippage.

  • %81 of Liquidity was allocated to Tier 1 which exceeded expectations.

  • Having unique chain integrations, such as Dash & Kuji, is a top priority to have attractive swap routes.

  • 20k $MAYA has been airdropped and THORWalletDEX is working to make them visible with correct balances on both iOS (testflight) and the web interface.

  • Maya Protocol is working on a non-reflexive pool during the summer. Stay tuned for more details.

#11: March 27, 2023.

https://twitter.com/Maya_Protocol/status/1640368305969016833

Key points
  • We have raised over $6 million with 3 days left to go! Maya Protocol is now officially viable, and we will be launching $CACAO on the 31 of March.

  • If you're Cosmos SDK savvy and want to help us to grow the ecosystem, reach out! We are looking for more hands and ideas.

  • A few days ago, Thorwallet figured out a way to add liquidity through Xdefi with Ledger.

  • We are polishing the last details for the first batch of Maya Rewards for Tier 1 liquidity providers, so stay tuned as the airdrops are about to begin.

  • El Dorado intends to join Maya's ecosystem by introducing a swap platform to provide users with more options and increase exposure. The platform will go live following the $CACAO event and activation of Trading.

#10: March 21, 2023.

https://twitter.com/Maya_Protocol/status/1637869579471839235

Key points
  • After opening up the $Rune pool, we went from 800,000 to 4.2m 48 hours later!

  • 93% of the liquidity raised this far is Tier 1, meaning that for 200 days, $CACAO will have a stable price at launch.

  • What's next? 10M, this is an important number because after we open up the savers and with a fifty percent sync cap 30 to 40 dollar mark on TVL would be already 1/3 of the Thorchain pool.

  • After that, our goal is 20M. Pools would be competitive; why is this number so important? We will be taken more seriously, and other interfaces and wallets can't help to notice us.

#9: March 14, 2023.

https://twitter.com/Maya_Protocol/status/1635355237258248192

Key points
  • Tested churning with our own nodes in another Stagenet. Everything worked perfectly. On March 13th at 4:00 p.m. CST we had a smooth and successful churning event of our genesis nodes to Stagenet.

  • We will churn Genesis nodes to the Mainnet today and complete a system check. You can follow our progress more closely on the #genesis-nodes channel on discord https://bit.ly/3LnnPQx

  • The extra $MAYA token rewards will be happening from Wednesday at 10 a.m. CST to Sunday at 10 a.m.

#8: March 7, 2023.

https://twitter.com/Maya_Protocol/status/1632908951804157952

Key points
  • Minting the first block, having all genesis nodes churn in, and opening up THORWallet and inbound addresses publicly for all to add funds will not happen simultaneously.

  • Here's a more realistic timeline:

    -Tuesday (07/03): Mainnet launched, and the first block minted.

    -Wednesday (08/03): Sanity checks and internal testing.

    -Thursday (09/03): Churn once the last Genesis Node reaches the Ethereum Network block tip.

    -Friday (10/03): Significant liquidity can be added if everything looks good.

  • MAYA allocation model is changing to be time-dependent instead of being dependent on the first inflows to pools. The first 75% of the award per pool will be given to people adding T1 liquidity from Friday, March 10th to Tuesday, 14th.

#7: February 28, 2023.

https://twitter.com/Maya_Protocol/status/1630236344772448256

#6: Maya & Thorwallet - February 21, 2023.

https://twitter.com/Maya_Protocol/status/1627700335836790787

Key points
  • THORWallet is currently in the last steps of testing. The Liquidity Auction is completely integrated into the mobile app and currently working on the previous stages of the web app integration.

  • Halborn is currently working on the DASH bifröst audit. Our team prioritized this, and the final report will be available soon. Next on our list is $AZTEC, so stay tuned for more updates.

  • NEW: Maya's cash-back program. Provide liquidity through a wallet and receive a link to share with friends. If they use your link to provide liquidity, you earn a percentage of their liquidity.

#5: Maya & Halborn - February 13, 2023.

https://twitter.com/Maya_Protocol/status/1625132975607418880

Key points
  • Halborn is giving Maya an audit of the code and a 360º analysis of new security measures in the market and economic security assessments.

  • Once Maya’s code audits are done, Aztec will be the next in line.

  • Maya’s first stage was to learn and research about THORChan: how and why it was implemented that way and how they Maya could manage to cover the same issues, and more. The actual stage consists in implementing.

#4: February 7, 2023.

https://twitter.com/Maya_Protocol/status/1622746989724110848

Key points
  • The team is working on updating Maya to the TC version that supports savers, V101, and savers will be available at launch.

  • Stage testing will be started when V101 is ready, and a stage liquidity auction will be conducted around Feb 20th.

  • The THORWallet app has the tiers part of the liquidity auction integrated, and an affiliate program will be launched with THORWallet, rewarding $Maya tokens.

  • There are plans to reward the first Tier 1 liquidity providers under 5M USD with 1% of $MAYA tokens to incentivize joining the LA early.

  • Any wallet with a custom memo function can send funds to the LA, and every integrated chain affects the difficulty of integration.

#3: January 31, 2023.

Maya & Thorstarter https://twitter.com/Maya_Protocol/status/1620210390641659912

Key points
  • Thorwallet is looking for ways to incentivize people to participate in the Liquidity Auction, and more details will be shared later.

  • Halborn Security has performed six security audits for Maya, and they are waiting for the final report to end the process.

  • Aztec is coming soon, and CosmWasm and IBC will be enabled from the start for powerful composability.

#2: January 24, 2023.

https://twitter.com/Maya_Protocol/status/1617673467599687680

Key points
  • Liquidity nodes have been improved by bonding LP units with profound intentions, resulting in higher yield, more people adding liquidity, more pool depth, and more affordability.

  • Genesis nodes are motivated by a desire to protect users and are open to more than six nodes willing to put their reputations on the line.

  • Economic incentives for nodes will be significant from the start, and genesis nodes will eventually be churned to make the system more secure and sustainable.

#1: January 17, 2023.

https://twitter.com/i/spaces/1dRKZMqNNqQxB?s=20

Key points
  • The latest Halborn Audits report shows no major vulnerabilities in Rune & Maya pools. Full report will be shared with the community in the following weeks.

  • Supported tokens on the liquidity auction: $BTC, $RUNE, $ETH, and some stablecoins, with plans to add $KUJI, $Osmos, $BSC, and $BNB after the auction to reduce risks and increase security.

  • The first three Maya Nodes will be run by @THORWalletDEX, @Thorstarter, and @Maya_protocol, with an opportunity for organizations with a stake worth value to join the genesis nodes.

Twitter Spaces with other hosts

Dash is live on the Maya Protocol: https://twitter.com/Dashpay/status/1684933932645539840

Key Points
  • We are thrilled to have this Twitter spaces to announce that the Dash integration with Maya is finally live.

  • We are attempting to address CEX's large market share, KYC, over-regulation, and misused funds by offering an anonymous, straightforward way to exchange Bitcoin for Ethereum, etc.

  • The objective for the coming days is to increase liquidity by connecting with Dash-associated orgs, such as Dash Incubator, DAOS, and Dash Core Group; encouraging those enthusiastic about the integration to network and publicize.

  • All passionate thinkers from the Dash & Maya communities can request guidance or contribute to the Maya's ecosystem by joining the Dash & Maya Discords. This project belongs to you.

  • El Dorado is a UI providing low-cost, secure asset trading, storage, and growth services linked to the Maya Protocol and Aztec, a central incubator.

  • You can now supply liquidity on El Dorado and see the dash balance. They are currently working on swaps to be available as soon as possible.

  • We are so glad to find a community like Dash focused on financial freedom because that's why we are all here.

  • No central exchange necessary; Maya, a decentralized exchange, enables buying, selling, and swapping of decentralized crypto. A non-custodial solution provides asset autonomy; users determine when assets are needed.

  • Dash and more chains offer communities an opportunity to utilize their assets through permissionless/ no-kyc swaps and trading.

Cosmos Club & Aaluxx: https://twitter.com/CosmosClub_/status/1622881702233141249

LPU & Maya: https://twitter.com/i/spaces/1OwxWwqXXaVxQ

AMA with Danku: https://twitter.com/Maya_Protocol/status/1616118122137657345

THORWallet x Maya integration: https://twitter.com/THORWalletDEX/status/1597528829207392256

Liquidity Auction Tier ROI calculator with Kyle Krason: https://twitter.com/Maya_Protocol/status/1630723295254548482

Client Packages

Using xchain client packages

Full Multichain Wallet Example

A wallet class has been created that instantiates every chain client and leverages the interface which greatly simplifies working with wallets and THORChain. See the below code example.

Client Packages breakdown

Client packages have been created for each blockchain that connects to THORChain. All clients implement xchain-crypto which acts like a super class and gives each client a common interface.

Common functions with code examples are:

Config and Set Up of a Wallet

Querying

All clients implement these functions. While most can use the same code, some have slight client differences.

  • Get Explorer URL - for the specific blockchain

  • Get Balance - returns the balance of an address

  • Get Transactions - returns a simplified array of recent transactions for an address.

  • Get Transaction Data - returns transaction information from the transaction ID/hash.

See below for a Bitcoin example. Also see Ethereum, Binance, THORChain, Cosmos, and Avalance examples.

Transactions

  • Get Fees - get the transaction fee for the chain, separate from THORChain fees

  • Transfer - transfer funds from one wallet to another.

  • Purge - When a wallet is "locked" the private key should be purged in each client by setting it back to null.

See http://docs.xchainjs.org/xchain-client/overview.html for more information.

Some chains require address history to query balances and Txs
Some chains require address history to query balances and Txs