Claude Code × Aster Code APIで自動売買ボットを作る【2026年版】ビルダーフィーで取引するだけで収益が入る仕組みまで解説

Hyperliquidの自動売買は競合が増えています。一方で、月間取引量世界2位のパープDEX「Aster」には、他のDEXにはない圧倒的な優位性があります。それがAster Code(ビルダープログラム)です。

Aster Codeを使えば、あなたが作ったボット経由で発生した取引に対し、オンチェーンでビルダーフィーが自動的に支払われます。自分の取引収益に加えて、ボット経由の取引量に応じた「プラットフォーム収益」も同時に得られる二重構造です。

✅ この記事でわかること

  • Aster Code APIの認証方式(v1 HMAC / v3 EIP-712)の違いと設定手順
  • Claude Codeを使った取引ボット生成→テスト→稼働の完全フロー
  • ビルダーフィー登録の手順と収益の仕組み(100 ASTERで登録可能)
  • Chase Order・Hidden OrdersをAPI経由で利用するコード例
  • ファンディングレート取得→asBNB証拠金と組み合わせた複合収益ボットの設計

⚠️ リスク注意

自動売買ボットはプログラムのバグや相場急変により意図しない損失が発生する可能性があります。テストネットでの十分な検証と少額からの本番開始を強く推奨します。本記事は情報提供目的です。


Aster Code APIとは——「作るだけで稼げる」ビルダープログラム

他のDEX APIにはない「ビルダーフィー」の仕組み

HyperliquidやGRVTのAPIはトレーダーが自分の取引を自動化するためのツールです。Aster Code APIはそれに加えて、APIを使う開発者(ビルダー)が取引量に応じた報酬を受け取れるという独自の仕組みを持っています。

ビルダーフィーの仕組み

① ビルダー登録

100 ASTERをPerpsウォレットに保有して登録

② ボット経由で取引

あなたのAPIキーで注文が通るたびにビルダーフィーが記録

③ 日次自動支払い

約定・検証後にオンチェーンで自動支払い(ADL・清算を除く)

Aster Code API 仕様まとめ

REST API ベースURL https://fapi.asterdex.com
WebSocket wss://fstream.asterdex.com
認証方式 v1: HMAC SHA256 / v3: EIP-712署名
APIキーヘッダー X-MBX-APIKEY
レート制限 リクエスト: 2,400/分 / 注文: 1,200/分
SDK asterdex-api(npm)/ asterdex-sdk(npm)
スキルズハブ GitHub: asterdex/aster-skills-hub(AIエージェント向けスキル集)
ビルダー登録条件 100 ASTERをPerpsウォレットに保有し続けること

Step 1:環境構築

必要なもの

  • Python 3.10以上 or Node.js 18以上
  • Claude Codenpm install -g @anthropic-ai/claude-code
  • Asterアカウント(ウォレット接続のみ・KYC不要)
  • APIキーの発行(AsterダッシュボードのSettings → API)
  • 100 ASTER(ビルダーフィーを受け取る場合。取引のみなら不要)

APIキーの発行手順

  1. Aster ProモードにMetaMaskで接続
  2. 右上プロフィール → 「API Management」をクリック
  3. 「Create API Key」→ 名前を入力し権限(Read / Trade / Withdraw)を設定
  4. 生成されたAPIキーとSecretキーを安全な場所に保存(Secretは一度しか表示されない)

⚠️ 注意:自動売買ボット用のAPIキーには「Trade」権限のみ付与し、「Withdraw」は不要です。万が一キーが漏洩してもUSDCが引き出されるリスクを防げます。

プロジェクト作成

mkdir aster-bot && cd aster-bot

# Python環境
python -m venv venv
source venv/bin/activate  # Mac/Linux
# venv\Scripts\activate  # Windows

pip install requests python-dotenv

# または Node.js / npm の場合
npm install asterdex-api dotenv
# .env(Gitにコミットしない!)
ASTER_API_KEY=あなたのAPIキー
ASTER_SECRET_KEY=あなたのSecretキー
ASTER_USE_TESTNET=true

Step 2:Claude Codeでボットを生成する

Claude Codeの起動

cd aster-bot
claude

基本ボット生成プロンプト(v1 HMAC認証)

💬 Claude Codeへの指示

Aster DEX(asterdex.com)のFutures APIを使ったPythonボットを作成してください。

仕様:
– .envからASTER_API_KEY、ASTER_SECRET_KEY、ASTER_USE_TESTNETを読み込む
– ベースURL: https://fapi.asterdex.com(本番)
– 認証: HMAC SHA256署名(X-MBX-APIKEYヘッダーとsignatureパラメーター)
– /fapi/v1/premiumIndex でBTCのファンディングレートを取得する
– ファンディングレートが+0.05%超 → BTCをショート(証拠金の20%・3倍レバ)
– ファンディングレートが+0.01%未満 → ショートポジションをクローズ
– /fapi/v4/account でポジション確認(重複エントリー防止)
– 注文は POST /fapi/v1/order で成行注文(type=MARKET)
– 結果をbot.logに記録する

生成されるコードの主要部分

import os, time, hmac, hashlib, requests, logging
from dotenv import load_dotenv
from urllib.parse import urlencode

load_dotenv()

API_KEY    = os.getenv("ASTER_API_KEY")
SECRET_KEY = os.getenv("ASTER_SECRET_KEY").encode()
TESTNET    = os.getenv("ASTER_USE_TESTNET", "true").lower() == "true"
BASE_URL   = "https://testnet.asterdex.com" if TESTNET else "https://fapi.asterdex.com"

# ── HMAC署名生成 ──────────────────────────────
def sign(params: dict) -> str:
    query = urlencode(params)
    return hmac.new(SECRET_KEY, query.encode(), hashlib.sha256).hexdigest()

def signed_request(method: str, path: str, params: dict = None):
    params = params or {}
    params["timestamp"] = int(time.time() * 1000)
    params["recvWindow"] = 5000
    params["signature"] = sign(params)
    headers = {"X-MBX-APIKEY": API_KEY}
    url = f"{BASE_URL}{path}"
    if method == "GET":
        return requests.get(url, params=params, headers=headers).json()
    return requests.post(url, params=params, headers=headers).json()

# ── ファンディングレート取得 ────────────────────
def get_funding_rate(symbol="BTCUSDT") -> float:
    data = requests.get(f"{BASE_URL}/fapi/v1/premiumIndex",
                        params={"symbol": symbol}).json()
    return float(data.get("lastFundingRate", 0))

# ── ポジション取得 ──────────────────────────────
def get_position(symbol="BTCUSDT"):
    account = signed_request("GET", "/fapi/v4/account")
    for pos in account.get("positions", []):
        if pos["symbol"] == symbol and float(pos["positionAmt"]) != 0:
            return pos
    return None

# ── 注文送信 ────────────────────────────────────
def place_order(symbol: str, side: str, quantity: float):
    return signed_request("POST", "/fapi/v1/order", {
        "symbol":   symbol,
        "side":     side,          # "BUY" or "SELL"
        "type":     "MARKET",
        "quantity": quantity,
    })

# ── メインループ ────────────────────────────────
ENTRY_THRESHOLD = 0.0005
EXIT_THRESHOLD  = 0.0001

def main():
    logging.basicConfig(filename="bot.log", level=logging.INFO,
                        format="%(asctime)s %(message)s")
    log = logging.getLogger()
    log.info(f"起動 | {'テストネット' if TESTNET else '本番'}")

    while True:
        rate = get_funding_rate()
        pos  = get_position()
        log.info(f"ファンディング: {rate*100:.4f}% | ポジション: {pos}")

        if rate >= ENTRY_THRESHOLD and pos is None:
            account = signed_request("GET", "/fapi/v2/balance")
            usdc = next((b for b in account if b["asset"] == "USDT"), {})
            balance  = float(usdc.get("balance", 0))
            price    = float(requests.get(
                f"{BASE_URL}/fapi/v1/premiumIndex",
                params={"symbol": "BTCUSDT"}).json()["markPrice"])
            qty  = round((balance * 0.20 * 3) / price, 4)
            result = place_order("BTCUSDT", "SELL", qty)  # SELL=Short
            log.info(f"ショートエントリー {qty} BTC → {result}")

        elif rate < EXIT_THRESHOLD and pos is not None:
            qty    = abs(float(pos["positionAmt"]))
            result = place_order("BTCUSDT", "BUY", qty)  # クローズ
            log.info(f"クローズ {qty} BTC → {result}")

        time.sleep(3600)

if __name__ == "__main__":
    main()

Step 3:ビルダーフィーを受け取る設定

ボットを動かすだけでなく、そのボット経由の取引でビルダーフィーを受け取るのがAsterの最大の特徴です。

ビルダー登録の手順

  1. Aster Proにアクセスし、ウォレット接続
  2. Perpsウォレットに100 ASTER以上を入金(登録中は常に保有が必要)
  3. Aster Codeページ(Pro画面内 → 「Aster Code」タブ)で「Register as Builder」をクリック
  4. ウォレットで署名→ブロックチェーン上にビルダーとして登録
  5. ビルダーダッシュボードで最大手数料レートを設定(ユーザーが承認した率まで徴収可)

💡 ビルダーフィーの収益試算:月間$1,000,000の取引量をボット経由で発生させた場合、ビルダーフィー0.01%設定なら月$100のパッシブ収益。ボット利用者が増えると取引量に比例して収益が拡大します。

ビルダーフィー対応注文の送信

ビルダーとして注文を送信する場合、注文パラメーターにbuilderFeeを追加します。Claude Codeに以下を指示してください。

💬 Claude Codeへの追加指示

place_order関数にbuilderFeeパラメーター(文字列: "0.0001" = 0.01%)を追加して。
ビルダーアドレスはos.getenv("ASTER_BUILDER_ADDRESS")から取得して注文パラメーターに含める。
ビルダーフィーが正常に記録されたかどうかをレスポンスのbuilderFeeフィールドで確認してログに記録して。


Step 4:Chase Order・Hidden OrdersをAPIで使う

Chase Order(毎秒自動追従指値)のAPI実装

Chase OrderはAster固有の注文タイプで、指値注文が常にオーダーブック最上位に自動追従します。API経由でも利用可能です。

💬 Claude Codeへの指示:Chase Order実装

Asterのチェイスオーダー(type=CHASE_LIMIT)でBTCの指値ショートを実装して。
- 現在の最良売り気配値を取得して指値を設定する
- maxChaseCount=60(最大60秒追従)を設定
- 価格が動いても自動追従するのでMaker手数料0%になることを確認する
- 注文が約定したらログに記録する

Hidden Orders(ZK暗号化注文)のAPI実装

大口注文をMEVから守るHidden Ordersも、API経由で利用できます。orderType=HIDDENパラメーターを追加するだけです。

# Hidden Order(ZK暗号化)での注文
def place_hidden_order(symbol: str, side: str, quantity: float, price: float):
    return signed_request("POST", "/fapi/v1/order", {
        "symbol":    symbol,
        "side":      side,
        "type":      "HIDDEN",      # ZK暗号化注文
        "quantity":  quantity,
        "price":     price,
        "timeInForce": "GTC",
    })

Step 5:asBNB証拠金+ファンディング収益の複合ボット設計

Asterの最大の強みは、証拠金に使うasBNBが最大30% APYで利回りを生み続けることです。これをボットと組み合わせると三重の収益源が確立できます。

三重収益ストラクチャー

① asBNB利回り

最大30% APY

証拠金保有中は24h継続

② ファンディング

相場依存(8h毎)

ショート時はプラス相場で受取

③ ビルダーフィー

取引量比例

API経由全取引に発生

ボットに追加すべき設計のポイントをClaude Codeへの指示形式で示します。

💬 複合ボット拡張指示

既存のファンディングレートボットに以下を追加して:
1. /fapi/v1/fundingRate でBTC・ETH・SOL全ての現在ファンディングレートを取得し、最大レートのコインを選択する
2. asBNB残高(証拠金)を確認してポジションサイズを計算する
3. ビルダーフィー(ASTER_BUILDER_ADDRESS)を注文パラメーターに追加する
4. 8時間ごとにファンディングレートを再確認して、保有コインより高いコインがあれば乗り換える
5. 日次収益サマリー(ファンディング受取額+ビルダーフィー記録)をbot.logに出力する


WebSocketリアルタイム監視の実装

AsterのWebSocket(wss://fstream.asterdex.com)で取得できる主要データです。

ストリーム名 取得データ 活用例
!markPrice@arr 全ペアのマーク価格・ファンディングレート リアルタイムファンディング監視
<symbol>@depth オーダーブック差分 Chase Order最良気配取得
listenKey 口座ポジション・証拠金リアルタイム更新 清算価格モニタリング
<symbol>@trade リアルタイム約定データ 大口約定の検出・トレンド把握

よくある質問(FAQ)

Q. v1 HMACとv3 EIP-712はどちらを使うべきですか?

A. 初心者はAPIキーとシークレットで扱いやすいv1 HMACから始めることを推奨します。v3 EIP-712はウォレット秘密鍵で直接署名するためより高いセキュリティが必要ですが、CloudflareやServerless環境への依存が少なくなります。機能的な差異はありません。

Q. 100 ASTERはいくらで入手できますか?

A. $ASTERはBitgetなどの主要取引所に上場しています。ビルダー登録に必要な100 ASTERは、現在価格(2026年5月時点)で数百〜数千円程度です。登録中は保有し続ける必要があります。

Q. テストネットはありますか?

A. aster-skills-hubのドキュメントによると、SpotのTestnetが提供されています。Futures本番での動作確認は少額から始めることを推奨します。

Q. Chase OrderはAPIから使えますか?

A. 使えます。type=CHASE_LIMITと追従パラメーターを指定してPOST /fapi/v1/orderに送信します。Chase Order中はMaker手数料0%が適用されます。Claude Codeへ「Chase Orderで指値を実装して」と指示するだけで実装コードが生成されます。


まとめ

Aster Code APIは、HyperliquidやApeXにはない「ビルダーフィー」という第三の収益軸を個人開発者に提供します。

📌 Aster Code ボット開発ステップ

  1. APIキー発行(Aster Pro → Settings → API Management)
  2. .envファイルにAPIキー・Secretを設定
  3. Claude Codeに日本語でボット仕様を指示→コード生成
  4. 100 ASTERをPerpsウォレットに保有してビルダー登録
  5. asBNBを証拠金として入金→利回り+ファンディング+ビルダーフィーの三重収益稼働