Wallet API Endpoints
Implementation mapping: route registrations in src/walletapi/ApiDispatcher.cpp.
Route placeholders:
{address}->ApiConstants::addressRegex{hash}->ApiConstants::hashRegex{paymentId}->ApiConstants::paymentIDRegex
POST
/wallet/open/wallet/import/key/wallet/import/seed/wallet/import/view/wallet/create/addresses/create/addresses/import/addresses/import/deterministic/addresses/import/view/addresses/validate/transactions/send/prepared/transactions/prepare/basic/transactions/send/basic/transactions/prepare/advanced/transactions/send/advanced/transactions/send/fusion/basic/transactions/send/fusion/advanced/export/json
DELETE
/wallet/addresses/{address}/transactions/prepared/{hash}
PUT
/save/reset/node/sync/refresh
GET
/node/keys/keys/{address}/keys/mnemonic/{address}/status/addresses/addresses/primary/addresses/{address}/{paymentId}/transactions/transactions/unconfirmed/transactions/unconfirmed/{address}/transactions/{startHeight}/transactions/{startHeight}/{endHeight}/transactions/address/{address}/{startHeight}/transactions/address/{address}/{startHeight}/{endHeight}/transactions/privatekey/{hash}/transactions/hash/{hash}/transactions/paymentid/{hash}/transactions/paymentid/balance/balance/{address}/balances
OPTIONS
.*wildcard handler for CORS preflight.
Notes
/transactions/paymentid/{hash}currently useshashRegexin route registration.- Some endpoints require a full wallet (not view-only); enforced in middleware.
Example Requests
All examples include:
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json"
Wallet lifecycle
Create wallet:
curl -s -X POST "$WALLET_API_URL/wallet/create" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"filename":"new.wallet","password":"wallet-pass","daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
Open wallet:
curl -s -X POST "$WALLET_API_URL/wallet/open" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"filename":"new.wallet","password":"wallet-pass","daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
Import from keys:
curl -s -X POST "$WALLET_API_URL/wallet/import/key" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"filename":"import.wallet","password":"wallet-pass","privateViewKey":"<view-secret-key>","privateSpendKey":"<spend-secret-key>","scanHeight":0,"daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
Import from seed:
curl -s -X POST "$WALLET_API_URL/wallet/import/seed" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"filename":"seed.wallet","password":"wallet-pass","mnemonicSeed":"<25-word-seed>","scanHeight":0,"daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
Import view wallet:
curl -s -X POST "$WALLET_API_URL/wallet/import/view" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"filename":"view.wallet","password":"wallet-pass","address":"<address>","privateViewKey":"<view-secret-key>","scanHeight":0,"daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
Save, reset, close:
curl -s -X PUT "$WALLET_API_URL/save" -H "X-API-KEY: $WALLET_API_KEY"
curl -s -X PUT "$WALLET_API_URL/reset" -H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" -d '{"scanHeight":0}'
curl -s -X DELETE "$WALLET_API_URL/wallet" -H "X-API-KEY: $WALLET_API_KEY"
Address operations
Create random address:
curl -s -X POST "$WALLET_API_URL/addresses/create" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{}'
Import spend-key address:
curl -s -X POST "$WALLET_API_URL/addresses/import" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"privateSpendKey":"<spend-secret-key>","scanHeight":0}'
Import deterministic address:
curl -s -X POST "$WALLET_API_URL/addresses/import/deterministic" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"walletIndex":1,"scanHeight":0}'
Import view address:
curl -s -X POST "$WALLET_API_URL/addresses/import/view" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"publicSpendKey":"<public-spend-key>","scanHeight":0}'
Validate address:
curl -s -X POST "$WALLET_API_URL/addresses/validate" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"address":"<address>"}'
List/get/delete addresses:
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/addresses"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/addresses/primary"
curl -s -X DELETE -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/addresses/<address>"
Create integrated address:
curl -s -H "X-API-KEY: $WALLET_API_KEY" \
"$WALLET_API_URL/addresses/<address>/<payment-id-16-or-64-hex>"
Transaction send/prepare
Prepare basic:
curl -s -X POST "$WALLET_API_URL/transactions/prepare/basic" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destination":"<address>","amount":1000000,"paymentID":"<optional-payment-id>"}'
Send prepared:
curl -s -X POST "$WALLET_API_URL/transactions/send/prepared" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"transactionHash":"<prepared-transaction-hash>"}'
Delete prepared:
curl -s -X DELETE -H "X-API-KEY: $WALLET_API_KEY" \
"$WALLET_API_URL/transactions/prepared/<prepared-transaction-hash>"
Send basic:
curl -s -X POST "$WALLET_API_URL/transactions/send/basic" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destination":"<address>","amount":1000000}'
Prepare/send advanced:
curl -s -X POST "$WALLET_API_URL/transactions/prepare/advanced" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destinations":[{"address":"<address>","amount":1000000}],"mixin":7,"fee":1000,"sourceAddresses":["<address>"],"paymentID":"<optional-payment-id>","changeAddress":"<optional-change-address>","unlockTime":0,"extra":"<optional-extra-hex>"}'
curl -s -X POST "$WALLET_API_URL/transactions/send/advanced" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destinations":[{"address":"<address>","amount":1000000}],"mixin":7,"feePerByte":1.25,"sourceAddresses":["<address>"]}'
Fusion send:
curl -s -X POST "$WALLET_API_URL/transactions/send/fusion/basic" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destination":"<address>"}'
curl -s -X POST "$WALLET_API_URL/transactions/send/fusion/advanced" \
-H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" \
-d '{"destination":"<address>","mixin":7,"sourceAddresses":["<address>"],"extra":"<optional-extra-hex>","optimizeTarget":100000}'
Transaction queries
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/unconfirmed"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/unconfirmed/<address>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/100000"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/100000/101000"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/address/<address>/100000"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/address/<address>/100000/101000"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/hash/<tx-hash-64-hex>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/paymentid/<payment-id-or-hash>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/paymentid"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/transactions/privatekey/<tx-hash-64-hex>"
Key, node, and balances
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/keys"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/keys/<address>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/keys/mnemonic/<address>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/node"
curl -s -X PUT "$WALLET_API_URL/node" -H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" -d '{"daemonHost":"127.0.0.1","daemonPort":11898,"daemonSSL":false}'
curl -s -X PUT "$WALLET_API_URL/sync/refresh" -H "X-API-KEY: $WALLET_API_KEY"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/balance"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/balance/<address>"
curl -s -H "X-API-KEY: $WALLET_API_KEY" "$WALLET_API_URL/balances"
curl -s -X POST "$WALLET_API_URL/export/json" -H "X-API-KEY: $WALLET_API_KEY" -H "Content-Type: application/json" -d '{"filename":"wallet-export.json"}'