mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 01:48:22 +08:00
release: merge dev into main (2026-04-20) (#1487)
* feat(store): prevent deletion of active strategies and update translations (#1461) Co-authored-by: Dean <afei.wuhao@gmail.com> * fix: allow model switching without re-entering wallet key Users with existing wallets could not switch AI models because the "Start Trading" button required a valid private key even when one was already configured. Now the button is enabled when hasExistingWallet is true, and handleSubmit passes an empty key so the backend preserves the existing key. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: replace window.location with useNavigate for routing in auth components (#1470) Co-authored-by: Dean <afei.wuhao@gmail.com> * feat(trader): implement margin mode handling for order and leverage settings * refactor(trader): update SetMarginMode to avoid legacy endpoint and improve logging * feat(api): enhance strategy handling by integrating claw402 wallet key validation Added validation for the claw402 model's wallet key during strategy test runs. If the selected AI model is claw402, the server now checks for a valid wallet key and returns appropriate error messages if it's missing or if the model fails to load. This ensures better error handling and user feedback when working with AI models. * refactor(api): streamline claw402 wallet key retrieval and error handling Refactored the strategy handling logic to encapsulate claw402 wallet key retrieval in a new method, `resolveStrategyDataWalletKey`. This improves code readability and maintains consistent error handling for missing or invalid wallet keys during strategy test runs. The changes enhance the overall robustness of the AI model integration. * feat(trader): add claw402 wallet key resolution for trader configuration Implemented a new method, `resolveTraderDataWalletKey`, to retrieve the claw402 wallet key based on the selected AI model and user ID. This enhancement allows for better integration of the claw402 model within the trader configuration, ensuring that the correct wallet key is used for trading operations. The `AutoTraderConfig` struct has been updated to include the new `Claw402WalletKey` field, improving the overall handling of wallet keys in the trading process. * feat(claw402): preflight USDC balance before AI calls (#1479) * chore: ignore nofx-server build artifact Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(claw402): preflight USDC balance before AI calls Short-circuit claw402 Call/CallWithRequestFull when the wallet balance can't cover the estimated cost of the call, surfacing ErrInsufficientFunds instead of letting x402 fail mid-flight after the sign step. - wallet: cached balance lookup (30s TTL, per-address mutex) to avoid hammering the Base RPC; separate error-returning and display-only APIs so callers can distinguish zero balance from an unreachable RPC. - claw402: 1.5× safety multiplier on the flat per-call estimate, 4.0× for reasoner models whose chain-of-thought cost can blow past the flat rate. Fail-open on RPC errors — x402 still gates actually-empty wallets, and we prefer availability over extra strictness. - shortAddr redacts the wallet in error strings to avoid leaking the full address into telemetry bundles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(telemetry): report token usage for SSE streaming paths (#1475) * fix(telemetry): report token usage for SSE streaming paths ParseSSEStream already parsed the usage block from SSE chunks but only printed it, so claw402 streaming calls (and native streaming) never fired TokenUsageCallback. GA4 therefore undercounted AI usage on the streaming path. Return the parsed usage from ParseSSEStream and have both callers fire the callback with their own Provider/Model. * chore: drop leftover debug Printf in ParseSSEStream Telemetry is now wired via TokenUsageCallback, so the Printf is redundant noise in the stream path. * fix(gemini): update default model to gemini-3.1-pro Google discontinued gemini-3-pro-preview on 2026-03-26 and directs all callers to gemini-3.1-pro / gemini-3.1-pro-preview. Users on their own API key were getting errors from the native Gemini endpoint because the provider default pointed at the retired ID. Claw402 was unaffected because its route map already used gemini-3.1-pro. Align both the native provider default and the handler's preset list with gemini-3.1-pro so every code path sends a live model ID. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: extract ResolveClaw402WalletKey to store layer and expand OKX margin mode tests - Move duplicated claw402 wallet resolution logic into store.AIModelStore.ResolveClaw402WalletKey - api/strategy.go and manager/trader_manager.go now delegate to the shared method - Add detailed doc comment on OKX SetMarginMode explaining the local-state-only approach and why the legacy /api/v5/account/set-isolated-mode endpoint is not called - Add 3 new test cases: cross mode leverage, OpenShort tdMode, SetTakeProfit tdMode * fix(auth): prevent SetupPage remount from wiping freshly-set auth token (#1481) After #1470 moved routing into react-router, SetupPage is rendered at two different tree positions (top-level guard + /setup Route). When register success flushSync-sets `user`, the top-level guard stops matching and the Route-level SetupPage mounts as a new instance, re-running its cleanup useEffect and removing the auth_token that handlePostAuthSuccess just wrote. Subsequent requests 401 and bounce the user back to /login. Redirect /setup to /welcome when user is already set so SetupPage is never re-mounted during the auth transition. * fix(wallet): handle JSON-RPC null error field in balance query Some RPC implementations return explicit "error": null on success. json.RawMessage deserializes this as the 4-byte literal "null", so len() > 0 was true, causing every balance query to fail with "rpc error: null". Skip the null literal to avoid false positives. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add quick demo video to localized READMEs (#1486) * docs(README): add quick demo section with video link and image * docs(README): update demo video link * docs(i18n): add quick demo section with video link and image for multiple languages --------- Co-authored-by: Dean <afei.wuhao@gmail.com> --------- Co-authored-by: deanokk <wuhao@vergex.trade> Co-authored-by: Dean <afei.wuhao@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: root <root@localhost.localdomain>
This commit is contained in:
@@ -45,6 +45,20 @@ Open **http://127.0.0.1:3000**. Done.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Quick Demo
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="screenshots/demo-cover.png" alt="NOFX quick demo video" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Click the cover image to watch the demo video.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## How x402 Works
|
## How x402 Works
|
||||||
|
|
||||||
Traditional flow: register account → buy credits → get API key → manage quota → rotate keys.
|
Traditional flow: register account → buy credits → get API key → manage quota → rotate keys.
|
||||||
@@ -59,22 +73,22 @@ No accounts. No API keys. No prepaid credits. One wallet, every model.
|
|||||||
|
|
||||||
### Built-in x402 Providers
|
### Built-in x402 Providers
|
||||||
|
|
||||||
| Provider | Chain | Models |
|
| Provider | Chain | Models |
|
||||||
|:---------|:------|:-------|
|
| :--------------------------------------------------------------------------------------------------------------------------------- | :---- | :-------------------------------------------------------------------- |
|
||||||
| <img src="web/public/icons/claw402.png" width="20" height="20" style="vertical-align: middle;"/> **[Claw402](https://claw402.ai)** | Base | GPT-5.4, Claude Opus, DeepSeek, Qwen, Grok, Gemini, Kimi — 15+ models |
|
| <img src="web/public/icons/claw402.png" width="20" height="20" style="vertical-align: middle;"/> **[Claw402](https://claw402.ai)** | Base | GPT-5.4, Claude Opus, DeepSeek, Qwen, Grok, Gemini, Kimi — 15+ models |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What It Does
|
## What It Does
|
||||||
|
|
||||||
| Feature | Description |
|
| Feature | Description |
|
||||||
|:--------|:------------|
|
| :------------------ | :------------------------------------------------------------------------ |
|
||||||
| **Multi-AI** | DeepSeek, Qwen, GPT, Claude, Gemini, Grok, Kimi, MiniMax — switch anytime |
|
| **Multi-AI** | DeepSeek, Qwen, GPT, Claude, Gemini, Grok, Kimi, MiniMax — switch anytime |
|
||||||
| **Multi-Exchange** | Binance, Bybit, OKX, Bitget, KuCoin, Gate, Hyperliquid, Aster, Lighter |
|
| **Multi-Exchange** | Binance, Bybit, OKX, Bitget, KuCoin, Gate, Hyperliquid, Aster, Lighter |
|
||||||
| **Strategy Studio** | Visual builder — coin sources, indicators, risk controls |
|
| **Strategy Studio** | Visual builder — coin sources, indicators, risk controls |
|
||||||
| **AI Competition** | AIs compete in real-time, leaderboard ranks performance |
|
| **AI Competition** | AIs compete in real-time, leaderboard ranks performance |
|
||||||
| **Telegram Agent** | Chat with your trading assistant — streaming, tool calling, memory |
|
| **Telegram Agent** | Chat with your trading assistant — streaming, tool calling, memory |
|
||||||
| **Dashboard** | Live positions, P/L, AI decision logs with Chain of Thought |
|
| **Dashboard** | Live positions, P/L, AI decision logs with Chain of Thought |
|
||||||
|
|
||||||
### Markets
|
### Markets
|
||||||
|
|
||||||
@@ -82,35 +96,35 @@ Crypto · US Stocks · Forex · Metals
|
|||||||
|
|
||||||
### Exchanges (CEX)
|
### Exchanges (CEX)
|
||||||
|
|
||||||
| Exchange | Status | Register (Fee Discount) |
|
| Exchange | Status | Register (Fee Discount) |
|
||||||
|:---------|:------:|:------------------------|
|
| :-------------------------------------------------------------------------------------------------------------------- | :----: | :----------------------------------------------------------------------------------- |
|
||||||
| <img src="web/public/exchange-icons/binance.jpg" width="20" height="20" style="vertical-align: middle;"/> **Binance** | ✅ | [Register](https://www.binance.com/join?ref=NOFXENG) |
|
| <img src="web/public/exchange-icons/binance.jpg" width="20" height="20" style="vertical-align: middle;"/> **Binance** | ✅ | [Register](https://www.binance.com/join?ref=NOFXENG) |
|
||||||
| <img src="web/public/exchange-icons/bybit.png" width="20" height="20" style="vertical-align: middle;"/> **Bybit** | ✅ | [Register](https://partner.bybit.com/b/83856) |
|
| <img src="web/public/exchange-icons/bybit.png" width="20" height="20" style="vertical-align: middle;"/> **Bybit** | ✅ | [Register](https://partner.bybit.com/b/83856) |
|
||||||
| <img src="web/public/exchange-icons/okx.svg" width="20" height="20" style="vertical-align: middle;"/> **OKX** | ✅ | [Register](https://www.okx.com/join/1865360) |
|
| <img src="web/public/exchange-icons/okx.svg" width="20" height="20" style="vertical-align: middle;"/> **OKX** | ✅ | [Register](https://www.okx.com/join/1865360) |
|
||||||
| <img src="web/public/exchange-icons/bitget.svg" width="20" height="20" style="vertical-align: middle;"/> **Bitget** | ✅ | [Register](https://www.bitget.com/referral/register?from=referral&clacCode=c8a43172) |
|
| <img src="web/public/exchange-icons/bitget.svg" width="20" height="20" style="vertical-align: middle;"/> **Bitget** | ✅ | [Register](https://www.bitget.com/referral/register?from=referral&clacCode=c8a43172) |
|
||||||
| <img src="web/public/exchange-icons/kucoin.svg" width="20" height="20" style="vertical-align: middle;"/> **KuCoin** | ✅ | [Register](https://www.kucoin.com/r/broker/CXEV7XKK) |
|
| <img src="web/public/exchange-icons/kucoin.svg" width="20" height="20" style="vertical-align: middle;"/> **KuCoin** | ✅ | [Register](https://www.kucoin.com/r/broker/CXEV7XKK) |
|
||||||
| <img src="web/public/exchange-icons/gate.svg" width="20" height="20" style="vertical-align: middle;"/> **Gate** | ✅ | [Register](https://www.gatenode.xyz/share/VQBGUAxY) |
|
| <img src="web/public/exchange-icons/gate.svg" width="20" height="20" style="vertical-align: middle;"/> **Gate** | ✅ | [Register](https://www.gatenode.xyz/share/VQBGUAxY) |
|
||||||
|
|
||||||
### Exchanges (Perp-DEX)
|
### Exchanges (Perp-DEX)
|
||||||
|
|
||||||
| Exchange | Status | Register (Fee Discount) |
|
| Exchange | Status | Register (Fee Discount) |
|
||||||
|:---------|:------:|:------------------------|
|
| :---------------------------------------------------------------------------------------------------------------------------- | :----: | :------------------------------------------------------ |
|
||||||
| <img src="web/public/exchange-icons/hyperliquid.png" width="20" height="20" style="vertical-align: middle;"/> **Hyperliquid** | ✅ | [Register](https://app.hyperliquid.xyz/join/AITRADING) |
|
| <img src="web/public/exchange-icons/hyperliquid.png" width="20" height="20" style="vertical-align: middle;"/> **Hyperliquid** | ✅ | [Register](https://app.hyperliquid.xyz/join/AITRADING) |
|
||||||
| <img src="web/public/exchange-icons/aster.svg" width="20" height="20" style="vertical-align: middle;"/> **Aster DEX** | ✅ | [Register](https://www.asterdex.com/en/referral/fdfc0e) |
|
| <img src="web/public/exchange-icons/aster.svg" width="20" height="20" style="vertical-align: middle;"/> **Aster DEX** | ✅ | [Register](https://www.asterdex.com/en/referral/fdfc0e) |
|
||||||
| <img src="web/public/exchange-icons/lighter.png" width="20" height="20" style="vertical-align: middle;"/> **Lighter** | ✅ | [Register](https://app.lighter.xyz/?referral=68151432) |
|
| <img src="web/public/exchange-icons/lighter.png" width="20" height="20" style="vertical-align: middle;"/> **Lighter** | ✅ | [Register](https://app.lighter.xyz/?referral=68151432) |
|
||||||
|
|
||||||
### AI Models (API Key Mode)
|
### AI Models (API Key Mode)
|
||||||
|
|
||||||
| AI Model | Status | Get API Key |
|
| AI Model | Status | Get API Key |
|
||||||
|:---------|:------:|:------------|
|
| :--------------------------------------------------------------------------------------------------------------- | :----: | :-------------------------------------------------- |
|
||||||
| <img src="web/public/icons/deepseek.svg" width="20" height="20" style="vertical-align: middle;"/> **DeepSeek** | ✅ | [Get API Key](https://platform.deepseek.com) |
|
| <img src="web/public/icons/deepseek.svg" width="20" height="20" style="vertical-align: middle;"/> **DeepSeek** | ✅ | [Get API Key](https://platform.deepseek.com) |
|
||||||
| <img src="web/public/icons/qwen.svg" width="20" height="20" style="vertical-align: middle;"/> **Qwen** | ✅ | [Get API Key](https://dashscope.console.aliyun.com) |
|
| <img src="web/public/icons/qwen.svg" width="20" height="20" style="vertical-align: middle;"/> **Qwen** | ✅ | [Get API Key](https://dashscope.console.aliyun.com) |
|
||||||
| <img src="web/public/icons/openai.svg" width="20" height="20" style="vertical-align: middle;"/> **OpenAI (GPT)** | ✅ | [Get API Key](https://platform.openai.com) |
|
| <img src="web/public/icons/openai.svg" width="20" height="20" style="vertical-align: middle;"/> **OpenAI (GPT)** | ✅ | [Get API Key](https://platform.openai.com) |
|
||||||
| <img src="web/public/icons/claude.svg" width="20" height="20" style="vertical-align: middle;"/> **Claude** | ✅ | [Get API Key](https://console.anthropic.com) |
|
| <img src="web/public/icons/claude.svg" width="20" height="20" style="vertical-align: middle;"/> **Claude** | ✅ | [Get API Key](https://console.anthropic.com) |
|
||||||
| <img src="web/public/icons/gemini.svg" width="20" height="20" style="vertical-align: middle;"/> **Gemini** | ✅ | [Get API Key](https://aistudio.google.com) |
|
| <img src="web/public/icons/gemini.svg" width="20" height="20" style="vertical-align: middle;"/> **Gemini** | ✅ | [Get API Key](https://aistudio.google.com) |
|
||||||
| <img src="web/public/icons/grok.svg" width="20" height="20" style="vertical-align: middle;"/> **Grok** | ✅ | [Get API Key](https://console.x.ai) |
|
| <img src="web/public/icons/grok.svg" width="20" height="20" style="vertical-align: middle;"/> **Grok** | ✅ | [Get API Key](https://console.x.ai) |
|
||||||
| <img src="web/public/icons/kimi.svg" width="20" height="20" style="vertical-align: middle;"/> **Kimi** | ✅ | [Get API Key](https://platform.moonshot.cn) |
|
| <img src="web/public/icons/kimi.svg" width="20" height="20" style="vertical-align: middle;"/> **Kimi** | ✅ | [Get API Key](https://platform.moonshot.cn) |
|
||||||
| <img src="web/public/icons/minimax.svg" width="20" height="20" style="vertical-align: middle;"/> **MiniMax** | ✅ | [Get API Key](https://platform.minimaxi.com) |
|
| <img src="web/public/icons/minimax.svg" width="20" height="20" style="vertical-align: middle;"/> **MiniMax** | ✅ | [Get API Key](https://platform.minimaxi.com) |
|
||||||
|
|
||||||
### AI Models (x402 Mode — No API Key)
|
### AI Models (x402 Mode — No API Key)
|
||||||
|
|
||||||
@@ -123,41 +137,45 @@ Crypto · US Stocks · Forex · Metals
|
|||||||
<details>
|
<details>
|
||||||
<summary><b>Config Page</b></summary>
|
<summary><b>Config Page</b></summary>
|
||||||
|
|
||||||
| AI Models & Exchanges | Traders List |
|
| AI Models & Exchanges | Traders List |
|
||||||
|:---:|:---:|
|
| :----------------------------------------------------------: | :----------------------------------------------------------: |
|
||||||
| <img src="screenshots/config-ai-exchanges.png" width="400"/> | <img src="screenshots/config-traders-list.png" width="400"/> |
|
| <img src="screenshots/config-ai-exchanges.png" width="400"/> | <img src="screenshots/config-traders-list.png" width="400"/> |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><b>Dashboard</b></summary>
|
<summary><b>Dashboard</b></summary>
|
||||||
|
|
||||||
| Overview | Market Chart |
|
| Overview | Market Chart |
|
||||||
|:---:|:---:|
|
| :-----------------------------------------------------: | :-------------------------------------------------------------: |
|
||||||
| <img src="screenshots/dashboard-page.png" width="400"/> | <img src="screenshots/dashboard-market-chart.png" width="400"/> |
|
| <img src="screenshots/dashboard-page.png" width="400"/> | <img src="screenshots/dashboard-market-chart.png" width="400"/> |
|
||||||
|
|
||||||
| Trading Stats | Position History |
|
| Trading Stats | Position History |
|
||||||
|:---:|:---:|
|
| :--------------------------------------------------------------: | :-----------------------------------------------------------------: |
|
||||||
| <img src="screenshots/dashboard-trading-stats.png" width="400"/> | <img src="screenshots/dashboard-position-history.png" width="400"/> |
|
| <img src="screenshots/dashboard-trading-stats.png" width="400"/> | <img src="screenshots/dashboard-position-history.png" width="400"/> |
|
||||||
|
|
||||||
| Positions | Trader Details |
|
| Positions | Trader Details |
|
||||||
|:---:|:---:|
|
| :----------------------------------------------------------: | :---------------------------------------------------: |
|
||||||
| <img src="screenshots/dashboard-positions.png" width="400"/> | <img src="screenshots/details-page.png" width="400"/> |
|
| <img src="screenshots/dashboard-positions.png" width="400"/> | <img src="screenshots/details-page.png" width="400"/> |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><b>Strategy Studio</b></summary>
|
<summary><b>Strategy Studio</b></summary>
|
||||||
|
|
||||||
| Strategy Editor | Indicators Config |
|
| Strategy Editor | Indicators Config |
|
||||||
|:---:|:---:|
|
| :------------------------------------------------------: | :----------------------------------------------------------: |
|
||||||
| <img src="screenshots/strategy-studio.png" width="400"/> | <img src="screenshots/strategy-indicators.png" width="400"/> |
|
| <img src="screenshots/strategy-studio.png" width="400"/> | <img src="screenshots/strategy-indicators.png" width="400"/> |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><b>Competition</b></summary>
|
<summary><b>Competition</b></summary>
|
||||||
|
|
||||||
| Competition Mode |
|
| Competition Mode |
|
||||||
|:---:|
|
| :-------------------------------------------------------: |
|
||||||
| <img src="screenshots/competition-page.png" width="400"/> |
|
| <img src="screenshots/competition-page.png" width="400"/> |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -229,12 +247,14 @@ Everything through the web UI at **http://127.0.0.1:3000**.
|
|||||||
## Deploy to Server
|
## Deploy to Server
|
||||||
|
|
||||||
**HTTP (quick):**
|
**HTTP (quick):**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bash
|
||||||
# Access via http://YOUR_IP:3000
|
# Access via http://YOUR_IP:3000
|
||||||
```
|
```
|
||||||
|
|
||||||
**HTTPS (Cloudflare):**
|
**HTTPS (Cloudflare):**
|
||||||
|
|
||||||
1. Add domain to [Cloudflare](https://dash.cloudflare.com) (free plan)
|
1. Add domain to [Cloudflare](https://dash.cloudflare.com) (free plan)
|
||||||
2. A record → your server IP (Proxied)
|
2. A record → your server IP (Proxied)
|
||||||
3. SSL/TLS → Flexible
|
3. SSL/TLS → Flexible
|
||||||
@@ -272,12 +292,12 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
## Docs
|
## Docs
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
|:--|:--|
|
| :------------------------------------------------------ | :------------------------------------ |
|
||||||
| [Architecture](docs/architecture/README.md) | System design and module index |
|
| [Architecture](docs/architecture/README.md) | System design and module index |
|
||||||
| [Strategy Module](docs/architecture/STRATEGY_MODULE.md) | Coin selection, AI prompts, execution |
|
| [Strategy Module](docs/architecture/STRATEGY_MODULE.md) | Coin selection, AI prompts, execution |
|
||||||
| [FAQ](docs/faq/README.md) | Common questions |
|
| [FAQ](docs/faq/README.md) | Common questions |
|
||||||
| [Getting Started](docs/getting-started/README.md) | Deployment guide |
|
| [Getting Started](docs/getting-started/README.md) | Deployment guide |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -291,26 +311,26 @@ All contributions are tracked. When NOFX generates revenue, contributors receive
|
|||||||
|
|
||||||
**[Pinned Issues](https://github.com/NoFxAiOS/nofx/issues) get the highest rewards.**
|
**[Pinned Issues](https://github.com/NoFxAiOS/nofx/issues) get the highest rewards.**
|
||||||
|
|
||||||
| Contribution | Weight |
|
| Contribution | Weight |
|
||||||
|:-------------|:------:|
|
| :---------------- | :----: |
|
||||||
| Pinned Issue PRs | ★★★★★★ |
|
| Pinned Issue PRs | ★★★★★★ |
|
||||||
| Code (Merged PRs) | ★★★★★ |
|
| Code (Merged PRs) | ★★★★★ |
|
||||||
| Bug Fixes | ★★★★ |
|
| Bug Fixes | ★★★★ |
|
||||||
| Feature Ideas | ★★★ |
|
| Feature Ideas | ★★★ |
|
||||||
| Bug Reports | ★★ |
|
| Bug Reports | ★★ |
|
||||||
| Documentation | ★★ |
|
| Documentation | ★★ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
| | |
|
| | |
|
||||||
|:--|:--|
|
| :-------- | :---------------------------------------------------- |
|
||||||
| Website | [nofxai.com](https://nofxai.com) |
|
| Website | [nofxai.com](https://nofxai.com) |
|
||||||
| Dashboard | [nofxos.ai/dashboard](https://nofxos.ai/dashboard) |
|
| Dashboard | [nofxos.ai/dashboard](https://nofxos.ai/dashboard) |
|
||||||
| API Docs | [nofxos.ai/api-docs](https://nofxos.ai/api-docs) |
|
| API Docs | [nofxos.ai/api-docs](https://nofxos.ai/api-docs) |
|
||||||
| Telegram | [nofx_dev_community](https://t.me/nofx_dev_community) |
|
| Telegram | [nofx_dev_community](https://t.me/nofx_dev_community) |
|
||||||
| Twitter | [@nofx_official](https://x.com/nofx_official) |
|
| Twitter | [@nofx_official](https://x.com/nofx_official) |
|
||||||
|
|
||||||
> **Risk Warning**: AI auto-trading carries significant risks. Recommended for learning/research or small amounts only.
|
> **Risk Warning**: AI auto-trading carries significant risks. Recommended for learning/research or small amounts only.
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,20 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## クイックデモ
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="NOFX クイックデモ動画" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
カバー画像をクリックするとデモ動画を視聴できます。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## x402 の仕組み
|
## x402 の仕組み
|
||||||
|
|
||||||
従来のフロー:アカウント登録 → クレジット購入 → API キー取得 → クォータ管理 → キーのローテーション。
|
従来のフロー:アカウント登録 → クレジット購入 → API キー取得 → クォータ管理 → キーのローテーション。
|
||||||
|
|||||||
@@ -45,6 +45,20 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 빠른 데모
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="NOFX 빠른 데모 영상" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
커버 이미지를 클릭하면 데모 영상을 볼 수 있습니다.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## x402 작동 방식
|
## x402 작동 방식
|
||||||
|
|
||||||
기존 플로우: 계정 등록 → 크레딧 구매 → API 키 받기 → 쿼터 관리 → 키 교체.
|
기존 플로우: 계정 등록 → 크레딧 구매 → API 키 받기 → 쿼터 관리 → 키 교체.
|
||||||
|
|||||||
@@ -45,6 +45,20 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Быстрое демо
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="Видео быстрого демо NOFX" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Нажмите на изображение обложки, чтобы посмотреть демо-видео.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Как работает x402
|
## Как работает x402
|
||||||
|
|
||||||
Традиционный процесс: регистрация → покупка кредитов → получение API ключа → управление квотой → ротация ключей.
|
Традиционный процесс: регистрация → покупка кредитов → получение API ключа → управление квотой → ротация ключей.
|
||||||
|
|||||||
@@ -45,6 +45,20 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Швидке демо
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="Відео швидкого демо NOFX" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Натисніть на зображення обкладинки, щоб переглянути демо-відео.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Як працює x402
|
## Як працює x402
|
||||||
|
|
||||||
Традиційний процес: реєстрація → купівля кредитів → отримання API ключа → управління квотою → ротація ключів.
|
Традиційний процес: реєстрація → купівля кредитів → отримання API ключа → управління квотою → ротація ключів.
|
||||||
|
|||||||
@@ -45,6 +45,20 @@ Mở **http://127.0.0.1:3000**. Xong.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Demo nhanh
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="Video demo nhanh của NOFX" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Nhấp vào ảnh bìa để xem video demo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## x402 hoạt động như thế nào
|
## x402 hoạt động như thế nào
|
||||||
|
|
||||||
Quy trình truyền thống: đăng ký tài khoản → mua credits → lấy API key → quản lý quota → xoay key.
|
Quy trình truyền thống: đăng ký tài khoản → mua credits → lấy API key → quản lý quota → xoay key.
|
||||||
|
|||||||
@@ -47,6 +47,20 @@ curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bas
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 快速演示
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://drive.google.com/file/d/1frzw-HDZ3viQvLOQKsAJGc9bT0dXs68D/view">
|
||||||
|
<img src="../../../screenshots/demo-cover.png" alt="NOFX 快速演示视频" width="900"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
点击封面图即可观看 Demo 视频。
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## x402 如何工作
|
## x402 如何工作
|
||||||
|
|
||||||
传统流程:注册账号 → 购买额度 → 获取 API Key → 管理配额 → 轮换密钥。
|
传统流程:注册账号 → 购买额度 → 获取 API Key → 管理配额 → 轮换密钥。
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 MiB |
Reference in New Issue
Block a user