Skip to main content
net8.0

C# SDK for Dexscreener's Moonshot program

Published
Jul 5, 2024
2y ago
Total Downloads
1.6K
1,644

Install

dotnet add package Solana.Moonshot --version 1.0.0
ProductVersions
.NET
net8.0

README

Solnet.Moonshot

Solnet.Moonshot is a C# client implementation of the Moonshot on-chain program.

Available public instructions:

Buy

Sell

Private instructions that require backend authority or migration authority from Dexscreener:

Mint

MigrateFunds

Config

Quick start example:

using Solnet.Rpc;
using Solnet.Wallet;
using PublicKey = Solnet.Wallet.PublicKey;
using Solnet.Moonshot;

var rpc = ClientFactory.GetClient(Cluster.MainNet);

Account botAccount = Account.FromSecretKey("PRIVATE_KEY_HERE");

MoonshotClient moonshotClient = new MoonshotClient(rpc);
//Everything required in the instruction keys can be found in an existing buy/sell transaction. Buy or sell through dexscreener then copy the data from the TX on solscan to fill in the object properties for a specific moonshot
BuyAccounts buyAccounts = new BuyAccounts()
{
    Sender = new PublicKey("CHANGE_TO_YOUR_WALLET_ADDRESS"),
    SenderTokenAccount = new PublicKey("CHANGE_TO_YOUR_ASSOCIATED_TOKEN_ADDRESS"),
    CurveAccount = new PublicKey("CHANGE_TO_CURVE_ACCOUNT_ADDRESS"),
    CurveTokenAccount = new PublicKey("CHANGE_TO_CURVE_TOKEN_ACCOUNT_ADDRESS"),
    DexFee = new PublicKey("CHANGE_TO_DEX_FEE_ADDRESS"),
    HelioFee = new PublicKey("CHANGE_TO_HELIO_FEE_ADDRESS"),
    Mint = new PublicKey("CHANGE_TO_TOKEN_ADDRESS"),
    ConfigAccount = new PublicKey("CHANGE_TO_TOKEN_CONFIG_ADDRESS"),
    TokenProgram = new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),
    AssociatedTokenProgram = new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"),
    SystemProgram = new PublicKey("11111111111111111111111111111111")

};
ulong token_amount = 10000;
ulong SOL_AMOUNT_AS_LAMPORTS = 5000000; //0.005 sol

TradeParams tParams = new TradeParams()
{
    Amount = token_amount * (ulong)1000000000,
    CollateralAmount = SOL_AMOUNT_AS_LAMPORTS,
    SlippageBps = 100

};

 
string signedTX = moonshotClient.SendBuyAsync(buyAccounts, tParams, botAccount.PublicKey, botAccount).Result;
var response = await rpc.SendTransactionAsync(Convert.FromBase64String(signedTX));

Console.WriteLine(response.Result);

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.