FortiBlox LogoFortiBlox Docs
NexusEnhanced API

Transaction Parsing

Parse and classify X1 Blockchain transactions with metadata enrichment

Transaction Parsing

Automatically parse and classify X1 Blockchain transactions into 11 distinct types with full metadata enrichment.

POST /v0/transactions

Parse one or more transaction signatures and return enriched data including transaction type, token transfers, and metadata.

Request Body

ParameterTypeRequiredDefaultDescription
transactionsarrayYes-Array of transaction signatures (max 100)
include_logsbooleanNofalseInclude transaction logs
commitmentstringNoconfirmedCommitment level

Request Example

curl -X POST "https://nexus.fortiblox.com/api/v1/v0/transactions?api-key=$FORTIBLOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactions": [
      "5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7"
    ],
    "include_logs": false,
    "commitment": "confirmed"
  }'
const response = await fetch(
  `https://nexus.fortiblox.com/api/v1/v0/transactions?api-key=${process.env.FORTIBLOX_API_KEY}`,
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      transactions: ["5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7"],
      include_logs: false,
      commitment: 'confirmed'
    })
  }
);
const data = await response.json();

if (data.success) {
  data.data.forEach(tx => {
    console.log(`Type: ${tx.type}`);
    console.log(`Description: ${tx.description}`);
    console.log(`Source: ${tx.source}`);
  });
}
import requests
import os

response = requests.post(
    'https://nexus.fortiblox.com/api/v1/v0/transactions',
    params={'api-key': os.getenv('FORTIBLOX_API_KEY')},
    json={
        'transactions': [
            '5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7'
        ],
        'include_logs': False,
        'commitment': 'confirmed'
    }
)
data = response.json()

if data['success']:
    for tx in data['data']:
        print(f"Type: {tx['type']}")
        print(f"Description: {tx['description']}")
        print(f"Source: {tx['source']}")

Response Schema

{
  "success": true,
  "data": [
    {
      "signature": "5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7",
      "type": "SWAP",
      "timestamp": 1699564800,
      "slot": 123456789,
      "fee": 5000,
      "feePayer": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
      "success": true,
      "description": "Swapped 100 USDC for 0.5 SOL",
      "source": "JUPITER",
      "nativeTransfers": [],
      "tokenTransfers": [
        {
          "mint": "EPjFWdd5Au17BXwoyS7G5Fj306awm3ibB5mWChip4Z1w",
          "tokenAccount": "...",
          "owner": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
          "amount": 100000000,
          "decimals": 6,
          "uiAmount": 100,
          "direction": "out",
          "symbol": "USDC",
          "name": "USD Coin",
          "logoURI": "https://..."
        }
      ],
      "instructions": []
    }
  ],
  "cached": 0,
  "fetched": 1,
  "processing_time_ms": 125
}

Transaction Types

SWAP

DEX token swaps on Jupiter, Orca, Raydium, Phoenix.

Example:

{
  "type": "SWAP",
  "description": "Swapped 100 USDC for 0.5 SOL",
  "source": "JUPITER",
  "tokenTransfers": [...]
}

NFT_SALE

NFT sales on Magic Eden, Tensor, and other marketplaces.

Example:

{
  "type": "NFT_SALE",
  "description": "Sold NFT for 5 SOL",
  "source": "MAGIC_EDEN"
}

TRANSFER

SOL or SPL token transfers between wallets.

Example:

{
  "type": "TRANSFER",
  "description": "Transferred 100 USDC",
  "tokenTransfers": [...]
}

STAKE / UNSTAKE

Staking and unstaking operations.

Other Types

  • NFT_MINT: NFT minting
  • NFT_BID: NFT bid placement
  • NFT_LISTING: NFT listing creation
  • NFT_CANCEL_LISTING: Cancel NFT listing
  • CREATE_ACCOUNT: Account creation
  • CLOSE_ACCOUNT: Account closure
  • UNKNOWN: Unable to categorize

GET /v0/transactions/:address

Get transaction history for an address with enhanced parsing.

Parameters

ParameterTypeRequiredDefaultDescription
addressstringYes-Wallet address
limitintegerNo50Max transactions (1-1000)
beforestringNo-Cursor for pagination
typestringNo-Filter by transaction type

Request Example

curl "https://nexus.fortiblox.com/api/v1/v0/transactions/9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g?limit=50&type=SWAP&api-key=$FORTIBLOX_API_KEY"

Response

{
  "success": true,
  "data": {
    "address": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
    "transactions": [...],
    "has_more": true,
    "next_cursor": "sig_..."
  }
}

Use Cases

Swap Tracker

async function trackSwaps(wallet) {
  const response = await fetch(
    `https://nexus.fortiblox.com/api/v1/v0/transactions/${wallet}?type=SWAP&limit=100&api-key=${process.env.FORTIBLOX_API_KEY}`
  );
  const data = await response.json();

  if (data.success) {
    return data.data.transactions.filter(tx => tx.source === 'JUPITER');
  }
}

NFT Sales Monitor

def monitor_nft_sales(wallet):
    response = requests.get(
        f'https://nexus.fortiblox.com/api/v1/v0/transactions/{wallet}',
        params={
            'type': 'NFT_SALE',
            'limit': 50,
            'api-key': os.getenv('FORTIBLOX_API_KEY')
        }
    )
    data = response.json()
    return data['data']['transactions'] if data['success'] else []

See Enhanced API Overview for more information.