Views
No views yet
@mobyagent, @whalewatch).fingpt-forecaster_dow30_llama2-7b_lora on Hugging Face).nolandai npm package) for JS/TS integration.1npm install nolandai
2ts
3Copy code
4import { NolandAI } from "nolandai";
5
6const bot = new NolandAI({ apiKey: process.env.NOLAND_KEY });
7const call = await bot.getTradingCall();
8console.log(call);
9From source (dev)
10bash
11Copy code
12git clone https://github.com/your-username/NolandAI.git
13cd NolandAI
14npm install # frontend/sdk
15pip install -r requirements.txt # if running python FastAPI backend
16🧩 Repository layout (recommended)
17pgsql
18Copy code
19NolandAI/
20├─ package.json
21├─ index.js
22├─ index.d.ts
23├─ README.md
24├─ LICENSE
25├─ CHANGELOG.md
26├─ CONTRIBUTING.md
27├─ .github/
28│ └─ workflows/ci.yml
29├─ backend/
30│ ├─ requirements.txt
31│ └─ main.py # FastAPI app (endpoints: /trading-call, /market-data/:token)
32├─ frontend/
33│ └─ (Next.js app)
34└─ examples/
35 └─ demo.js
36⚙️ Quickstart — Local dev (SDK + demo backend)
37Start FastAPI backend (example):
38
39bash
40Copy code
41# in backend/
42uvicorn main:app --reload --port 8000
43Test SDK locally:
44
45bash
46Copy code
47# from repo root or examples/
48node examples/demo.js
49📚 API (SDK)
50new NolandAI(config?: { apiKey?: string; baseUrl?: string })
51
52getTradingCall() → { token, action, confidence, reason }
53
54getMarketData(tokenAddress: string) → market JSON from backend
55
56🧪 Example examples/demo.js
57(see examples/demo.js file in repo — quick show of getTradingCall + getMarketData)
58
59📦 Publish & Releases
60We publish releases using semantic version tags (vMAJOR.MINOR.PATCH) and CI that validates tests and publishes to npm on tag push. See .github/workflows/ci.yml.
61
62Official release example:
63
64v1.0.0 — Captain’s Log (2025-09-20)
65
66Initial public release.
67
68npm package nolandai published.
69
70FastAPI endpoints /trading-call, /market-data/:token live.
71
72Hugging Face model integration.
73
74🏛️ Contributing
75See CONTRIBUTING.md. Pull requests welcome — use branches, add tests, sign commits.
76
77⚖️ License
78MIT © 2025 AuroraRift
79
80Maintainers
81AuroraRift Team — team@aurorarift.io
82
83Changelog
84See CHANGELOG.md for full release history.
85
86pgsql
87Copy code
88
89---
90
91# 2) Files to create (copy these into repo root exactly)
92
93Below are the key files. Put them where indicated.
94
95## `package.json` (repo root)
96```json
97{
98 "name": "nolandai",
99 "version": "1.0.0",
100 "description": "NolandAI - An AI-powered Solana trading agent for market intelligence, social scraping, and automated trading calls.",
101 "main": "index.js",
102 "types": "index.d.ts",
103 "type": "module",
104 "scripts": {
105 "build": "tsc",
106 "test": "node test.js || echo \"no tests\"",
107 "lint": "eslint ."
108 },
109 "repository": {
110 "type": "git",
111 "url": "https://github.com/your-username/NolandAI.git"
112 },
113 "keywords": [
114 "AI",
115 "trading",
116 "Solana",
117 "crypto",
118 "blockchain",
119 "LLM",
120 "bot",
121 "Dexscreener",
122 "NolandAI",
123 "AuroraRift"
124 ],
125 "author": "AuroraRift Team <team@aurorarift.io>",
126 "license": "MIT",
127 "bugs": {
128 "url": "https://github.com/your-username/NolandAI/issues"
129 },
130 "homepage": "https://huggingface.co/your-username/NolandAI",
131 "engines": {
132 "node": ">=18"
133 },
134 "dependencies": {
135 "axios": "^1.7.0",
136 "dotenv": "^16.3.1"
137 },
138 "devDependencies": {
139 "eslint": "^8.56.0",
140 "typescript": "^5.4.0"
141 }
142}
143index.js (repo root)
144js
145Copy code
146import axios from "axios";
147import dotenv from "dotenv";
148
149dotenv.config();
150
151export class NolandAI {
152 constructor(config = {}) {
153 this.apiKey = config.apiKey || process.env.NOLAND_KEY || "";
154 this.baseUrl = config.baseUrl || "http://localhost:8000"; // FastAPI default
155 }
156
157 async getTradingCall() {
158 const res = await axios.get(`${this.baseUrl}/trading-call`, {
159 headers: this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {}
160 });
161 return res.data;
162 }
163
164 async getMarketData(tokenAddress) {
165 const res = await axios.get(`${this.baseUrl}/market-data/${tokenAddress}`);
166 return res.data;
167 }
168}
169
170export default NolandAI;