Wallets

Manage wallet balances and currency conversions

Wallets API

Manage wallet balances and convert currencies to DRAKMA.


Get Wallet Balances {#get-balances}

Retrieve current balances for all supported currencies.

Endpoint

GET /api/v1/wallet/balances

Authentication

Required

Response

{
  "usd": "1250.50",
  "usdt": "500.00",
  "usdc": "0",
  "eth": "0.5",
  "drgn": "1000.00",
  "drakma": "5000.00"
}

Response Fields

FieldTypeDescription
usdstringUSD balance
usdtstringUSDT (Tether) balance
usdcstringUSDC balance
ethstringEthereum balance
drgnstringDRGN balance
drakmastringDRAKMA balance

Notes

  • Returns "0" for currencies with no wallet or zero balance
  • All balances returned as decimal strings for precision

Convert to DRAKMA {#convert-to-drakma}

Convert currency to DRAKMA with bonus.

Endpoint

POST /api/v1/wallet/convert-to-drakma

Authentication

Required - Must have sufficient balance

Request Body

{
  "currency": "USD",
  "amount": "100.00"
}

Request Fields

FieldTypeRequiredDescription
currencystringYesSource currency (USD, USDT, USDC, ETH, DRGN)
amountstringYesAmount to convert

Valid Currencies

  • USD - US Dollar
  • USDT - Tether
  • USDC - USD Coin
  • ETH - Ethereum
  • DRGN - Dragonchain Token

Note: Cannot convert DRAKMA to DRAKMA

Response

{
  "status": "success"
}

Error Responses

StatusMessageReason
400Invalid currency: DRAKMACannot convert DRAKMA
400Insufficient funds: 1000.00Balance too low
500failed to post transactionBlockchain error

Conversion Process

  1. Validates currency (cannot be DRAKMA)
  2. Verifies sufficient wallet balance
  3. Calculates conversion rate with bonus
  4. Posts transaction to Dragonchain
  5. Burns source currency (user → zero wallet)
  6. Mints DRAKMA (zero wallet → user)

Transaction Details

Burn Transaction (Source Currency):

  • From: User wallet
  • To: Zero wallet (burn address)
  • Amount: Requested conversion amount
  • Metadata: {conversionBurn: true}

Mint Transaction (DRAKMA):

  • From: Zero wallet (mint address)
  • To: User wallet
  • Amount: Total with bonus
  • Metadata: {conversionMint: true}

Notes

  • Conversion includes bonus DRAKMA
  • Operations are atomic (both succeed or both fail)
  • Transaction ID stored for audit trail
  • Uses database transaction for consistency

Supported Currencies

CodeNameType
USDUS DollarFiat
USDTTetherStablecoin
USDCUSD CoinStablecoin
ETHEthereumCryptocurrency
DRGNDragonchain TokenPlatform Token
DRAKMADrakmaPlatform Token

Currency Restrictions

  • DRAKMA: Can receive through conversions, cannot convert from
  • All other currencies can convert to DRAKMA