rdkit
分子の詳細な操作を行うためのケモインフォマティクスツールキット。SMILES/SDFの解析、分子記述子(MW、LogP、TPSA)、フィンガープリント、部分構造検索、2D/3D座標生成、類似度計算、反応処理などに対応する。標準的なワークフローにはdatamol(RDKitのラッパー)が適しているが、高度な制御やカスタムサニタイゼーション、特殊アルゴリズムが必要な場合にrdkitを直接使用する。
description の原文を見る
Cheminformatics toolkit for fine-grained molecular control. SMILES/SDF parsing, descriptors (MW, LogP, TPSA), fingerprints, substructure search, 2D/3D generation, similarity, reactions. For standard workflows with simpler interface, use datamol (wrapper around RDKit). Use rdkit for advanced control, custom sanitization, specialized algorithms.
SKILL.md 本文
RDKit 化学情報学ツールキット
概要
RDKitは、分子解析と操作のためのPython APIを提供する包括的な化学情報学ライブラリです。このスキルは、分子構造の読み書き、記述子計算、フィンガープリント、部分構造検索、化学反応、2D/3D座標生成、分子可視化に関するガイダンスを提供します。医薬品開発、計算化学、化学情報学研究のタスクにこのスキルを使用してください。
コア機能
1. 分子I/Oと生成
分子の読み込み:
様々な形式で分子構造を読み込みます:
from rdkit import Chem
# SMILES文字列から
mol = Chem.MolFromSmiles('Cc1ccccc1') # MolオブジェクトまたはNoneを返す
# MOLファイルから
mol = Chem.MolFromMolFile('path/to/file.mol')
# MOLブロック(文字列データ)から
mol = Chem.MolFromMolBlock(mol_block_string)
# InChIから
mol = Chem.MolFromInchi('InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H')
分子の書き込み:
分子をテキスト表現に変換します:
# 正規SMILES形式へ
smiles = Chem.MolToSmiles(mol)
# MOLブロックへ
mol_block = Chem.MolToMolBlock(mol)
# InChIへ
inchi = Chem.MolToInchi(mol)
バッチ処理:
複数の分子を処理する場合、Supplier/Writerオブジェクトを使用します:
# SDFファイルを読む
suppl = Chem.SDMolSupplier('molecules.sdf')
for mol in suppl:
if mol is not None: # 解析エラーをチェック
# 分子を処理
pass
# SMILES ファイルを読む
suppl = Chem.SmilesMolSupplier('molecules.smi', titleLine=False)
# 大型ファイルまたは圧縮データの場合
with gzip.open('molecules.sdf.gz') as f:
suppl = Chem.ForwardSDMolSupplier(f)
for mol in suppl:
# 分子を処理
pass
# 大規模データセットのマルチスレッド処理
suppl = Chem.MultithreadedSDMolSupplier('molecules.sdf')
# 分子をSDFに書き込む
writer = Chem.SDWriter('output.sdf')
for mol in molecules:
writer.write(mol)
writer.close()
重要な注釈:
- すべての
MolFrom*関数は失敗時にNoneを返します(エラーメッセージ付き) - 分子を処理する前に必ず
Noneをチェックしてください - 分子はインポート時に自動的に衛生化されます(原子価検証、芳香族性認識)
2. 分子の衛生化と検証
RDKitは解析中に分子を自動的に衛生化し、原子価チェック、芳香族性認識、キラリティ割り当てを含む13のステップを実行します。
衛生化制御:
# 自動衛生化を無効化
mol = Chem.MolFromSmiles('C1=CC=CC=C1', sanitize=False)
# 手動衛生化
Chem.SanitizeMol(mol)
# 衛生化前に問題を検出
problems = Chem.DetectChemistryProblems(mol)
for problem in problems:
print(problem.GetType(), problem.Message())
# 部分的な衛生化(特定のステップをスキップ)
from rdkit.Chem import rdMolStandardize
Chem.SanitizeMol(mol, sanitizeOps=Chem.SANITIZE_ALL ^ Chem.SANITIZE_PROPERTIES)
一般的な衛生化の問題:
- 最大許容原子価を超える明示的原子価は例外をスローします
- 無効な芳香環はケクレ化エラーを引き起こします
- ラジカル電子は明示的に指定されていない場合、適切に割り当てられません
3. 分子解析とプロパティ
分子構造へのアクセス:
# 原子と結合を反復処理
for atom in mol.GetAtoms():
print(atom.GetSymbol(), atom.GetIdx(), atom.GetDegree())
for bond in mol.GetBonds():
print(bond.GetBeginAtomIdx(), bond.GetEndAtomIdx(), bond.GetBondType())
# 環情報
ring_info = mol.GetRingInfo()
ring_info.NumRings()
ring_info.AtomRings() # 原子インデックスのタプルを返す
# 原子が環に含まれるかチェック
atom = mol.GetAtomWithIdx(0)
atom.IsInRing()
atom.IsInRingSize(6) # 6員環をチェック
# 最小の最小環セット(SSSR)を検出
from rdkit.Chem import GetSymmSSSR
rings = GetSymmSSSR(mol)
立体化学:
# キラル中心を検出
from rdkit.Chem import FindMolChiralCenters
chiral_centers = FindMolChiralCenters(mol, includeUnassigned=True)
# (atom_idx, chirality)タプルのリストを返す
# 3D座標から立体化学を割り当て
from rdkit.Chem import AssignStereochemistryFrom3D
AssignStereochemistryFrom3D(mol)
# 結合の立体化学をチェック
bond = mol.GetBondWithIdx(0)
stereo = bond.GetStereo() # STEREONONE、STEREOZ、STEREOEなど
フラグメント解析:
# 非連結フラグメントを取得
frags = Chem.GetMolFrags(mol, asMols=True)
# 特定の結合でフラグメント化
from rdkit.Chem import FragmentOnBonds
frag_mol = FragmentOnBonds(mol, [bond_idx1, bond_idx2])
# 環システムをカウント
from rdkit.Chem.Scaffolds import MurckoScaffold
scaffold = MurckoScaffold.GetScaffoldForMol(mol)
4. 分子記述子とプロパティ
基本記述子:
from rdkit.Chem import Descriptors
# 分子量
mw = Descriptors.MolWt(mol)
exact_mw = Descriptors.ExactMolWt(mol)
# LogP(脂溶性)
logp = Descriptors.MolLogP(mol)
# 位相的極表面積
tpsa = Descriptors.TPSA(mol)
# 水素結合ドナー/アクセプタ数
hbd = Descriptors.NumHDonors(mol)
hba = Descriptors.NumHAcceptors(mol)
# 回転可能結合数
rot_bonds = Descriptors.NumRotatableBonds(mol)
# 芳香族環数
aromatic_rings = Descriptors.NumAromaticRings(mol)
バッチ記述子計算:
# すべての記述子を一度に計算
all_descriptors = Descriptors.CalcMolDescriptors(mol)
# 辞書を返す: {'MolWt': 180.16, 'MolLogP': 1.23, ...}
# 利用可能な記述子名のリストを取得
descriptor_names = [desc[0] for desc in Descriptors._descList]
リピンスキーの5則:
# 医薬品適性をチェック
mw = Descriptors.MolWt(mol) <= 500
logp = Descriptors.MolLogP(mol) <= 5
hbd = Descriptors.NumHDonors(mol) <= 5
hba = Descriptors.NumHAcceptors(mol) <= 10
is_drug_like = mw and logp and hbd and hba
5. フィンガープリントと分子類似性
フィンガープリントの種類:
from rdkit.Chem import AllChem, RDKFingerprint
from rdkit.Chem.AtomPairs import Pairs, Torsions
from rdkit.Chem import MACCSkeys
# RDKit位相フィンガープリント
fp = Chem.RDKFingerprint(mol)
# Morganフィンガープリント(円形フィンガープリント、ECFPに類似)
fp = AllChem.GetMorganFingerprint(mol, radius=2)
fp_bits = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)
# MACCSキー(166ビット構造キー)
fp = MACCSkeys.GenMACCSKeys(mol)
# 原子対フィンガープリント
fp = Pairs.GetAtomPairFingerprint(mol)
# 位相トーション フィンガープリント
fp = Torsions.GetTopologicalTorsionFingerprint(mol)
# Avalonフィンガープリント(利用可能な場合)
from rdkit.Avalon import pyAvalonTools
fp = pyAvalonTools.GetAvalonFP(mol)
類似性計算:
from rdkit import DataStructs
# タニモト類似度を計算
fp1 = AllChem.GetMorganFingerprintAsBitVect(mol1, radius=2)
fp2 = AllChem.GetMorganFingerprintAsBitVect(mol2, radius=2)
similarity = DataStructs.TanimotoSimilarity(fp1, fp2)
# 複数分子の類似性を計算
similarities = DataStructs.BulkTanimotoSimilarity(fp1, [fp2, fp3, fp4])
# その他の類似度メトリクス
dice = DataStructs.DiceSimilarity(fp1, fp2)
cosine = DataStructs.CosineSimilarity(fp1, fp2)
クラスタリングと多様性:
# フィンガープリント類似度に基づくButinaクラスタリング
from rdkit.ML.Cluster import Butina
# 距離行列を計算
dists = []
fps = [AllChem.GetMorganFingerprintAsBitVect(mol, 2) for mol in mols]
for i in range(len(fps)):
sims = DataStructs.BulkTanimotoSimilarity(fps[i], fps[:i])
dists.extend([1-sim for sim in sims])
# 距離閾値でクラスタリング
clusters = Butina.ClusterData(dists, len(fps), distThresh=0.3, isDistData=True)
6. 部分構造検索とSMARTS
基本的な部分構造マッチング:
# SMARTSを使用してクエリを定義
query = Chem.MolFromSmarts('[#6]1:[#6]:[#6]:[#6]:[#6]:[#6]:1') # ベンゼン環
# 分子に部分構造が含まれるかチェック
has_match = mol.HasSubstructMatch(query)
# すべてのマッチを取得(原子インデックスのタプルのタプルを返す)
matches = mol.GetSubstructMatches(query)
# 最初のマッチのみを取得
match = mol.GetSubstructMatch(query)
一般的なSMARTSパターン:
# 一級アルコール
primary_alcohol = Chem.MolFromSmarts('[CH2][OH1]')
# カルボン酸
carboxylic_acid = Chem.MolFromSmarts('C(=O)[OH]')
# アミド
amide = Chem.MolFromSmarts('C(=O)N')
# 芳香族複素環
aromatic_n = Chem.MolFromSmarts('[nR]') # 環内の芳香族窒素
# マクロサイクル(環 > 12原子)
macrocycle = Chem.MolFromSmarts('[r{12-}]')
マッチング規則:
- クエリ内で指定されていないプロパティは、ターゲット内のあらゆる値にマッチします
- 明示的に指定されない限り、水素は無視されます
- 荷電したクエリ原子は、荷電していないターゲット原子にはマッチしません
- 芳香族クエリ原子は、脂肪族ターゲット原子にはマッチしません(クエリが汎用でない限り)
7. 化学反応
反応SMARTS:
from rdkit.Chem import AllChem
# SMARTSを使用して反応を定義: 反応物 >> 生成物
rxn = AllChem.ReactionFromSmarts('[C:1]=[O:2]>>[C:1][O:2]') # ケトン還元
# 分子に反応を適用
reactants = (mol1,)
products = rxn.RunReactants(reactants)
# 生成物は生成物セットのタプル(各生成物セットごとに1つのタプル)
for product_set in products:
for product in product_set:
# 生成物を衛生化
Chem.SanitizeMol(product)
反応の特徴:
- 原子マッピングは反応物と生成物間の特定の原子を保持します
- 生成物内のダミー原子は対応する反応物原子で置き換えられます
- 「Any」結合は反応物から結合次数を継承します
- キラリティは明示的に変更されない限り保持されます
反応類似性:
# 反応フィンガープリントを生成
fp = AllChem.CreateDifferenceFingerprintForReaction(rxn)
# 反応を比較
similarity = DataStructs.TanimotoSimilarity(fp1, fp2)
8. 2D および 3D 座標生成
2D座標生成:
from rdkit.Chem import AllChem
# 描画用に2D座標を生成
AllChem.Compute2DCoords(mol)
# 分子をテンプレート構造に整列
template = Chem.MolFromSmiles('c1ccccc1')
AllChem.Compute2DCoords(template)
AllChem.GenerateDepictionMatching2DStructure(mol, template)
3D座標生成とコンフォーマー:
# ETKDGを使用して単一の3Dコンフォーマーを生成
AllChem.EmbedMolecule(mol, randomSeed=42)
# 複数のコンフォーマーを生成
conf_ids = AllChem.EmbedMultipleConfs(mol, numConfs=10, randomSeed=42)
# 力場で幾何を最適化
AllChem.UFFOptimizeMolecule(mol) # UFF力場
AllChem.MMFFOptimizeMolecule(mol) # MMFF94力場
# すべてのコンフォーマーを最適化
for conf_id in conf_ids:
AllChem.MMFFOptimizeMolecule(mol, confId=conf_id)
# コンフォーマー間のRMSDを計算
from rdkit.Chem import AllChem
rms = AllChem.GetConformerRMS(mol, conf_id1, conf_id2)
# 分子を整列
AllChem.AlignMol(probe_mol, ref_mol)
制約付き埋め込み:
# 分子の一部を特定の座標に制約して埋め込み
AllChem.ConstrainedEmbed(mol, core_mol)
9. 分子可視化
基本的な描画:
from rdkit.Chem import Draw
# 単一分子をPIL画像に描画
img = Draw.MolToImage(mol, size=(300, 300))
img.save('molecule.png')
# ファイルに直接描画
Draw.MolToFile(mol, 'molecule.png')
# グリッド内に複数分子を描画
mols = [mol1, mol2, mol3, mol4]
img = Draw.MolsToGridImage(mols, molsPerRow=2, subImgSize=(200, 200))
部分構造マッチのハイライト:
# 部分構造マッチをハイライト
query = Chem.MolFromSmarts('c1ccccc1')
match = mol.GetSubstructMatch(query)
img = Draw.MolToImage(mol, highlightAtoms=match)
# カスタムハイライト色
highlight_colors = {atom_idx: (1, 0, 0) for atom_idx in match} # 赤
img = Draw.MolToImage(mol, highlightAtoms=match,
highlightAtomColors=highlight_colors)
可視化のカスタマイズ:
from rdkit.Chem.Draw import rdMolDraw2D
# カスタムオプション付きの描画機を作成
drawer = rdMolDraw2D.MolDraw2DCairo(300, 300)
opts = drawer.drawOptions()
# オプションをカスタマイズ
opts.addAtomIndices = True
opts.addStereoAnnotation = True
opts.bondLineWidth = 2
# 分子を描画
drawer.DrawMolecule(mol)
drawer.FinishDrawing()
# ファイルに保存
with open('molecule.png', 'wb') as f:
f.write(drawer.GetDrawingText())
Jupyter Notebookでの統合:
# Jupyterでインライン表示を有効化
from rdkit.Chem.Draw import IPythonConsole
# デフォルト表示をカスタマイズ
IPythonConsole.ipython_useSVG = True # PNGの代わりにSVGを使用
IPythonConsole.molSize = (300, 300) # デフォルトサイズ
# 分子が自動的に表示されるようになります
mol # 分子画像を表示
フィンガープリントビットの可視化:
# フィンガープリントビットが何を表しているかを表示
from rdkit.Chem import Draw
# Morganフィンガープリント用
bit_info = {}
fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, bitInfo=bit_info)
# 特定のビットの環境を描画
img = Draw.DrawMorganBit(mol, bit_id, bit_info)
10. 分子修正
水素の追加/削除:
# 明示的な水素を追加
mol_h = Chem.AddHs(mol)
# 明示的な水素を削除
mol = Chem.RemoveHs(mol_h)
ケクレ化と芳香族性:
# 芳香族結合を交互の単/二重結合に変換
Chem.Kekulize(mol)
# 芳香族性を設定
Chem.SetAromaticity(mol)
部分構造を置換:
# 部分構造を別の構造に置換
query = Chem.MolFromSmarts('c1ccccc1') # ベンゼン
replacement = Chem.MolFromSmiles('C1CCCCC1') # シクロヘキサン
new_mol = Chem.ReplaceSubstructs(mol, query, replacement)[0]
電荷を中和:
# 水素を追加/削除して公式電荷を削除
from rdkit.Chem.MolStandardize import rdMolStandardize
# Unchargerを使用
uncharger = rdMolStandardize.Uncharger()
mol_neutral = uncharger.uncharge(mol)
11. 分子ハッシュと標準化の操作
分子ハッシング:
from rdkit.Chem import rdMolHash
# Murckoスカフォルドハッシュを生成
scaffold_hash = rdMolHash.MolHash(mol, rdMolHash.HashFunction.MurckoScaffold)
# 正規SMILES ハッシュ
canonical_hash = rdMolHash.MolHash(mol, rdMolHash.HashFunction.CanonicalSmiles)
# レジオ異性体ハッシュ(立体化学を無視)
regio_hash = rdMolHash.MolHash(mol, rdMolHash.HashFunction.Regioisomer)
ランダムSMILES:
# ランダムSMILES表現を生成(データ拡張用)
from rdkit.Chem import MolToRandomSmilesVect
random_smiles = MolToRandomSmilesVect(mol, numSmiles=10, randomSeed=42)
12. ファーマコフォア と 3D機能
ファーマコフォア機能:
from rdkit.Chem import ChemicalFeatures
from rdkit import RDConfig
import os
# フィーチャーファクトリーをロード
fdef_path = os.path.join(RDConfig.RDDataDir, 'BaseFeatures.fdef')
factory = ChemicalFeatures.BuildFeatureFactory(fdef_path)
# ファーマコフォア機能を取得
features = factory.GetFeaturesForMol(mol)
for feat in features:
print(feat.GetFamily(), feat.GetType(), feat.GetAtomIds())
一般的なワークフロー
医薬品適性解析
from rdkit import Chem
from rdkit.Chem import Descriptors
def analyze_druglikeness(smiles):
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return None
# Lipinski記述子を計算
results = {
'MW': Descriptors.MolWt(mol),
'LogP': Descriptors.MolLogP(mol),
'HBD': Descriptors.NumHDonors(mol),
'HBA': Descriptors.NumHAcceptors(mol),
'TPSA': Descriptors.TPSA(mol),
'RotBonds': Descriptors.NumRotatableBonds(mol)
}
# リピンスキーの5則をチェック
results['Lipinski'] = (
results['MW'] <= 500 and
results['LogP'] <= 5 and
results['HBD'] <= 5 and
results['HBA'] <= 10
)
return results
類似性スクリーニング
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit import DataStructs
def similarity_screen(query_smiles, database_smiles, threshold=0.7):
query_mol = Chem.MolFromSmiles(query_smiles)
query_fp = AllChem.GetMorganFingerprintAsBitVect(query_mol, 2)
hits = []
for idx, smiles in enumerate(database_smiles):
mol = Chem.MolFromSmiles(smiles)
if mol:
fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)
sim = DataStructs.TanimotoSimilarity(query_fp, fp)
if sim >= threshold:
hits.append((idx, smiles, sim))
return sorted(hits, key=lambda x: x[2], reverse=True)
部分構造フィルタリング
from rdkit import Chem
def filter_by_substructure(smiles_list, pattern_smarts):
query = Chem.MolFromSmarts(pattern_smarts)
hits = []
for smiles in smiles_list:
mol = Chem.MolFromSmiles(smiles)
if mol and mol.HasSubstructMatch(query):
hits.append(smiles)
return hits
ベストプラクティス
エラーハンドリング
分子を解析する際は常にNoneをチェックしてください:
mol = Chem.MolFromSmiles(smiles)
if mol is None:
print(f"Failed to parse: {smiles}")
continue
パフォーマンス最適化
ストレージにバイナリ形式を使用:
import pickle
# 分子をpickle化して高速読み込み
with open('molecules.pkl', 'wb') as f:
pickle.dump(mols, f)
# pickleした分子をロード(再解析より高速)
with open('molecules.pkl', 'rb') as f:
mols = pickle.load(f)
バルク操作を使用:
# すべての分子のフィンガープリントを一度に計算
fps = [AllChem.GetMorganFingerprintAsBitVect(mol, 2) for mol in mols]
# バルク類似度計算を使用
similarities = DataStructs.BulkTanimotoSimilarity(fps[0], fps[1:])
スレッドセーフ
RDKitの操作は以下の場合、通常スレッドセーフです:
- 分子I/O(SMILES、molブロック)
- 座標生成
- フィンガープリントと記述子
- 部分構造検索
- 反応
- 描画
スレッドセーフでない: 同時にアクセスされるMolSupplier。
メモリ管理
大規模データセットの場合:
# ForwardSDMolSupplierを使用してファイル全体の読み込みを回避
with open('large.sdf') as f:
suppl = Chem.ForwardSDMolSupplier(f)
for mol in suppl:
# 一度に1つの分子を処理
pass
# 並列処理にはMultithreadedSDMolSupplierを使用
suppl = Chem.MultithreadedSDMolSupplier('large.sdf', numWriterThreads=4)
一般的な落とし穴
- Noneチェックを忘れる: 解析後に常に分子を検証
- 衛生化失敗:
DetectChemistryProblems()を使用してデバッグ - 水素が足りない: 水素に依存するプロパティを計算する場合は
AddHs()を使用 - 2D vs 3D: 可視化または3D解析前に適切な座標を生成
- SMARTS マッチング規則: 指定されていないプロパティはあらゆるものにマッチすることを覚えておく
- MolSuppliersのスレッドセーフティ: supplier オブジェクトをスレッド間で共有しない
リソース
references/
このスキルには詳細なAPIリファレンス ドキュメントが含まれています:
api_reference.md- 機能別に整理されたRDKitモジュール、関数、クラスの包括的なリストdescriptors_reference.md- 説明付きで利用可能なすべての分子記述子の完全リストsmarts_patterns.md- 官能基と構造的特徴の一般的なSMARTSパターン
特定のAPI詳細、パラメータ情報、またはパターン例が必要な場合は、これらのリファレンスをロードしてください。
scripts/
一般的なRDKitワークフロー用のサンプルスクリプト:
molecular_properties.py- 包括的な分子プロパティと記述子を計算similarity_search.py- フィンガープリントベースの類似性スクリーニングを実行substructure_filter.py- 部分構造パターンで分子をフィルタ
これらのスクリプトは直接実行することも、カスタムワークフローのテンプレートとして使用することもできます。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。