Skip to content
Development
Skill

/dflow

Complete DFlow trading protocol SDK - the single source of truth for integrating DFlow on Solana. Covers spot trading, prediction markets, Swap API, Metadata API, WebSocket streaming, and all DFlow tools.

From plugin
sendaifun-skills
12848 skills
Install
$ npx -y skills add sendaifun/skills --skill dflow --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dflow

Context preview

The summary Claude sees to decide when to auto-load this skill.

Complete DFlow trading protocol SDK - the single source of truth for integrating DFlow on Solana. Covers spot trading, prediction markets, Swap API, Metadata API, WebSocket streaming, and all DFlow tools.

SKILL.md

dflow.SKILL.md
name: dflow
description: Complete DFlow trading protocol SDK - the single source of truth for integrating DFlow on Solana. Covers spot trading, prediction markets, Swap API, Metadata API, WebSocket streaming, and all DFlow tools.

DFlow - Complete Integration Guide

The definitive guide for integrating DFlow - a trading protocol that enables traders to exchange value across spot and prediction markets natively on Solana.

What is DFlow?

DFlow is a comprehensive trading infrastructure that provides:

  • **Trading Applications & Wallets** - Token swaps with intelligent routing and 99.9% token coverage
  • **Exchanges & Aggregators** - Access to billions in monthly routed volume across DEXes and Prop AMMs
  • **Financial Institutions & Market Makers** - Programmable execution layers with CLPs and async trades
  • **Prediction Market Platforms** - Discovery, pricing, routing, and settlement infrastructure

Key Capabilities

| Feature | Description | |---------|-------------| | Token Coverage | 99.9% with millisecond detection | | Infrastructure | Globally distributed, high-throughput optimization | | Execution | Advanced algorithms with JIT routing for best-price execution | | Markets | Support for both spot and prediction market trading | | MEV Protection | Enhanced sandwich protection with Jito bundles |

API Overview

DFlow provides two main API categories:

1. Swap API (Trading)

**Base URL:** `https://quote-api.dflow.net`

For executing trades:

  • **Imperative Swaps** - Full control over route selection at signature time
  • **Declarative Swaps** - Intent-based swaps with deferred route optimization
  • **Trade API** - Unified interface for spot and prediction market trading
  • **Order API** - Quote and transaction generation

2. Prediction Market Metadata API

**Base URL:** `https://api.prod.dflow.net`

For querying prediction market data:

  • **Events API** - Query prediction events and forecasts
  • **Markets API** - Get market details, orderbooks, outcome mints
  • **Trades API** - Historical trade data
  • **Live Data API** - Real-time milestones and updates
  • **WebSocket** - Streaming price and orderbook updates

Authentication

Most endpoints require an API key via the `x-api-key` header. Contact `hello@dflow.net` to obtain credentials.

Quick Start

Imperative Swap (3 Steps)

import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js";

const API_BASE = "https://quote-api.dflow.net";
const API_KEY = process.env.DFLOW_API_KEY; // Optional but recommended

// Token addresses
const SOL = "So11111111111111111111111111111111111111112";
const USDC = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";

async function imperativeSwap(keypair: Keypair, connection: Connection) {
  // Step 1: Get Quote
  const quoteParams = new URLSearchParams({
    inputMint: SOL,
    outputMint: USDC,
    amount: "1000000000", // 1 SOL
    slippageBps: "50",    // 0.5%
  });

  const quote = await fetch(`${API_BASE}/quote?${quoteParams}`, {
    headers: API_KEY ? { "x-api-key": API_KEY } : {},
  }).then(r => r.json());

  // Step 2: Get Swap Transaction
  const swapResponse = await fetch(`${API_BASE}/swap`, {
    method: "POST",
    headers: {
      "content-type": "application/json",
      ...(API_KEY && { "x-api-key": API_KEY }),
    },
    body: JSON.stringify({
      userPublicKey: keypair.publicKey.toBase58(),
      quoteResponse: quote,
      dynamicComputeUnitLimit: true,
      prioritizationFeeLamports: 150000,
    }),
  }).then(r => r.json());

  // Step 3: Sign and Send
  const tx = VersionedTransaction.deserialize(
    Buffer.from(swapResponse.swapTransaction, "base64")
  );
  tx.sign([keypair]);

  const signature = await connection.sendTransaction(tx);
  await connection.confirmTransaction(signature);

  return signature;
}

Trade API (Unified - Recommended)

The Trade API provides a single endpoint that handles both sync and async execution:

async function tradeTokens(keypair: Keypair, connection: Connection) {
  // Step 1: Get Order (quote + transaction in one call)
  const orderParams = new URLSearchParams({
    inputMint: SOL,
    outputMint: USDC,
    amount: "1000000000",
    slippageBps: "50",
    userPublicKey: keypair.publicKey.toBase58(),
  });

  const order = await fetch(`${API_BASE}/order?${orderParams}`, {
    headers: API_KEY ? { "x-api-key": API_KEY } : {},
  }).then(r => r.json());

  // Step 2: Sign and Send
  const tx = VersionedTransaction.deserialize(
    Buffer.from(order.transaction, "base64")
  );
  tx.sign([keypair]);
  const signature = await connection.sendTransaction(tx);

  // Step 3: Monitor (based on execution mode)
  if (order.executionMode === "async") {
    // Poll order status for async trades
    let status = "pending";
    while (status !== "closed" && status !== "failed") {
      await new Promise(r => setTimeout(r, 2000));
      const statusRes = await fetch(
        `${API_BASE}/order-status?signature=${signature}`,
        { headers: API_KEY ? { "x-api-key": API_KEY } : {} }
      ).then(r => r.json());
      status = statusRes.status;
    }
  } else {
    // Sync trades complete atomically
    await connection.confirmTransaction(signature);
  }

  return signature;
}

API Reference

Order API Endpoints

GET /order

Returns a quote and optionally a transaction for spot or prediction market trades.

| Parameter | Required | Description | |-----------|----------|-------------| | `inputMint` | Yes | Base58 input token mint | | `outputMint` | Yes | Base58 output token mint | | `amount` | Yes | Amount as scaled integer (1 SOL = 1000000000) | | `userPublicKey` | No | Include to receive signable transaction | | `slippageBps` | No | Max slippage in basis points or "auto" | | `platformFeeBps` | No | Platform fee in basis points | | `prioritizationFeeLamports` | No | "auto", "medium", "high", "veryHigh", or lamport amount |

**Response:**

{
  "outAmount": "150000000",
  "minO
Read more
Ships withsendaifun-skills

AI agent skills for Solana development — DeFi protocols, infrastructure, security, and more.

Get the whole plugin
Stats
128
Stars
81
Forks
Maintained
Maintenance
TypeScript
Language
Apache-2.0
License
1mo ago
Last commit
8mo ago
Created

Repo: sendaifun/skills

Other skills on sendaifun-skills.