# Welcome to Moonshot

{% hint style="info" %}

## Moonshot is now [Moonit](https://moon.it/) - please refer to the [Moonit FAQ here](https://docs.moon.it/#faq).

{% endhint %}

Moonshot is a software interface to a public blockchain protocol that makes it easy to create, collect, and trade memes or vanity coins (or tokens) peer-to-peer (P2P). Moonshot does not issue tokens, custody them, or exchange them; you do that directly on the public blockchain protocol! Accordingly, you rely on your own wallet and the underlying blockchain technology (explained more below) for the security of your tokens. **Additionally, Moonshot is not an investment platform. Your tokens could become worthless at any time, and you should not spend any money collecting meme tokens that you cannot afford to lose.**&#x20;

Relatedly, if you create a token, you agree not to make any promises that could confuse buyers into thinking that they are purchasing a security in a business. **For instance, you cannot promise to do things or have others do things that will create sustained, long-term value. If you hear such promises, disregard them! Meme token collecting and trading is fun, and it’s meant for entertainment, not an investment**.

Finally, we have designed the Moonshot to maximize the fun and fairness of token creation, collection, and trading, all on decentralized blockchain technology. By using Moonshot, you are choosing the best-in-class platform for meme coin enthusiasts and hobbyists everywhere!


# FAQ

All you want to know about Moonshot

## Moonshot is now [Moonit](https://moon.it/) - please refer to the [Moonit FAQ here](https://docs.moon.it/#faq)

##

### Fair Launch

* No pre-sale, no insiders, max 1B supply
* Ownership renounced, immutable
* Fully audited smart contracts
* Buy and sell at any time
* Multi-chain - available on Solana & EVMs (Abstract, Base & Berachain)

## Wen Moon?&#x20;

💪 Once market cap reaches 432 SOL or 25 ETH / 10K BERA (for Abstract & Base / Berachain), all remaining tokens and liquidity migrate to Meteora, Raydium, or Uniswap

🤑 AirLock - migrate to Meteora & top holders **EARN** LP rewards with daily airdrops

🔒 All liquidity is locked forever

🚀 Free Enhanced Token Info gives all Moonshot tokens the best chance to trend on DEX Screener!

## Fees

Moonshot charges a flat fee of 1% on buy and sell orders, which is charged as a taker fee in SOL. A 2 SOL fee or 0.1 ETH / 45 BERA is charged on migration.&#x20;

## Does Moonshot have a token themselves?&#x20;

No, Neither Moonshot, DEX Screener nor Helio has official tokens.&#x20;

## Migration&#x20;

Once 80% of the 1B token supply is sold on the Mooonshot [bonding curve](/developers/bonding-curve-solana), the market cap reaches 432 SOL or 25 ETH and all remaining tokens & collateral migrate to either Meteora, Raydium or Uniswap (as set by the creator at launch).\
\
Approximately \~88 SOL or \~4.9 ETH of collateral is collected on the curve. For Raydium migrations, 1.3 SOL is used to create the pool and Open Book Market fees, for Meteora 1 SOL is used to create the pool and various associated accounts for AirLock. In case of Base, \~0.05 ETH is used to create the pool on Uniswap.

## Dev Migration bonus (Raydium)

The dev wallet receives 2 SOL when her token successfully migrates to Raydium.

## What's AirLock?

**Why dump your bags when you can earn lifetime rewards instead? 🌙☄️**&#x20;

When a token successfully migrates to Meteora, **we lock the LP tokens forever and AIRDROP the LP rewards every 24 hours** to your current Top 50 holders.

**TLDR:**\
\
🌙 Rewards are auto-claimed & AIRDROPPED

🌙 Track [airlock.sol](https://solscan.io/account/2S2e3rJwhjUEJqinGwV6RmGhVAKJXXkNpFsmhKmpcPH1) to see rewards distribution. SOL is airdropped & tokens are burnt

{% hint style="info" %}
Tokens that bonded to Meteora after 2 April use the Moonit LP reward mechanism and all rewards go to the creator wallet. Learn [more](https://docs.moon.it/#dex-support).&#x20;
{% endhint %}

## I'm a top holder, how much do I receive from Airlock.sol

We snapshot the current top 50 holders just before each airdrop. These top holders share 90% of the rewards. In the example below, wallet starting with 58u.. holds 11.55% of the total supply which means she'll be eligible for 11.55% x 90% = 10.39% of the rewards. The creator wallet EBsc... is eligible for 9.7% x 90% = 8.73%.&#x20;

For a token with $1M in day-1 trading, the first airdrop will pay out around $40k in rewards. Meteora fees are stored in the pool and therefore are subject to impermanent losses if the price of the token drops.&#x20;

<figure><img src="/files/o2aDP5uNMXhT4e6dmnye" alt=""><figcaption><p>You can view the top holders tab on Moonshot </p></figcaption></figure>

## Slippage&#x20;

The difference between a trade's expected and actual price during high volatility. The default is set at 10%; you can change it anytime. You’re always prompted to sign the transactions, and the correct amounts are simulated in your wallet.

## How do you calculate Market Cap?

Total supply (e.g. 1Bn token) multiplied by  the price. &#x20;

## Is there a minimum buy amount?

Yes, the minimum buy amount is 0.005 SOL on Solana to avoid spamming and chain congestion. On Base it's 0.001 ETH.

## Is there a minimum sell amount?

The minimum sell equivalent is 0.001 SOL on Solana, and 0.001 ETH on Base. If your dust is worth less than that, you can’t sell, and you will see a message under the SELL button indicating this. You can always purchase more tokens and sell over 0.001 SOL / ETH equivalent.

## Why did my transaction fail

There are a few possible reasons why transactions might fail

* Trade exceeds your slippage tolerance. Try increasing it
* Network congestion. Increase the priority fees in settings
* Check the minimum amount you're buying/selling

## How long does the migration take?

It is typically 30 seconds, but it can take up to 2 minutes to completely migrate. While the migration is happening, trading on Moonshot is paused.

## Is Moonshot Audited

Yes, by Ackee Blockchain. See reports below:

{% embed url="<https://drive.google.com/file/d/1OKHOhjCdeLCqdf938wV4cUvlr88yDa8d/view?usp=sharing>" %}


# Terms and Conditions

> Last revised: June 21, 2024&#x20;
>
> Effective date: June 21, 2024

## 1. How it works

Moonshot is the best place to discover (and launch) the next trending token (“Collection”). All Collection creations are fair – meaning, there is no pre-sale, no insiders, and no scammy dynamics. All Collections have a fixed one (1) billion supply.

Each token is created by you when you initiate the creation of a smart-contract on the selected public blockchain. Once you create the token, the code becomes self-perpetuating and cannot be changed by you, or anyone else. These smart contracts are fully audited by Ackee Blockchain \[<https://ackee.xyz>]. Further, the supply and trading dynamics of any token on Moonshot follow fixed transfer and exchange rules set by the blockchain protocol that applies to every creator and all tokens and cannot be arbitrarily changed to prevent individuals from selling their tokens. But beware – prices could collapse anyway! That is the nature of meme tokens, and you willingly accept all risks in participating. ***You promise not to hold Moonshot responsible for any money you may spend and lose on tokens.***

If Moonshot detects or suspects that you are using the software interface for fraudulent purposes or in violation of any law, in a way that violates these Terms and Conditions, Moonshot reserves the right to change information related to your token or remove public access to the token, at any time, at the sole discretion of the Interface Providers (defined below).

## 2. Who is Behind Moonshot

Firstly and most importantly, you are. Moonshot is a software interface that allows users to access token creation and wallet features native to certain public blockchain protocols. If you choose to use the Collections Interface, \[Wen Moon Ser PTE. LTD., an affiliate of DEX Screener, Inc.] maintains the website that organizes publicly available price and market data. Helio Fintech Ltd (“Helio”) builds and integrates the back-end elements and functionalities of Moonshot, including the smart contract and APIs, between the underlying blockchain protocols and the Tokens Interface (DEX Screener and Helio together, the “Interface Providers”).

You can reach Moonshot at \[<support@moonshot.cc>] and Helio at \[<hi@hel.io>].

## 3. Binding Agreement

You agree that by accessing the Collections Interface, you have read, understood, and agreed to be bound by all of these Terms of Use. If you do not agree with these Terms, you agree not to use the Collections Interface. You also agree not to hold the Interface Providers responsible for any loss you suffer from engaging with the Collections Interface.

IN ADDITION, YOU MAY NOT USE OUR SITE IF YOU: (A) ARE NOT THE OLDER OF (i) AT LEAST EIGHTEEN (18) YEARS OF AGE; OR (ii) LEGAL AGE TO FORM A BINDING CONTRACT; OR (B) ARE A CITIZEN OR RESIDENT OF, OR LOCATED IN, ANY COUNTRY WHERE THE USE OF THE SITE IS ILLEGAL OR IMPERMISSIBLE OR WHICH WOULD SUBJECT US TO ANY REGISTRATION REQUIREMENT WITHIN SUCH JURISDICTION; OR (C) ARE OTHERWISE PROHIBITED FROM ACCESSING OR USING THIS SITE OR ANY OF THIS SITE’S FUNCTIONALITIES BY THESE TERMS OR BY APPLICABLE LAW.

Supplemental terms and conditions or policies that may be posted on the Site from time to time, including but not limited to our Privacy Policy, are incorporated into these Terms by reference and you hereby agree to be bound by such supplemental terms and conditions or policies. We reserve the right, in our sole discretion, to make changes or modifications to these Terms at any time and for any reason. We will alert you about any changes by updating the “Last updated” date of these Terms of Use and provide other forms of notice at our reasonable discretion. You agree that your use of the Site will be subject to the most current version of these Terms of Use at the time of such use.

## 4. Access to and Use of Moonshot

To access and use the Moonshot interface, you will need to connect your token wallet. You are solely responsible for the security of your wallet. You must only operate your wallet with a private key(s) that you created. You must treat the private key(s) as confidential and take reasonable measures to prevent disclosure of that information to anyone else

If you launch a token using the Moonshot interface, you agree and promise:

i) All content that you upload to the Site is your creation or under your ownership and you affirm and warrant that the content does not violate anyone’s intellectual property rights;

ii) The content is not obscene, hateful, or inciting of violence to any individual or group;

iii) You will not describe the token in a way that an individual or group will engage in any activity, such as adding utility to the token, that is likely to generate long-term value for the token Collection;

v) You will not engage with the Site through automated or non-human means, whether through a bot, script, or otherwise;

vi) You will not circumvent or disable security features of, or attack, the Site or any of the Site’s underlying blockchain networks or technologies;

vii) You will not introduce any material that is malicious or technologically harmful to the Site, its users, any underlying blockchain, or any of the Site’s related utilities or functionalities;

viii) You will not attempt to trick, defraud, manipulate, or mislead, and will not cause harm to, others;

ix) You will not disparage or harm the reputation of the Site or its owner; and

x) You will not share illegal, harmful, fraudulent, or offensive content; use private information of third parties without consent; disclose confidential information without permission; or encourage or induce others to engage in prohibited or illegal activities.

xi) You will not use the Site to engage in illegal activities or to circumvent any laws.

You acknowledge that once a token is created, neither you nor the Interface Providers can undo its creation; however, the Interface Providers reserve the right to remove your token from visibility, priority, or integration with the Moonshot Interface at any time for any reason.

## 5. Interface Provider Obligations

We strive to keep the Moonshot Interface available at all times, but access may be suspended for maintenance, for protection from attacks or other threats, or due to events beyond our reasonable control. Online support for the Site is available at \[<support@moonshot.cc>].

## 6. Modifications and Interruptions

We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

## 7. Fees

The Interface Providers will collect transaction fees on all trades conducted through the Site. We reserve the right to alter those fees at our discretion at any time.

## 8. Privacy Policy

By using the Site, you agree to be bound by our Privacy Policy posted on the Site. Please be advised the Site is based in the US. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the US then through your continued use of the Site, you are transferring your data to \[x], and you agree to have your data transferred to and processed in the US subject to applicable local laws and regulations.

## 9. Term and Termination

These Terms shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, AT ANY TIME, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, LIMIT, DENY, OR TERMINATE YOUR ACCESS TO AND USE OF THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED. If we block your access to the Site for any reason, you are prohibited from circumventing it, even if you may be acting on behalf of a third party. We reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

## 10. Blockchain Risks

Blockchain technologies carry a relatively high amount of foreseeable and unforeseeable risk from security, financial, technical, political, social, and personal safety standpoints. You understand that crypto-assets, including tokens, may have no present or future value and are highly volatile in nature due to many diverse factors, including without limitation use and adoption, speculation, manipulation, technology, security, and legal and regulatory developments and application. Furthermore, the speed and cost of transacting with cryptographic technologies, such as blockchains, are variable and highly volatile. You understand that the transparent nature of many blockchains means that any interactions you have with a blockchain may be publicly visible and readable in human form.

You represent that you are familiar with the underlying blockchain technologies behind the tokens, and the risks of buying them, which include but are not limited to vulnerability to hacking and total loss of your funds.

## 11. Warranty Disclaimer

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR ANY THIRD-PARTY CONTENT AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY  LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF YOUR ACCESS TO AND USE OF THE SITE OR OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE OR AS A RESULT OF A THIRD PARTY’S INTERACTIONS WITH THE SITE.

1. No professional advice. The content and information presented on or through the Site is made available solely for informational purposes. and should not be construed as professional advice (including, without limitation, tax, legal, or financial advice).
2. No fiduciary duty. These Terms are not intended to create any fiduciary duties between us and you or any third party. The Interface Providers never take possession, custody, control, ownership, or management of any crypto-assets or other property transmitted via the Site. To the fullest extent permissible by law, you agree that your use of the Site does not cause us or any other user to owe fiduciary duties or liabilities to your or any third party, and if any such duties or liabilities are afforded by law or by equity, they are hereby irrevocably disclaimed, waived, and eliminated to the fullest extent permissible by law.

## 12. Limitation of Liability

TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL WE, OUR AFFILIATES, OR OUR OR THEIR DIRECTORS, OFFICERS, EMPLOYEES, REPRESENTATIVES, OR AGENTS (“INTERFACE PROVIDERS OR AFFILIATES”) BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

AS BETWEEN DEX SCREENER AND HELIO, YOU AGREE THAT HELIO PROVIDES THE TECHNICAL INTEGRATION TO THE SMART CONTRACTS AND INDIVIDUALS’ TOKEN WALLETS AND HOLDS DEX SCREENER HARMLESS FOR ANY VULNERABILITIES OR EXPLOITS THEREIN. NOTWITHSTANDING THIS DISCLAIMER, YOU AGREE TO HOLD BOTH HELIO AND DEX SCREENER HARMLESS FOR ANY SUCH VULNERABILITY OR EXPLOIT.

## 13. Indemnification

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties outlined in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; (5) any overt harmful act toward any other user of the Site; (6) your use or reliance on of any information obtained from the Site; or (7) any other party’s access and use of the Site with your assistance or by using any device or account that your own or control. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding that is subject to this indemnification upon becoming aware of it.

## 14. Dispute Resolution

You agree that any dispute under these Terms will be resolved under the laws and in the courts of Singapore.

## 15. Miscellaneous

a. OFAC Regulations. The Site may be subject to sanctions laws and regulations of the United States and other jurisdictions. You represent that you are not named on any U.S. or E.U government denied-party or generally-sanctioned jurisdiction list. You agree that you are not listed as a specially designated national (SDN) by OFAC. You will not, nor will you permit any other users to, access or use the Site in a U.S.-sanctioned country (including Cuba, Iran, North Korea, Sudan, Syria, or Crimea (region of Ukraine)) or violation of any U.S. sanctions, export law or regulation. Moonshot will cooperate with any sanctions or financial crime enforcement action or investigation of users, as may be required by law, solely within Moonshot’s discretion.

for identifying. Taxes. You are solely responsible for identifying, calculating, reporting, and remitting to the appropriate tax authorities any and all taxes related to your token(s) that may apply to your use of Moonshot.

c. Severability. If any provision of these Terms is held by a court of competent jurisdiction to be contrary to law, the remaining provisions will remain in full force and effect.

d. Waiver. The waiver of a breach of any term hereof will in no way be construed as a waiver of any other term or breach hereof.

e. Entire Agreement. These Terms are the entire understanding of the parties concerning their subject matter and supersede any previous or contemporaneous communications, whether oral or written.

f. Headings and Interpretation. Headings and the summary explanations at the beginning of each Section of these Terms are for reference only and do not affect the parties’ rights and obligations hereunder. As used herein, “may” means “has the right, but not the obligation, to,” and “includes” and its variations mean “includes, but is not limited to.”

g. Electronic Communications, Transactions, and Signatures. Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email, and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction that require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.


# Content Policy

We are committed to enforcing these rules to ensure a safe and respectful environment. Violations may result in warnings, temporary or permanent suspensions, content removal, or other restrictions on token profiles. Our enforcement actions aim to maintain the integrity and safety of our platform. Although we cannot alter data on the blockchain, we reserve the right to remove token profiles that violate these rules. We can't control on-chain activities, but we are committed to preventing the spread of hate.

## 1. Respect and Safety

Content that promotes hate speech, violence, or discrimination based on race, ethnicity, gender, religion, or other protected characteristics will be promptly removed. We strive to maintain a safe and welcoming environment for all users.

## 2. Prohibit Exploitative Content

Content that exploits or abuses individuals, particularly minors, is strictly banned. This includes but is not limited to explicit, violent, or otherwise inappropriate content. We are committed to protecting vulnerable individuals from harm.

## 3. Genuine Engagement

Engage in authentic interactions. Manipulative practices such as creating fake accounts, spamming, or engaging in deceitful activities are strictly prohibited. Our goal is to foster genuine and constructive participation within the community.

## 4. Privacy Protection

Respect the privacy of others. Sharing or threatening to share someone else's personal or confidential information without their explicit consent is forbidden. Privacy breaches undermine trust and safety on our platform.

## 5. Compliance with Laws

Ensure all activities and content comply with applicable laws and regulations. Posting illegal content or engaging in illegal transactions is strictly prohibited. Adherence to legal standards is crucial for the integrity and legality of our platform.

## 6. Abuse Prevention

Users who abuse the platform through excessive or disruptive actions, such as bot activity, spamming, or any form of manipulation, may be blocked without prior notice. Maintaining the platform's functionality and integrity is paramount.


# Data API

Get information for all tokens and latest trades on Moonshot

{% hint style="info" %}
API calls are limited to **600 requests per minute**. If you need higher rate limits please [reach out to us](https://t.me/moonshotcabal).
{% endhint %}

{% openapi src="/files/lbVMRsp4hNNLPJFPrHYe" path="/token/v1/{chainId}/{pairIdOrTokenId}" method="get" expanded="false" %}
[openapi-spec.yml](https://93067809-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGKxOGvLv3tbyFIWVOFQm%2Fuploads%2FtwOSzVp9kemVK2IKYG4l%2Fopenapi-spec.yml?alt=media\&token=03f41c6b-2213-4f55-9b5e-b8c5da546ecc)
{% endopenapi %}

{% openapi src="/files/lbVMRsp4hNNLPJFPrHYe" path="/tokens/v1/{viewId}/{chainId}" method="get" %}
[openapi-spec.yml](https://93067809-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGKxOGvLv3tbyFIWVOFQm%2Fuploads%2FtwOSzVp9kemVK2IKYG4l%2Fopenapi-spec.yml?alt=media\&token=03f41c6b-2213-4f55-9b5e-b8c5da546ecc)
{% endopenapi %}

{% openapi src="/files/lbVMRsp4hNNLPJFPrHYe" path="/trades/v1/latest/{chainId}/{pairIdOrTokenId}" method="get" %}
[openapi-spec.yml](https://93067809-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGKxOGvLv3tbyFIWVOFQm%2Fuploads%2FtwOSzVp9kemVK2IKYG4l%2Fopenapi-spec.yml?alt=media\&token=03f41c6b-2213-4f55-9b5e-b8c5da546ecc)
{% endopenapi %}

{% openapi src="/files/lbVMRsp4hNNLPJFPrHYe" path="/trades/v1/latest/{chainId}" method="get" %}
[openapi-spec.yml](https://93067809-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGKxOGvLv3tbyFIWVOFQm%2Fuploads%2FtwOSzVp9kemVK2IKYG4l%2Fopenapi-spec.yml?alt=media\&token=03f41c6b-2213-4f55-9b5e-b8c5da546ecc)
{% endopenapi %}


# Bot SDK - Solana

Calculate prices and prepare buy/sell transactions via the Moonshot SDK

{% hint style="info" %}
Moonshot is now [Moonit.](https://moon.it/)  Join our [developer TG channel](< https://t.me/+dYgiHDL-Z29jZGRk>) for important updates.
{% endhint %}

👨‍💻 New repo is live: <https://github.com/gomoonit/moonit-sdk>

📦 NPM package is now under: <https://www.npmjs.com/package/@moonit/sdk>

:book: Find new docs here : <https://docs.moon.it/>

🗃️ Old repo moonshot-sdk will continue to work as expected for mint, buy & sell trading and will be deprecated over time with no further updates&#x20;


# Bot SDK - EVM

Calculate prices and prepare buy/sell transactions via the Moonshot SDK. Currently supports Base and Abstract chains

{% hint style="info" %}
Join our [developer TG channel](https://t.me/+dYgiHDL-Z29jZGRk) for important updates.
{% endhint %}

The trading instructions for buy and sell (but not mint) are directly available on-chain via the Moonshot Smart Contract.

### **Overview** <a href="#overview" id="overview"></a>

The Moonshot SDK for EVM provides the following functions for Base and Abstract chains:

* Minting of a token&#x20;
  * Prepare and submit transactions
  * Upload all assets
  * Buy an initial amount of the tokens you minted
* Get price of the token / position on bonding curve
* Calculate collateral/token in and out
* Generate buy and sell transactions (both exact in and out)
* Set the slippage amount

### Installation <a href="#installation" id="installation"></a>

Install the [package](https://www.npmjs.com/package/@wen-moon-ser/moonshot-sdk-evm) using npm or yarn

Copy

```
npm i @wen-moon-ser/moonshot-sdk-evm
# or
yarn add @wen-moon-ser/moonshot-sdk-evm
```

Example in Wen Moon repo : <https://github.com/wen-moon-ser/moonshot-sdk-evm/blob/main/README.md>&#x20;

### Initializing Moonshot <a href="#initializing-moonshot" id="initializing-moonshot"></a>

To initialize the Moonshot SDK, you need to create an instance of the Moonshot class. Before instantiating the Moonshot class, define your rpcUrl and signer.

#### Public endpoints for rpcUrl on Base <a href="#public-endpoints-for-rpcurl" id="public-endpoints-for-rpcurl"></a>

* Mainnet : <https://base.gateway.tenderly.co/>
* Testnet : <https://base-sepolia.gateway.tenderly.co/>

#### Public endpoints for rpcUrl on Abstract <a href="#public-endpoints-for-rpcurl" id="public-endpoints-for-rpcurl"></a>

* Mainnet : <https://api.mainnet.abs.xyz/>
* Testnet : <https://api.testnet.abs.xyz/>

#### Parameters of the Moonshot class <a href="#parameters-of-the-moonshot-class" id="parameters-of-the-moonshot-class"></a>

* environment : You can initialize the environment for either mainnet or devnet
  * For Mainnet, use Environment.MAINNET
  * For Devnet, use Environemnt.TESTNET
* signer : generated through your private key and rpcUrl
* network : For selecting which chain you want to connect on
  * For Base, leave this parameter as empty (as in the example below)
  * For Abstract, use Network.ASBTRACT

```typescript
import { Wallet } from 'ethers';
import { JsonRpcProvider } from 'ethers';
import { Moonshot, Token, FixedSide, Environment } from '@wen-moon-ser/moonshot-sdk-evm';

export const buyTx = async (): Promise<void> => {
  console.log('--- Buying token example ---');

  const rpcUrl = 'https://base-sepolia.gateway.tenderly.co';

  const provider = new JsonRpcProvider(rpcUrl);
  const signer = new Wallet('private key', provider);

  const moonshot = new Moonshot({
      signer: signer,
      env: Environment.TESTNET,
      // Currently supporting Base and Abstract (network :Network.ABSTRACT). Leave it empty for Base
  });
```

### Buy Example <a href="#buy-example" id="buy-example"></a>

```typescript
import {ethers, JsonRpcProvider, Wallet} from "ethers";
import {Environment, FixedSide, Moonshot, Token} from "@wen-moon-ser/moonshot-sdk-evm";

const buyExactIn = async (tokenAddress: string) => {
  const provider = new JsonRpcProvider(process.env.RPC_URL as string);
  const signer = new Wallet('private_key', provider);

  const moonshot = new Moonshot({
    signer,
    env: Environment.TESTNET,
  });

  const token = await Token.create({
    moonshot,
    provider,
    tokenAddress,
  });

  const collateralAmount = ethers.parseEther('0.001');

  const tokenAmountForTransaction = await token.getTokenAmountByCollateral({
    collateralAmount,
    tradeDirection: 'BUY',
  });

  const slippageBps = 1000;

  const buyTx = await token.prepareTx({
    slippageBps,
    tokenAmount: tokenAmountForTransaction,
    collateralAmount: collateralAmount,
    tradeDirection: 'BUY',
    fixedSide: FixedSide.IN,
  });

  const walletAddress = await signer.getAddress();

  const feeData = await provider.getFeeData();

  const nonce = await provider.getTransactionCount(walletAddress, 'latest');

  const enrichedBuyTx = {
    ...buyTx,
    gasPrice: feeData.gasPrice,
    nonce: nonce,
    from: walletAddress,
  };

  const buyTxGasLimit = await provider.estimateGas(enrichedBuyTx);

  const buyTxResponse = await signer.sendTransaction({
    ...buyTx,
    gasLimit: buyTxGasLimit,
  });

  const buyTxReceipt = await buyTxResponse.wait();

  if(buyTxReceipt?.status === 1) {
    const balance = await token.balanceOf(walletAddress);

    console.log(balance);
  }
};
```

### Sell Example <a href="#sell-example" id="sell-example"></a>

```typescript
import {JsonRpcProvider, Wallet} from "ethers";
import {Environment, FixedSide, Moonshot, Token} from "@wen-moon-ser/moonshot-sdk-evm";

const sellExactIn = async (tokenAddress: string) => {
  const provider = new JsonRpcProvider(process.env.RPC_URL as string);
  const signer = new Wallet('private_key', provider);

  const walletAddress = await signer.getAddress();

  const moonshot = new Moonshot({
    signer,
    env: Environment.TESTNET,
  });
  const token = await Token.create({
    moonshot,
    provider,
    tokenAddress,
  });

  const tokenAmount = await token.balanceOf(walletAddress);

  await token.approveForMoonshotSell(tokenAmount);

  const collateralAmountForTransaction =
    await token.getCollateralAmountByTokens({
      tokenAmount,
      tradeDirection: 'BUY',
    });

  const slippageBps = 1000;

  const sellTx = await token.prepareTx({
    slippageBps,
    tokenAmount,
    collateralAmount: collateralAmountForTransaction,
    tradeDirection: 'SELL',
    fixedSide: FixedSide.IN,
  });

  const feeData = await provider.getFeeData();

  const nonce = await provider.getTransactionCount(walletAddress, 'latest');

  const enrichedSellTx = {
    ...sellTx,
    gasPrice: feeData.gasPrice,
    nonce: nonce,
    from: walletAddress,
  };

  const sellTxGasLimit = await provider.estimateGas(enrichedSellTx);

  const sellTxResponse = await signer.sendTransaction({
    ...enrichedSellTx,
    gasLimit: sellTxGasLimit,
  });

  const sellTxReceipt = await sellTxResponse.wait();

  if(sellTxReceipt?.status === 1) {
    const balance = await token.balanceOf(walletAddress);

    console.log(balance);
  }
};
```

### Mint Example

* Image size restrictions - 2 MB for the icon and 5 MB for the banner
* Recommended aspect ratio - 1 : 1 for the icon and 3:1 for the banner
* tokenAmount - Lets you buy an initial amount of tokens that you just minted

```typescript
import {Environment, MigrationDex, MintTokenCurveType, Moonshot} from "@wen-moon-ser/moonshot-sdk-evm";
import {JsonRpcProvider, Transaction, Wallet} from "ethers";

const mintTx = async () => {
  const provider = new JsonRpcProvider(process.env.RPC_URL as string);
  const signer = new Wallet('private_key', provider);

  const moonshot = new Moonshot({
    signer,
    env: Environment.TESTNET,
  });

  const mockImg = '...';

  const prepMint = await moonshot.prepareMintTx({
    name: 'TEST_TOKEN',
    symbol: 'TEST_TOKEN',
    curveType: MintTokenCurveType.CONSTANT_PRODUCT_V1,
    migrationDex: MigrationDex.UNISWAP, // USE MigrationDex.ABSTRACTSWAP for abstract
    icon: mockImg,
    description: 'TEST_TOKEN',
    links: [{ url: 'https://x.com', label: 'x handle' }],
    banner: mockImg,
    creator: await signer.getAddress(),
    tokenAmount: '10000000000000',
  });

  const deserializedTransaction = Transaction.from(
    prepMint.transaction,
  ).toJSON();

  const walletAddress = await signer.getAddress();

  const feeData = await provider.getFeeData();

  const tx = {
    ...deserializedTransaction,
    gasPrice: feeData.gasPrice,
    from: walletAddress,
    nonce: await provider.getTransactionCount(walletAddress, 'latest'),
  };

  const gasLimit = await provider.estimateGas(tx);

  const txResponse = await signer.sendTransaction({
    ...tx,
    gasLimit,
  });

  const receipt = await txResponse.wait();

  if (receipt?.status === 1) {
    const res = await moonshot.submitMintTx({
      token: prepMint.token,
      signedTransaction: JSON.stringify(txResponse),
      tokenId: prepMint.draftTokenId,
    });

    const createdTokenAddress = receipt?.logs[0].address;

    console.log(createdTokenAddress);
  }
}
```


# Bonding Curve - Solana

The logic underpinning the curve and real world examples

### Introduction

This is an implementation of a bonding curve mechanism for buying and selling Moonshot tokens based on virtual collateral and token reserves, also known as a Constant Product curve. The curve has an quadratic shape so that the price rises slowly at the start and fast towards the end. \
\
Once \~80% of the 1B token supply is sold on the curve, the market cap reaches \~431 SOL and all remaining tokens & collateral migrate to either Meteora or Raydium (as set by the creator at  launch).   Approximately \~88 SOL of collateral is collected on the curve.&#x20;

{% hint style="info" %}
The curve described here applies to all coins launched after 12 August, '24. Coins launched prior use a linear curve that collects \~250 SOL in collateral before migration.
{% endhint %}

### Definitions

#### Curve

vTOKEN \* vSOL = k&#x20;

Where,

1. vTOKEN = virtual reserve of the token&#x20;
2. vSOL = virtual reserve of the collateral (SOL)
3. k = constant that determines the shape of the curve

#### Setting initial values&#x20;

We set the value of the coefficient k based on the initial price of the token

k = vTOKEN \* vSOL  = iVTOKEN \* iVSOL        - (1)

Where, iVTOKEN is initial amount of vTOKEN = 1,073,000,000

Initial price is set at 27.95 lamports or 0.00000002795 SOL

So initial price = iVSOL/iVTOKEN = 27.95 lamports

Initial virtual and collateral reserves are set as follows :

* iVTOKEN = 1,073,000,000
* iVSOL = 30

#### Values&#x20;

* Total supply of tokens (T)  = 1,000,000,000
* Minimum price is set to 27.95 lamports or 27.95e^-9 SOL
* Mcap = price \* 1,000,000,000
* Allocation at Migration (A)  = \~80% of total supply
  * The minimal token amount is 799820983207404442 (tokens have 9 decimals). That's the exact point trading stops and the migration begins. Its close to 80% of token allocation but not exact since the smart contract derives this number from the the MarketCapThreshold
  * MarketCapThreshold is set to 345 SOL (A \* price). The equates to a fully diluted market cap of \~431 SOL&#x20;
  * If a buyer places a larger trade right before the \~80% threshold, a max allocation of 82% can be sold on the curve
  * Curve progress % = allocation / min token amount (799820983207404442)
* Fee to be deducted at the time of migration (F) = 6 SOL for Raydium or 3 SOL for Meteora
  * **Raydium:** 1 SOL is paid to Raydium and 3 SOL is paid to openbook
  * **Meteora**: 1 SOL for creating various token accounts for [Launch. Lock. Earn](/faq#whats-launch-lock-and-earn)
  * 2 SOL migration fees paid to Moonshot

#### Calculation on tokens to Migrate (M) :&#x20;

For calculating M, we will calculate, at the time of migration (when supply reaches the allocation A),

* SOL collected as collateral
* Reduce the fee to be charged from the collateral SOL
* Calculate the price at the time of migration (allocation reached)
* Determine the no of tokens (to be migrated) based on the collateral collected and price at allocation

M = (collateral collected - migration fees) / price of token

* Collateral Collected= current\_virtual\_collateral\_reserves - initial\_collateral\_reserves&#x20;
* Migration fees = Fee charged for creating a pool on Raydium/Meteora + Moonshot migration Fee = 6SOL
* Price of token = current\_virtual\_collateral\_reserve / current\_virtual\_token\_reserve

#### Calculating tokens to Burn (B)

Tokens to Burn (B) = T - A - M

&#x20;    \= Total Supply - allocation(tokens sold at migration) - tokens to migrate (M)

So the total tokens in circulation post migration would be = A + M

\
Example
-------

Token Address : 6ovpeZNwNbXJzUaXMs8zozh9JvnJPq5teUJTQtLhRDwg

Total Supply (T) = 1,000,000,000

[Allocation at Migration](https://solscan.io/account/4kG9mqhHYjKDMwWM1xq1EZZtNUrn9wxdvhbQGs651u9a#splTransfers) : 801,085,146

[Collateral Collected at Migration](https://solscan.io/account/4kG9mqhHYjKDMwWM1xq1EZZtNUrn9wxdvhbQGs651u9a#splTransfers) : 88.386383546

[Collateral as SOL shifted to Raydium](https://solscan.io/tx/2AfEMzvPScRP1BdAkfUsVqM517tx9kdnZHVaNmS9gFHhJMTwQZzgxyc6cAG4K8GGvtbXPm9czxVoUPeUyNL2MKhZ) = collateral collected - Fees

\= 88.386383546 - 6

\= 82.386383546

Price at migration = (Difference in virtual token reserves) / (Difference in virtual collateral reserves)

&#x20;     \= (1,073,000,000 -801085145) / (88.386383546 + 30)&#x20;

&#x20;     \= 4.35380346e-7

[Tokens to Migrate (M)](https://solscan.io/tx/2AfEMzvPScRP1BdAkfUsVqM517tx9kdnZHVaNmS9gFHhJMTwQZzgxyc6cAG4K8GGvtbXPm9czxVoUPeUyNL2MKhZ) = (collateral collected - Fees) / Price

\= 82.386383546 / 4.35380346e-7

\= 189,228,531

[Tokens to Burn](https://solscan.io/tx/xqJmLhHLENjS5zUVfH4FFD5v1FiZPRWhkcmRHGT4XAipLpipjdXaGaKK7yFw3yDX3HbeLwGFuYuaEQeKxARVVSn)(B) = T - A - M

&#x20; \= 1,000,000,000 - 801,085,146 - 189,228,531

\= 9,686,323

[Raydium LP tokens burnt](https://solscan.io/token/3BXCVLEKjcPz1UKKVMELSj6yTEKTXQt1zU1WiQyL7EBV)

\
Calculating prices for buy & sell
---------------------------------

Please us our [Bot SDK](/developers/bot-sdk-solana) or contact our team for support


# Bonding curve - EVM

### Introduction <a href="#introduction" id="introduction"></a>

This is an implementation of a bonding curve mechanism for buying and selling Moonshot tokens based on virtual collateral and token reserves, also known as a Constant Product curve. The curve has an exponential shape so that the price rises slowly at the start and fast towards the end.

Once \~80% of the 1B token supply is sold on the curve, the fully diluted market cap reaches over 25 ETH and all remaining tokens & collateral migrate to [Uniswap V2](https://app.uniswap.org/swap)(for base) and [Abstract Swap](https://www.abs.xyz/trade)(for Abstract). Approximately \~4.9 ETH of collateral is collected on the curve.

The price at migration is 16.56 times the initial price on curve

### Definitions <a href="#definitions" id="definitions"></a>

#### **Curve** <a href="#curve" id="curve"></a>

vTOKEN \* vETH = k

Where,

* vTOKEN = virtual reserve of the token
* vETH = virtual reserve of the collateral (ETH)
* k = constant that determines the shape of the curve

#### **Setting initial values** <a href="#setting-initial-values" id="setting-initial-values"></a>

We set the value of the coefficient k based on the initial price of the token

k = vTOKEN \* vETH = iVTOKEN \* iVETH - (1)

Where, iVTOKEN and iVETH are the initial amount of vTOKEN and vETH respectively

We set these as follows :

* iVTOKEN = 1.06 \* 10^27 minimal unit token
* iVETH = 1.6 \* 10^18 minimal unit token

So initial price = iVETH/iVTOKEN = 1.509433962 gwei

#### **Values** <a href="#values" id="values"></a>

* Total supply of tokens (T) = 1,000,000,000
* Minimum price is set to 1gwei or 10^-9 ETH
* MarketCapThreshold is set to a fully diluted market cap of 25 ETH at \~80% of tokens sold. It is simply the (1 billion ) \* (Price of token at allocation A)
* Allocation at Migration (A) = \~80% of total supply
  * The exact minimal token amount is 799,538,871. Tokens have 18 decimals. That will be the exact point passed when trading stops and the migration begins.
  * If a buyer places a larger trade right before the \~80% threshold, a max allocation of 80.94% can be sold on the curve
* Fee to be deducted at the time of migration (F) = 0.15 ETH

#### **Calculation on tokens to Migrate (M) :** <a href="#calculation-on-tokens-to-migrate-m" id="calculation-on-tokens-to-migrate-m"></a>

For calculating M, we will calculate, at the time of migration (when supply reaches the allocation A),

* ETH collected as collateral
* Reduce the fee to be charged from the collateral ETH
* Calculate the price at the time of migration (allocation reached)
* Determine the no of tokens (to be migrated) based on the collateral collected and price at allocation

M = (collateral collected - migration fees) / price of token

* Collateral Collected= current\_virtual\_collateral\_reserves - initial\_collateral\_reserves
* Migration fees = Fee charged for creating a pool on Uniswap + Moonshot migration Fee = 0.15 ETH
* Price of token = current\_virtual\_collateral\_reserve / current\_virtual\_token\_reserve

#### **Calculating tokens to Burn (B)** <a href="#calculating-tokens-to-burn-b" id="calculating-tokens-to-burn-b"></a>

Tokens to Burn (B) = T - A - M

\= Total Supply - allocation(tokens sold at migration) - tokens to migrate (M)

So the total tokens in circulation post migration would be = A + M


# Bonding Curve - Bera

### Introduction <a href="#introduction" id="introduction"></a>

This is an implementation of a bonding curve mechanism for buying and selling Moonshot tokens based on virtual collateral and token reserves, also known as a Constant Product curve. The curve has an exponential shape so that the price rises slowly at the start and fast towards the end.

Once \~80% of the 1B token supply is sold on the curve, the fully diluted market cap reaches over 10,000 BERA and all remaining tokens & collateral migrate to Kodiak. Approximately \~1965 BERA of collateral is collected on the curve.

The price at migration is 16.56 times the initial price on curve

### Definitions <a href="#definitions" id="definitions"></a>

#### **Curve** <a href="#curve" id="curve"></a>

vTOKEN \* vBERA = k

Where,

* vTOKEN = virtual reserve of the token
* vBERA = virtual reserve of the collateral (BERA)
* k = constant that determines the shape of the curve

#### **Setting initial values** <a href="#setting-initial-values" id="setting-initial-values"></a>

We set the value of the coefficient k based on the initial price of the token

k = vTOKEN \* vBERA = iVTOKEN \* iVBERA - (1)

Where, iVTOKEN and iVBERA are the initial amount of vTOKEN and vBERA respectively

We set these as follows :

* iVTOKEN = 1.06 \* 10^27 minimal unit token
* iVBERA = 6.4 \* 10^18 minimal unit token

#### **Values** <a href="#values" id="values"></a>

* Total supply of tokens (T) = 1,000,000,000
* Minimum price is set to 1gwei or 10^-9 BERA
* MarketCapThreshold is set to a fully diluted market cap of 10,000 BERA at \~80% of tokens sold. It is simply the (1 billion ) \* (Price of token at allocation A)
* Allocation at Migration (A) = \~80% of total supply
  * The exact minimal token amount is 799,538,871. Tokens have 18 decimals. That will be the exact point passed when trading stops and the migration begins.
  * If a buyer places a larger trade right before the \~80% threshold, a max allocation of 80.94% can be sold on the curve
* Fee to be deducted at the time of migration (F) = 45 BERA

#### **Calculation on tokens to Migrate (M) :** <a href="#calculation-on-tokens-to-migrate-m" id="calculation-on-tokens-to-migrate-m"></a>

For calculating M, we will calculate, at the time of migration (when supply reaches the allocation A),

* BERA collected as collateral
* Reduce the fee to be charged from the collateral BERA
* Calculate the price at the time of migration (allocation reached)
* Determine the no of tokens (to be migrated) based on the collateral collected and price at allocation

M = (collateral collected - migration fees) / price of token

* Collateral Collected= current\_virtual\_collateral\_reserves - initial\_collateral\_reserves
* Migration fees = Fee charged for creating a pool on Uniswap + Moonshot migration Fee = 45 BERA
* Price of token = current\_virtual\_collateral\_reserve / current\_virtual\_token\_reserve

#### **Calculating tokens to Burn (B)** <a href="#calculating-tokens-to-burn-b" id="calculating-tokens-to-burn-b"></a>

Tokens to Burn (B) = T - A - M

\= Total Supply - allocation(tokens sold at migration) - tokens to migrate (M)

So the total tokens in circulation post migration would be = A + M


