Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coins JS API SDK

TypeScript SDK for Coins API - Spot Trading, Wallet, Convert, Fiat, P2P Transfer and Invoice Payment functionality.

Installation

npm install coins-js-api

Features

  • TypeScript Support: Full TypeScript support with type definitions
  • Comprehensive API Coverage: Supports all Coins API endpoints
  • Modern Async/Await: Uses modern JavaScript async/await syntax
  • Secure Authentication: Built-in HMAC SHA256 signature generation
  • Easy to Use: Simple and intuitive API design

Quick Start

import { CoinsApiClient, CoinsApiConfig } from 'coins-js-api';

// Create configuration
const config = CoinsApiConfig.builder()
  .setApiKey('your-api-key')
  .setSecretKey('your-secret-key')
  .build();

// Or use direct instantiation
const config = new CoinsApiConfig({
  apiKey: 'your-api-key',
  secretKey: 'your-secret-key',
  baseUrl: 'https://api.coins.ph', // optional
  recvWindow: 5000, // optional
});

// Create client
const client = new CoinsApiClient(config);

// Use the API
async function example() {
  try {
    // Get account information
    const account = await client.wallet().getAccount();
    console.log('Account:', account);

    // Create a new order
    const order = await client.spotTrading().newOrder({
      symbol: 'BTCUSDT',
      side: 'BUY',
      type: 'LIMIT',
      timeInForce: 'GTC',
      quantity: '0.001',
      price: '50000',
    });
    console.log('Order:', order);

    // Get convert quote
    const quote = await client.convert().getQuote({
      fromCoin: 'BTC',
      toCoin: 'USDT',
      fromAmount: '0.001',
    });
    console.log('Quote:', quote);
  } catch (error) {
    console.error('Error:', error);
  }
}

example();

API Modules

Spot Trading

// Get trading fees
const fees = await client.spotTrading().getTradeFee({ symbol: 'BTCUSDT' });

// Get trade history
const trades = await client.spotTrading().getMyTrades({
  symbol: 'BTCUSDT',
  limit: 10,
});

// Get open orders
const openOrders = await client.spotTrading().getOpenOrders({ symbol: 'BTCUSDT' });

// Cancel order
const cancelled = await client.spotTrading().cancelOrder({ orderId: 12345 });

// Cancel all orders
const cancelledAll = await client.spotTrading().cancelAllOrders({ symbol: 'BTCUSDT' });

Wallet

// Get account info
const account = await client.wallet().getAccount();

// Get deposit address
const address = await client.wallet().getDepositAddress({
  coin: 'BTC',
  network: 'BTC',
});

// Get deposit history
const deposits = await client.wallet().getDepositHistory('BTC');

// Apply for withdrawal
const withdrawal = await client.wallet().applyWithdraw({
  coin: 'BTC',
  address: 'your-btc-address',
  amount: '0.001',
  network: 'BTC',
});

// Get transaction history
const history = await client.wallet().getTransactionHistory({
  tokenId: 'BTC',
  pageNum: 1,
  pageSize: 10,
});

Convert

// Get conversion quote
const quote = await client.convert().getQuote({
  fromCoin: 'BTC',
  toCoin: 'USDT',
  fromAmount: '0.001',
});

// Accept quote
const result = await client.convert().acceptQuote({
  quoteId: quote.quoteId,
});

// Get order history
const orders = await client.convert().getOrderHistory();

Fiat

// Get channel configuration
const config = await client.fiat().getChannelConfig({
  fiatCurrency: 'PHP',
  transactionType: 'BUY',
});

// Cash out
const cashout = await client.fiat().cashOut({
  fiatCurrency: 'PHP',
  cryptoCurrency: 'BTC',
  amount: '1000',
  paymentMethod: 'BANK_TRANSFER',
});

// Generate QR code
const qrCode = await client.fiat().generateQrCode({
  coin: 'BTC',
  amount: '0.001',
  description: 'Payment for order #123',
});

P2P Transfer

// Transfer to another user
const transfer = await client.p2pTransfer().transfer({
  coin: 'BTC',
  amount: '0.001',
  toEmail: 'user@example.com',
});

// Get transfer history
const transfers = await client.p2pTransfer().getTransfers();

Invoice Payment

// Create payment request
const payment = await client.payment().createPaymentRequest({
  currency: 'PHP',
  amount: '1000',
  description: 'Payment for service',
  redirectUrl: 'https://example.com/callback',
});

// Get payment request
const paymentDetails = await client.payment().getPaymentRequest({
  id: payment.paymentRequest.id,
});

// List payment requests
const payments = await client.payment().listPaymentRequests(1, 10);

Error Handling

import { CoinsApiException } from 'coins-js-api';

try {
  const result = await client.spotTrading().newOrder({
    symbol: 'BTCUSDT',
    side: 'BUY',
    type: 'LIMIT',
    quantity: '0.001',
    price: '50000',
  });
} catch (error) {
  if (error instanceof CoinsApiException) {
    console.error('API Error Code:', error.getCode());
    console.error('API Error Message:', error.message);
  } else {
    console.error('Unknown Error:', error);
  }
}

Configuration Options

const config = new CoinsApiConfig({
  apiKey: 'your-api-key',          // Required: Your API key
  secretKey: 'your-secret-key',     // Required: Your secret key
  baseUrl: 'https://api.coins.ph',  // Optional: API base URL (default: https://api.coins.ph)
  recvWindow: 5000,                 // Optional: Request validity window in ms (default: 5000)
});

TypeScript Support

This library is written in TypeScript and provides full type definitions for all API requests and responses.

import {
  NewOrderRequest,
  NewOrderResponse,
  OrderResponse,
  TradeVo,
  // ... and many more types
} from 'coins-js-api';

Development

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run linter
npm run lint

# Format code
npm run format

License

MIT

Support

For issues and questions, please visit the GitHub repository.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages