JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1659
  • Score
    100M100P100Q95603F
  • License MIT

Lumos Luna SDK - The first AI-native SDK for Terra Classic (LUNC) & Terra 2.0 (LUNA). Build revolutionary dApps with ease.

Package Exports

  • lumos-luna-sdk
  • lumos-luna-sdk/cli
  • lumos-luna-sdk/vibe

Readme

Lumos Luna SDK

Lumos Luna SDK

The First AI-Native SDK for Terra Classic (LUNC) & Terra 2.0 (LUNA)
Build dApps with AI-powered NFT generation, DeFi, Staking & IBC transfers

npm version License: MIT GitHub Stars GitHub Issues

EnglishDeutschTürkçePortuguêsEspañol中文한국어日本語Русский


What is Lumos Luna SDK?

Lumos Luna SDK is the most powerful and easiest-to-use SDK for building dApps on Terra Classic (LUNC) and Terra 2.0 (LUNA). It combines blockchain operations with AI capabilities to let you create next-generation applications.

Created by Schero94 for the Terra community.


Features at a Glance

Category Feature Description
Blockchain Dual-Chain Terra Classic (LUNC) + Terra 2.0 (LUNA)
Blockchain Wallet Management Create, import, multi-wallet support
Blockchain Transactions Send, receive, burn LUNC
Blockchain Staking Delegate, undelegate, claim rewards
Blockchain Governance Vote on proposals
DeFi IBC Transfers Cross-chain transfers via IBC
DeFi Token Swaps DEX integration
DeFi CW20 Tokens Full token standard support
AI Multi-Provider OpenAI, Anthropic, OpenRouter
AI Chat Completions GPT-4, Claude, Gemini
AI Image Generation DALL-E 3, Nano Banana (Gemini)
AI Market Analysis AI-powered insights
NFT Generative Art AI-generated NFT artwork
NFT Information NFTs Verified data as NFTs
NFT CW721 Standard Full NFT standard support

🇬🇧 English

Installation

npm install lumos-luna-sdk

Quick Start (5 Minutes)

Step 1: Setup

import { LunaSDK } from 'lumos-luna-sdk';

// Create SDK instance
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' or 'luna'
  mnemonic: 'your 24 word mnemonic phrase here'
});

Step 2: Basic Operations

// Get your balance
const balance = await sdk.getBalance();
console.log('Balance:', balance);

// Get current price
const price = await sdk.getPrice();
console.log('LUNC Price:', price.data.price, 'USD');

// Send tokens
const tx = await sdk.send('terra1recipient...', '1000000');  // 1 LUNC
console.log('TX Hash:', tx.data.txHash);

// Burn LUNC (Terra Classic only)
const burn = await sdk.burn('1000000');  // Burn 1 LUNC
console.log('Burned:', burn.data.txHash);

Step 3: AI Features

// Configure AI
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'your mnemonic...',
  ai: {
    provider: 'openrouter',         // 'openai', 'anthropic', or 'openrouter'
    apiKey: 'your-api-key'
  }
});

// Ask AI anything
const answer = await sdk.ai.complete('What is the future of LUNC?');
console.log(answer.data.content);

// Generate image with Nano Banana (Google Gemini)
const image = await sdk.ai.generateImage('A phoenix rising from Terra ashes', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('Image URL:', image.data.url);

Step 4: Mint AI-Generated NFT

// Step 1: Generate image first (preview)
const preview = await sdk.nft.prepareNFT({
  prompt: 'A cosmic wolf guardian of Terra',
  name: 'Cosmic Wolf #1',
  rarity: 'legendary',
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});

console.log('Preview image:', preview.data.imageUrl);
console.log('Estimated gas:', preview.data.estimatedGas);

// Step 2: If happy with image, mint it!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Cosmic Wolf #1',
  rarity: 'legendary',
  collection: 'cosmic-guardians'
});

console.log('Minted NFT:', nft.data.tokenId);

🎮 Vibe Mode (For Beginners & Fast Prototyping)

No coding experience needed! Vibe Mode makes blockchain easy with simple one-liners.

Setup (2 Lines)

import { vibe } from 'lumos-luna-sdk/vibe';
const sdk = await vibe({ chain: 'lunc' });

One-Liner Operations

// 💰 Check your balance
const balance = await sdk.quick.balance();

// 📊 Get current price
const price = await sdk.quick.price();
console.log(`LUNC: $${price}`);

// 🔥 Burn LUNC (help the community!)
await sdk.quick.burn(1_000_000);  // Burns 1 LUNC

// 💸 Send tokens
await sdk.quick.send('terra1friend...', 1_000_000);

// 🤖 Ask AI anything
const answer = await sdk.quick.ask('What is LUNC?');
console.log(answer);

// 🎨 Generate an image
const image = await sdk.quick.imagine('A phoenix rising');
console.log(image.url);

// 📈 Stake tokens
await sdk.quick.stake(1_000_000, 'terravaloper1...');

Environment Variables (Optional)

Create .env file - Vibe Mode reads it automatically:

MNEMONIC="your 24 word mnemonic phrase"
OPENROUTER_API_KEY="sk-or-..."  # For AI features

Then just run:

const sdk = await vibe();  // Auto-reads .env!

🖥️ CLI Tool (Command Line)

Use the SDK directly from your terminal - no coding required!

Installation

npm install -g lumos-luna-sdk
# or use directly with npx

Commands

# Check balance
npx lumos-luna balance terra1youraddress...

# Get current price
npx lumos-luna price

# Get LUNA price instead
npx lumos-luna price --chain luna

# Send tokens
npx lumos-luna send terra1recipient... 1000000

# Burn LUNC
npx lumos-luna burn 1000000 "Community burn! 🔥"

# Stake tokens
npx lumos-luna stake 1000000 terravaloper1...

# Unstake tokens
npx lumos-luna unstake 1000000 terravaloper1...

# Claim staking rewards
npx lumos-luna rewards terravaloper1...

# Help
npx lumos-luna help

Environment Setup

export MNEMONIC="your 24 word mnemonic"
# Then run commands without specifying wallet

📡 Live Price Streaming (WebSocket)

Get real-time price updates via Binance WebSocket:

import { PriceStream } from 'lumos-luna-sdk';

const stream = new PriceStream();

// Subscribe to LUNC price updates
stream.subscribe('lunc', (price) => {
  console.log(`LUNC: $${price.price.toFixed(8)}`);
  console.log(`24h Change: ${price.change24h}%`);
  console.log(`Volume: $${price.volume24h.toLocaleString()}`);
});

// Subscribe to LUNA too
stream.subscribe('luna', (price) => {
  console.log(`LUNA: $${price.price.toFixed(4)}`);
});

// Events
stream.on('connected', () => console.log('🟢 Connected!'));
stream.on('disconnected', () => console.log('🔴 Disconnected'));

// Get last known price
const lastPrice = stream.getLastPrice('lunc');

// Cleanup when done
stream.disconnect();

🔐 Encrypted KeyStore (Secure Wallet Storage)

Store your mnemonic securely with AES-256-GCM encryption:

import { KeyStore } from 'lumos-luna-sdk';

// Encrypt your mnemonic
const keystore = new KeyStore();
await keystore.encrypt(
  'your 24 word mnemonic phrase here',
  'yourSecurePassword123!'
);

// Save to file
await keystore.save('./my-wallet.keystore');

// Later: Load and decrypt
const loaded = await KeyStore.load('./my-wallet.keystore');
const mnemonic = await loaded.decrypt('yourSecurePassword123!');

// Use with SDK
const sdk = new LunaSDK({ chain: 'lunc', mnemonic });

// Clear from memory when done (security)
loaded.clearDecrypted();

KeyStore Features

  • AES-256-GCM encryption (military grade)
  • scrypt key derivation (password protection)
  • MAC verification (tamper detection)
  • JSON format (portable)

🇩🇪 Deutsch

Installation

npm install lumos-luna-sdk

Schnellstart (5 Minuten)

Schritt 1: Setup

import { LunaSDK } from 'lumos-luna-sdk';

// SDK Instanz erstellen
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' oder 'luna'
  mnemonic: 'deine 24 wort mnemonic phrase hier'
});

Schritt 2: Basis-Operationen

// Kontostand abrufen
const balance = await sdk.getBalance();
console.log('Kontostand:', balance);

// Aktuellen Preis abrufen
const price = await sdk.getPrice();
console.log('LUNC Preis:', price.data.price, 'USD');

// Tokens senden
const tx = await sdk.send('terra1empfaenger...', '1000000');  // 1 LUNC
console.log('TX Hash:', tx.data.txHash);

// LUNC verbrennen (nur Terra Classic)
const burn = await sdk.burn('1000000');  // 1 LUNC verbrennen
console.log('Verbrannt:', burn.data.txHash);

Schritt 3: KI-Features

// KI konfigurieren
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'deine mnemonic...',
  ai: {
    provider: 'openrouter',         // 'openai', 'anthropic', oder 'openrouter'
    apiKey: 'dein-api-key'
  }
});

// KI fragen
const answer = await sdk.ai.complete('Was ist die Zukunft von LUNC?');
console.log(answer.data.content);

// Bild generieren mit Nano Banana (Google Gemini)
const image = await sdk.ai.generateImage('Ein Phoenix der aus Terra aufsteigt', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('Bild URL:', image.data.url);

Schritt 4: KI-generiertes NFT minten

// Schritt 1: Erst Bild generieren (Vorschau)
const preview = await sdk.nft.prepareNFT({
  prompt: 'Ein kosmischer Wolf, Wächter von Terra',
  name: 'Kosmischer Wolf #1',
  rarity: 'legendary',
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});

console.log('Vorschau-Bild:', preview.data.imageUrl);

// Schritt 2: Wenn zufrieden, minten!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Kosmischer Wolf #1',
  rarity: 'legendary',
  collection: 'cosmic-guardians'
});

console.log('Gemintetes NFT:', nft.data.tokenId);

🇹🇷 Türkçe

Kurulum

npm install lumos-luna-sdk

Hızlı Başlangıç (5 Dakika)

Adım 1: Kurulum

import { LunaSDK } from 'lumos-luna-sdk';

// SDK örneği oluştur
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' veya 'luna'
  mnemonic: '24 kelimelik mnemonic ifadeniz'
});

Adım 2: Temel İşlemler

// Bakiye sorgula
const balance = await sdk.getBalance();
console.log('Bakiye:', balance);

// Güncel fiyat al
const price = await sdk.getPrice();
console.log('LUNC Fiyatı:', price.data.price, 'USD');

// Token gönder
const tx = await sdk.send('terra1alici...', '1000000');  // 1 LUNC
console.log('TX Hash:', tx.data.txHash);

// LUNC yak (sadece Terra Classic)
const burn = await sdk.burn('1000000');  // 1 LUNC yak
console.log('Yakıldı:', burn.data.txHash);

Adım 3: AI Özellikleri

// AI yapılandır
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'mnemonic...',
  ai: {
    provider: 'openrouter',
    apiKey: 'api-anahtariniz'
  }
});

// AI'ya sor
const answer = await sdk.ai.complete('LUNC\'un geleceği nedir?');
console.log(answer.data.content);

// Nano Banana (Google Gemini) ile görsel oluştur
const image = await sdk.ai.generateImage('Terra küllerinden yükselen anka kuşu', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('Görsel URL:', image.data.url);

Adım 4: AI ile NFT Oluştur

// Adım 1: Önce görsel oluştur (önizleme)
const preview = await sdk.nft.prepareNFT({
  prompt: 'Kozmik kurt, Terra\'nın koruyucusu',
  name: 'Kozmik Kurt #1',
  rarity: 'legendary'
});

console.log('Önizleme:', preview.data.imageUrl);

// Adım 2: Beğendiysen mint et!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Kozmik Kurt #1',
  rarity: 'legendary'
});

console.log('Mint edilen NFT:', nft.data.tokenId);

🇧🇷 Português

Instalação

npm install lumos-luna-sdk

Início Rápido (5 Minutos)

Passo 1: Configuração

import { LunaSDK } from 'lumos-luna-sdk';

// Criar instância do SDK
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' ou 'luna'
  mnemonic: 'sua frase mnemônica de 24 palavras'
});

Passo 2: Operações Básicas

// Obter saldo
const balance = await sdk.getBalance();
console.log('Saldo:', balance);

// Obter preço atual
const price = await sdk.getPrice();
console.log('Preço LUNC:', price.data.price, 'USD');

// Enviar tokens
const tx = await sdk.send('terra1destinatario...', '1000000');  // 1 LUNC
console.log('TX Hash:', tx.data.txHash);

// Queimar LUNC (apenas Terra Classic)
const burn = await sdk.burn('1000000');  // Queimar 1 LUNC
console.log('Queimado:', burn.data.txHash);

Passo 3: Recursos de IA

// Configurar IA
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'seu mnemônico...',
  ai: {
    provider: 'openrouter',
    apiKey: 'sua-chave-api'
  }
});

// Perguntar à IA
const answer = await sdk.ai.complete('Qual é o futuro do LUNC?');
console.log(answer.data.content);

// Gerar imagem com Nano Banana (Google Gemini)
const image = await sdk.ai.generateImage('Uma fênix renascendo das cinzas de Terra', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('URL da imagem:', image.data.url);

Passo 4: Mintar NFT com IA

// Passo 1: Primeiro gerar imagem (preview)
const preview = await sdk.nft.prepareNFT({
  prompt: 'Lobo cósmico, guardião de Terra',
  name: 'Lobo Cósmico #1',
  rarity: 'legendary'
});

console.log('Preview:', preview.data.imageUrl);

// Passo 2: Se gostar, minta!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Lobo Cósmico #1',
  rarity: 'legendary'
});

console.log('NFT mintado:', nft.data.tokenId);

🇪🇸 Español

Instalación

npm install lumos-luna-sdk

Inicio Rápido (5 Minutos)

Paso 1: Configuración

import { LunaSDK } from 'lumos-luna-sdk';

// Crear instancia del SDK
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' o 'luna'
  mnemonic: 'tu frase mnemónica de 24 palabras'
});

Paso 2: Operaciones Básicas

// Obtener saldo
const balance = await sdk.getBalance();
console.log('Saldo:', balance);

// Obtener precio actual
const price = await sdk.getPrice();
console.log('Precio LUNC:', price.data.price, 'USD');

// Enviar tokens
const tx = await sdk.send('terra1destinatario...', '1000000');  // 1 LUNC
console.log('TX Hash:', tx.data.txHash);

// Quemar LUNC (solo Terra Classic)
const burn = await sdk.burn('1000000');  // Quemar 1 LUNC
console.log('Quemado:', burn.data.txHash);

Paso 3: Funciones de IA

// Configurar IA
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'tu mnemónico...',
  ai: {
    provider: 'openrouter',
    apiKey: 'tu-clave-api'
  }
});

// Preguntar a la IA
const answer = await sdk.ai.complete('¿Cuál es el futuro de LUNC?');
console.log(answer.data.content);

// Generar imagen con Nano Banana (Google Gemini)
const image = await sdk.ai.generateImage('Un fénix renaciendo de las cenizas de Terra', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('URL de imagen:', image.data.url);

Paso 4: Mintear NFT con IA

// Paso 1: Primero generar imagen (preview)
const preview = await sdk.nft.prepareNFT({
  prompt: 'Lobo cósmico, guardián de Terra',
  name: 'Lobo Cósmico #1',
  rarity: 'legendary'
});

console.log('Preview:', preview.data.imageUrl);

// Paso 2: Si te gusta, ¡mintea!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Lobo Cósmico #1',
  rarity: 'legendary'
});

console.log('NFT minteado:', nft.data.tokenId);

🇨🇳 中文

安装

npm install lumos-luna-sdk

快速开始(5分钟)

步骤1:设置

import { LunaSDK } from 'lumos-luna-sdk';

// 创建SDK实例
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' 或 'luna'
  mnemonic: '你的24个助记词'
});

步骤2:基本操作

// 获取余额
const balance = await sdk.getBalance();
console.log('余额:', balance);

// 获取当前价格
const price = await sdk.getPrice();
console.log('LUNC价格:', price.data.price, 'USD');

// 发送代币
const tx = await sdk.send('terra1收款人...', '1000000');  // 1 LUNC
console.log('交易哈希:', tx.data.txHash);

// 销毁LUNC(仅Terra Classic)
const burn = await sdk.burn('1000000');  // 销毁1 LUNC
console.log('已销毁:', burn.data.txHash);

步骤3:AI功能

// 配置AI
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: '你的助记词...',
  ai: {
    provider: 'openrouter',
    apiKey: '你的API密钥'
  }
});

// 询问AI
const answer = await sdk.ai.complete('LUNC的未来是什么?');
console.log(answer.data.content);

// 用Nano Banana(Google Gemini)生成图片
const image = await sdk.ai.generateImage('凤凰从Terra灰烬中崛起', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('图片URL:', image.data.url);

步骤4:铸造AI生成的NFT

// 步骤1:先生成图片(预览)
const preview = await sdk.nft.prepareNFT({
  prompt: '宇宙狼,Terra的守护者',
  name: '宇宙狼 #1',
  rarity: 'legendary'
});

console.log('预览图片:', preview.data.imageUrl);

// 步骤2:满意后铸造!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: '宇宙狼 #1',
  rarity: 'legendary'
});

console.log('已铸造NFT:', nft.data.tokenId);

🇰🇷 한국어

설치

npm install lumos-luna-sdk

빠른 시작 (5분)

1단계: 설정

import { LunaSDK } from 'lumos-luna-sdk';

// SDK 인스턴스 생성
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' 또는 'luna'
  mnemonic: '24개 니모닉 단어'
});

2단계: 기본 작업

// 잔액 조회
const balance = await sdk.getBalance();
console.log('잔액:', balance);

// 현재 가격 조회
const price = await sdk.getPrice();
console.log('LUNC 가격:', price.data.price, 'USD');

// 토큰 전송
const tx = await sdk.send('terra1수신자...', '1000000');  // 1 LUNC
console.log('TX 해시:', tx.data.txHash);

// LUNC 소각 (Terra Classic만)
const burn = await sdk.burn('1000000');  // 1 LUNC 소각
console.log('소각됨:', burn.data.txHash);

3단계: AI 기능

// AI 설정
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: '니모닉...',
  ai: {
    provider: 'openrouter',
    apiKey: 'API-키'
  }
});

// AI에게 질문
const answer = await sdk.ai.complete('LUNC의 미래는?');
console.log(answer.data.content);

// Nano Banana (Google Gemini)로 이미지 생성
const image = await sdk.ai.generateImage('테라의 재에서 일어나는 불사조', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('이미지 URL:', image.data.url);

4단계: AI 생성 NFT 민팅

// 1단계: 먼저 이미지 생성 (미리보기)
const preview = await sdk.nft.prepareNFT({
  prompt: '우주 늑대, 테라의 수호자',
  name: '우주 늑대 #1',
  rarity: 'legendary'
});

console.log('미리보기:', preview.data.imageUrl);

// 2단계: 만족하면 민팅!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: '우주 늑대 #1',
  rarity: 'legendary'
});

console.log('민팅된 NFT:', nft.data.tokenId);

🇯🇵 日本語

インストール

npm install lumos-luna-sdk

クイックスタート(5分)

ステップ1:セットアップ

import { LunaSDK } from 'lumos-luna-sdk';

// SDKインスタンスを作成
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' または 'luna'
  mnemonic: '24語のニーモニックフレーズ'
});

ステップ2:基本操作

// 残高を取得
const balance = await sdk.getBalance();
console.log('残高:', balance);

// 現在の価格を取得
const price = await sdk.getPrice();
console.log('LUNC価格:', price.data.price, 'USD');

// トークンを送信
const tx = await sdk.send('terra1受取人...', '1000000');  // 1 LUNC
console.log('TXハッシュ:', tx.data.txHash);

// LUNCをバーン(Terra Classicのみ)
const burn = await sdk.burn('1000000');  // 1 LUNCをバーン
console.log('バーン済み:', burn.data.txHash);

ステップ3:AI機能

// AIを設定
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'ニーモニック...',
  ai: {
    provider: 'openrouter',
    apiKey: 'APIキー'
  }
});

// AIに質問
const answer = await sdk.ai.complete('LUNCの将来は?');
console.log(answer.data.content);

// Nano Banana(Google Gemini)で画像生成
const image = await sdk.ai.generateImage('テラの灰から蘇るフェニックス', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('画像URL:', image.data.url);

ステップ4:AI生成NFTをミント

// ステップ1:まず画像を生成(プレビュー)
const preview = await sdk.nft.prepareNFT({
  prompt: '宇宙の狼、テラの守護者',
  name: 'コズミックウルフ #1',
  rarity: 'legendary'
});

console.log('プレビュー:', preview.data.imageUrl);

// ステップ2:満足したらミント!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'コズミックウルフ #1',
  rarity: 'legendary'
});

console.log('ミントしたNFT:', nft.data.tokenId);

🇷🇺 Русский

Установка

npm install lumos-luna-sdk

Быстрый старт (5 минут)

Шаг 1: Настройка

import { LunaSDK } from 'lumos-luna-sdk';

// Создание экземпляра SDK
const sdk = new LunaSDK({
  chain: 'lunc',                    // 'lunc' или 'luna'
  mnemonic: 'ваша мнемоническая фраза из 24 слов'
});

Шаг 2: Базовые операции

// Получить баланс
const balance = await sdk.getBalance();
console.log('Баланс:', balance);

// Получить текущую цену
const price = await sdk.getPrice();
console.log('Цена LUNC:', price.data.price, 'USD');

// Отправить токены
const tx = await sdk.send('terra1получатель...', '1000000');  // 1 LUNC
console.log('TX хэш:', tx.data.txHash);

// Сжечь LUNC (только Terra Classic)
const burn = await sdk.burn('1000000');  // Сжечь 1 LUNC
console.log('Сожжено:', burn.data.txHash);

Шаг 3: AI функции

// Настройка AI
const sdk = new LunaSDK({
  chain: 'lunc',
  mnemonic: 'ваша мнемоника...',
  ai: {
    provider: 'openrouter',
    apiKey: 'ваш-api-ключ'
  }
});

// Спросить AI
const answer = await sdk.ai.complete('Какое будущее у LUNC?');
console.log(answer.data.content);

// Генерация изображения с Nano Banana (Google Gemini)
const image = await sdk.ai.generateImage('Феникс восстающий из пепла Terra', {
  provider: 'openrouter',
  model: 'google/gemini-2.5-flash-image'
});
console.log('URL изображения:', image.data.url);

Шаг 4: Минтинг AI-сгенерированного NFT

// Шаг 1: Сначала генерируем изображение (превью)
const preview = await sdk.nft.prepareNFT({
  prompt: 'Космический волк, страж Terra',
  name: 'Космический Волк #1',
  rarity: 'legendary'
});

console.log('Превью:', preview.data.imageUrl);

// Шаг 2: Если нравится, минтим!
const nft = await sdk.nft.mintFromImage({
  imageUrl: preview.data.imageUrl,
  name: 'Космический Волк #1',
  rarity: 'legendary'
});

console.log('Заминченный NFT:', nft.data.tokenId);

API Reference

Core Methods

Method Description Returns
sdk.getBalance(address?) Get token balance TokenBalance[]
sdk.getPrice() Get current LUNC/LUNA price PriceData
sdk.send(to, amount) Send tokens TransactionResult
sdk.burn(amount) Burn LUNC TransactionResult

Staking Methods

Method Description Returns
sdk.staking.delegate(validator, amount) Delegate tokens TransactionResult
sdk.staking.undelegate(validator, amount) Undelegate tokens TransactionResult
sdk.staking.claimRewards() Claim staking rewards TransactionResult
sdk.staking.getInfo() Get staking info StakingInfo

AI Methods

Method Description Returns
sdk.ai.complete(prompt, options?) AI chat completion AIResponse
sdk.ai.generateImage(prompt, options?) Generate image ImageResponse
sdk.ai.validateNews(content) Validate news/info NewsValidation
sdk.ai.analyzeMarket() AI market analysis MarketAnalysis

NFT Methods

Method Description Returns
sdk.nft.prepareNFT(options) Generate NFT preview PreparedNFT
sdk.nft.mintFromImage(options) Mint NFT from image GenerativeNFT
sdk.nft.mintGenerative(options) Generate + mint in one step GenerativeNFT
sdk.nft.mintInformation(options) Mint information NFT InformationNFT

DeFi Methods

Method Description Returns
sdk.defi.ibcTransfer(options) IBC cross-chain transfer TransactionResult
sdk.defi.swap(options) Swap tokens TransactionResult

Configuration

Environment Variables

Create a .env file:

# Wallet
WALLET_MNEMONIC="your 24 word mnemonic"

# Blockchain
CHAIN_ID="lunc"                    # lunc or luna
NETWORK="mainnet"                  # mainnet or testnet

# AI Provider (choose one)
AI_PROVIDER="openrouter"           # openai, anthropic, or openrouter
OPENROUTER_API_KEY="sk-or-..."
# OPENAI_API_KEY="sk-..."
# ANTHROPIC_API_KEY="sk-ant-..."

# Image Generation
IMAGE_PROVIDER="openrouter"
IMAGE_MODEL="google/gemini-2.5-flash-image"

AI Providers

Provider Models Image Support
OpenAI GPT-4, GPT-4o DALL-E 3
Anthropic Claude 3.5 Sonnet No
OpenRouter All models Nano Banana (Gemini)

Image Models (Nano Banana)

Model ID Quality
Nano Banana google/gemini-2.5-flash-image Fast, good quality
Nano Banana Pro google/gemini-3-pro-image-preview Best quality

Examples

Check out the examples folder for 8 complete working examples:

# File Description Difficulty
1 01-basic-balance.ts Query balance & price Beginner
2 02-send-tokens.ts Send LUNC tokens Beginner
3 03-burn-lunc.ts Burn LUNC for community Beginner
4 04-staking.ts Stake, unstake, rewards Intermediate
5 05-ai-chat.ts AI chat & market analysis Intermediate
6 06-generate-nft.ts AI-generated NFT minting Intermediate
7 07-ibc-transfer.ts Cross-chain IBC transfer Advanced
8 08-full-dapp.ts Complete dApp dashboard Advanced

Run any example:

npx ts-node examples/01-basic-balance.ts

Testing

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run specific test file
npm test -- tests/ai.test.ts

Contributing

Contributions are welcome! Please read our Contributing Guide first.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support


License

MIT License - see LICENSE file.


Built with ❤️ by Schero94 for the Terra Community

If you find this SDK useful, please give it a ⭐ on GitHub!