Exchange / Operator API Documentation

Pre-activation notice

V35 activation is scheduled in the reviewed release build at block 514291. It remains inactive until the chain reaches that height.

Exchanges and operators must use the official tagged V35 1.0.0 release, verify SHA256 checksums, and follow the official deployment notice. No founder burn has occurred.

Official V35 1.0.0 release downloads / Официальные загрузки V35 1.0.0 / V35 1.0.0 官方版本下载

Official V35 1.0.0 release is published. V35 activation is scheduled at block 514291. Before block 514291, v35Active=false is expected.

Official repositories and GitHub Releases pages

Official JAR names and launch commands

Download ready node and wallet JARs from the official GitHub Releases and verify SHA256 before running.

Node/server JAR: citu-node-v35-activation-514291-1.0.0.jar

java -jar citu-node-v35-activation-514291-1.0.0.jar --server.port=8083

Wallet JAR: citu-wallet-v35-activation-514291-1.0.0.jar

java -jar citu-wallet-v35-activation-514291-1.0.0.jar --server.port=8082

Java must be installed. Confirm with java -version before starting either application.

EN: safety warning

Fork height 514291 is scheduled in the reviewed build. V35 is not active yet, and v35Active=false is expected before block 514291. No founder burn has occurred. The official public burn address has not been published. Never send funds to BURN_ADDRESS: it is an internal placeholder. Use the official GitHub Release and verify the published SHA256SUMS.txt and SHA256SUMS.txt.sha256 files before using a release.

RU: предупреждение безопасности

Высота форка 514291 запланирована в проверенной сборке. До блока 514291 ожидается v35Active=false. Сжигание средств основателя не выполнялось. Официальный публичный burn-адрес ещё не опубликован. Никогда не отправляйте средства на BURN_ADDRESS: это внутренний placeholder. Используйте официальный GitHub Release и проверьте опубликованные файлы SHA256SUMS.txt и SHA256SUMS.txt.sha256.

ZH: 安全警告

分叉高度 514291 已安排在审核版本中。在区块 514291 之前出现 v35Active=false 属于正常情况。创始人销毁尚未执行。官方公开销毁地址尚未发布。切勿向 BURN_ADDRESS 转账:它只是内部占位符。请使用官方 GitHub Release,并在运行前核验已发布的 SHA256SUMS.txtSHA256SUMS.txt.sha256

Security boundary

Never place private keys or passwords in production URLs, logs, screenshots, scripts, or support messages.

Wallet /keys and /sendCoin?...&password=... are legacy local-only surfaces. They remain available for backward compatibility but are not production exchange integration endpoints.

Exchange integrations should use public node checks and submit reviewed signed transaction JSON through POST /addTransaction.

Recommended exchange flow

  1. Read GET /size and GET /confirmReadiness.
  2. Read public account data with GET /account?address= or GET /balance?address=.
  3. Monitor deposits with GET /customerTransactions, GET /senderTransactions, and inclusion checks.
  4. Broadcast reviewed signed JSON with POST /addTransaction.
  5. Verify inclusion through /isTransactionAdd, /statusTransaction58, /statusTransaction64, or /findBlocksFromSign58 and /findBlocksFromSign64.

Important API request and response examples

Examples use public placeholders only. Never put a private key in an exchange integration request.

SAFE READ-ONLY

GET /size

Returns the current blockchain size.

curl http://localhost:8083/size
506758
SAFE READ-ONLY

GET /balance?address=<ADDRESS>

Reads the public account balance for an address.

curl "http://localhost:8083/balance?address=<PUBLIC_ADDRESS>"
{"digitalDollarBalance":0.01,"digitalStockBalance":0.00}
SAFE READ-ONLY

GET /account?address=<ADDRESS>

Reads a public account record. Input is a public address only.

curl "http://localhost:8083/account?address=<PUBLIC_ADDRESS>"
{"account":"...","digitalDollarBalance":0.01}
SAFE READ-ONLY

GET /customerTransactions?address=<ADDRESS>&from=0&to=10

Reads received transaction history for a public address.

curl "http://localhost:8083/customerTransactions?address=<PUBLIC_ADDRESS>&from=0&to=10"
[{"sender":"...","customer":"...","digitalDollar":0.01,"sign":"..."}]
REVIEW SIGNED JSON

POST /addTransaction

Submits already reviewed signed transaction JSON. Do not include private keys.

{
  "sender": "...",
  "customer": "...",
  "digitalDollar": 0.01,
  "sign": "..."
}
SAFE READ-ONLY

GET /isTransactionAdd?sign=<BASE58_SIGNATURE>

Checks whether a public transaction signature is included.

curl "http://localhost:8083/isTransactionAdd?sign=<BASE58_SIGNATURE>"
true
V35 READ-ONLY

GET /v35/protocol

Reads activation status and protocol constants. Before activation, v35Active=false is expected.

{"v35Active":false,"v35ForkIndex":514291}
V35 READ-ONLY

GET /v35/burn

Reads burn status. BURN_ADDRESS remains an internal placeholder.

{"burnAddress":"BURN_ADDRESS","isBurnAddressPlaceholder":true,"burnAddressConfigured":false}
V35 READ-ONLY

GET /v35/jackpot/status

Reads protocol jackpot state. Jackpot is disabled before V35 activation.

{"v35Active":false,"status":"DISABLED"}

Server / node API: backward-compatible legacy surface

These existing routes remain visible for compatibility. Do not rename or remove them during V35 preparation.

Compatibility quick reference: GET /size, GET /prevBlock, POST /statusTransaction58, POST /statusTransaction64, POST /addTransaction.

MethodRoutePurpose and request shapeResponse meaning
GET/sizeRead blockchain size.Current node chain size.
GET/statusRead node status.Node synchronization/status view.
GET/confirmReadinessRead readiness state.ready or not_ready.
GET/versionRead node version.Server version string.
GET/datashortRead compact chain metadata.Short blockchain information.
GET/prevBlockRead latest block.Latest block JSON.
GET/conductorBlock?index=<INDEX>Lookup block by index.Matching block JSON.
POST/sub-blocksBody: {"start":0,"finish":10}.Bounded block range.
GET/blockHash?hash=<HASH>Lookup block by hash.Matching block JSON.
GET/account?address=<ADDRESS>Read a public account.Account balances.
GET/balance?address=<ADDRESS>Read a public balance snapshot.Balance data for the address.
GET/totalDollarsRead legacy-named GOLD supply total.Aggregate amount.
GET/getTransactionsRead pending transactions.Transaction list.
GET/senderTransactions?address=<ADDRESS>&from=0&to=10Read sent transaction range.Transactions sent by address.
GET/customerTransactions?address=<ADDRESS>&from=0&to=10Read received transaction range.Transactions received by address.
POST/statusTransaction58Body contains Base58 signature.Transaction status.
POST/statusTransaction64Body contains Base64 signature.Transaction status.
GET/isTransactionAdd?sign=<BASE58_SIGNATURE>Check Base58 signature inclusion.Inclusion boolean.
POST/isTransactionAddBase64Body contains Base64 signature.Inclusion boolean.
POST/findBlocksFromSign58Body contains Base58 signature.Containing blocks.
POST/findBlocksFromSign64Body contains Base64 signature.Containing blocks.
POST/addTransactionBody is reviewed signed transaction JSON.Submission result.

Server compatibility appendix

Additional discovered legacy routes remain available where deployed:

/keys, /time, /TransactionAddBase, /TransactionAddBase64, /conductorHashTran, /senderCountDto, /customerCountDto, /addresses, /getBlocksBySenderInRange, /findBlocksByCustomerInRange, /putNode, /pool/add, /pool/getPoolBlockMap, /pool/ConfirmedBalances, /pool/getPendingTxMap, /pool/getPoolAddress, /isWait58, /winnerList, /allwinners, /powerWiners, /countTransactionsWiner, /stakingWiners, /bigRandomWiner, /v28Index, /allAccounts, /totalStaking, /totalAll, /totalTransactionsDay, /totalTransactionsSum, /multiplier, /dayReduce, /getNodes, /block, /isSaveFile, /nodes/resolve_from_to_block, /nodes/register, /findAddresses, /difficultyBlockchain, and /timentp.

Wallet API: local legacy compatibility

Wallet endpoints are preserved for local wallet compatibility. They are not recommended as production exchange integration endpoints.

MethodRouteScopeSafety note
GET/keysLocal key generation.Private output must remain local.
GET/account?address=<ADDRESS>Local account lookup.Public address only.
GET/dollar?address=<ADDRESS>Local GOLD balance lookup.Public address only.
GET/stock?address=<ADDRESS>Local stock lookup.Public address only.
GET/sendCoin?...&password=<PRIVATE_KEY>Legacy local send path.Private-key risk: never use for exchange integration.
POST/isTransactionAddBase64Local Base64 inclusion check.Use public signature only.

Other discovered local wallet compatibility routes include /TransactionAddBase, /TransactionAddBase64, /blockHash, /findBlocksFromSign58, /findBlocksFromSign64, /conductorBlock, /conductorHashTran, /senderTransactions, /customerTransactions, /senderCountDto, /customerCountDto, /addresses, /TopAddress, /getBlocksBySenderInRange, and /findBlocksByCustomerInRange.

V35 read-only API

These endpoints are read-only. Calling them does not activate V35, burn funds, or create jackpot payouts. They become production-relevant only after the reviewed V35 server build is deployed.

BURN_ADDRESS is an internal placeholder while the official public burn address is not published. Do not send funds to it or to unofficial burn addresses.

Curl examples

Read height

curl http://localhost:8083/size

Read account

curl "http://localhost:8083/account?address=<PUBLIC_ADDRESS>"

Read received transactions

curl "http://localhost:8083/customerTransactions?address=<PUBLIC_ADDRESS>&from=0&to=10"

Submit reviewed signed JSON

curl -X POST http://localhost:8083/addTransaction ^
  -H "Content-Type: application/json" ^
  --data-binary @reviewed-signed-transaction.json

Check inclusion

curl "http://localhost:8083/isTransactionAdd?sign=<BASE58_SIGNATURE>"

Read V35 protocol

curl http://localhost:8083/v35/protocol

Read V35 burn status

curl http://localhost:8083/v35/burn

Read V35 jackpot status

curl http://localhost:8083/v35/jackpot/status