Send Stablecoin

Send USDT from your Neutron wallet to an external blockchain address. Currently supports TRON (TRC-20) with ETH (ERC-20) coming next.

Overview

Your Neutron Wallet  ──►  Neutron  ──USDT on-chain──►  External Wallet

Use case: Withdrawing USDT to an exchange, another wallet, or paying a vendor in stablecoins.

Supported Chains

ChainMethodTokenStatus
TRON"tron"USDT (TRC-20)✅ Available
Ethereum"eth"USDT (ERC-20)🔜 Coming soon

Create Transaction

Send USDT via TRON

curl -X POST https://api.neutron.me/api/v2/transaction/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "sourceReq": {
      "ccy": "USDT",
      "method": "neutronpay",
      "reqDetails": {}
    },
    "destReq": {
      "ccy": "USDT",
      "amtRequested": 100,
      "method": "tron",
      "reqDetails": {
        "address": "TQd1nbhg9xj4bjLFtetXc4JVb2stSMJ8s9"
      }
    }
  }'

Send from BTC wallet (auto-convert)

You can also send USDT from a BTC balance — Neutron handles the conversion:

curl -X POST https://api.neutron.me/api/v2/transaction/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "sourceReq": {
      "ccy": "VND",
      "amount": 2500000,
      "method": "neutronpay",
      "reqDetails": {}
    },
    "destReq": {
      "ccy": "USDT",
      "method": "tron",
      "reqDetails": {
        "address": "TQd1nbhg9xj4bjLFtetXc4JVb2stSMJ8s9"
      }
    }
  }'

Request Fields

FieldTypeRequiredDescription
sourceReq.ccystring✅Source currency ("USDT", "BTC", "VND", etc.)
sourceReq.methodstring✅"neutronpay" (from your wallet)
destReq.ccystring✅"USDT"
destReq.methodstring✅"tron" (or "eth" when available)
destReq.amtRequestednumber⚡Amount of USDT to send (set on source or dest, not both)
destReq.reqDetails.addressstring✅Destination blockchain address
extRefIdstring❌Your own reference ID (must be unique)
deductNetworkFeesFromDestboolean❌If true, fees are deducted from the sent amount instead of your wallet
notestring❌Internal note for this transaction
⚠️

Set the amount on one side only (source OR dest), not both.

Response

{
  "txnId": "c7d8e9f0-1234-5678-9abc-def012345678",
  "accountId": "ne01-abc123def456",
  "txnState": "quoted",
  "sourceReq": {
    "ccy": "USDT",
    "method": "neutronpay",
    "amtRequested": 100,
    "neutronpayFees": 1.00,
    "networkFees": 0.50,
    "reqStatus": "0"
  },
  "destReq": {
    "ccy": "USDT",
    "method": "tron",
    "amtRequested": 100,
    "reqStatus": "0",
    "reqDetails": {
      "address": "TQd1nbhg9xj4bjLFtetXc4JVb2stSMJ8s9"
    }
  },
  "fxRate": 1,
  "createdAt": 1770342000000
}

Confirm Transaction

Review the fees, then confirm:

curl -X PUT https://api.neutron.me/api/v2/transaction/c7d8e9f0-1234-5678-9abc-def012345678/confirm \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

After confirmation, Neutron broadcasts the USDT transfer on-chain.

Fee Options

The deductNetworkFeesFromDest flag controls where fees come from:

SettingBehaviorRecipient gets
false (default)Fees deducted from your wallet balanceFull amount
trueFees deducted from the sent amountAmount minus fees

Example: Sending 100 USDT with 1.50 total fees:

  • false → Recipient gets 100 USDT, you pay 101.50 total
  • true → Recipient gets 98.50 USDT, you pay 100 total

Transaction States

StateMeaning
quotedTransaction created — review fees before confirming
srccreatedFunds reserved from wallet
destsentUSDT transfer broadcast on-chain
completedTransaction confirmed on-chain ✅
failedTransaction failed (e.g., insufficient balance)
usercanceledCancelled before confirmation

See Transaction Status Types for the complete state reference.

Notes

  • No KYC required for stablecoin sends. KYC is only needed for fiat payouts to bank accounts.
  • TRON USDT transfers typically confirm within seconds to a few minutes.
  • Double-check the destination address — on-chain transfers are irreversible.
  • Ensure sufficient balance to cover the amount plus fees (unless using deductNetworkFeesFromDest).

Related