wallet

Register a non-custodial wallet address

Register a public wallet address for balance monitoring, transaction indexing, and webhook notifications. Keys are never sent to the server; generation and signing happen client-side only. Supports EVM, UTXO, Solana, Tron, TON, Cardano, and other chains. Optionally provide derivation path and label for multi-address tracking.

POST/api/wallet/non-custodial/register-address

Authentication

Requires JWT
Note
Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →

Request Body

Public address, chain identifier, and optional derivation path and label. projectId scopes the registration to a project.

json
{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "chain": "base",
  "derivationPath": "m/44'/60'/0'/0/5",
  "label": "User Wallet 5",
  "projectId": "proj_qh5hFHNT70YZ"
}
{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "chain": "base",
  "derivationPath": "m/44'/60'/0'/0/5",
  "label": "User Wallet 5",
  "projectId": "proj_qh5hFHNT70YZ"
}

SDK setup

Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.

import { MudbaseClient } from "mudbase";

const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");
import { MudbaseClient } from "mudbase";

const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");

Example request

Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.

const result = await client.wallet.registerAddress({
  address: "86999 Kristin Cove",
  chain: "microchip quantify",
  derivationPath: "sensor bypass",
  label: "sensor reboot",
  projectId: "proj_iiM3zLxdyzSG"
});
const result = await client.wallet.registerAddress({
  address: "86999 Kristin Cove",
  chain: "microchip quantify",
  derivationPath: "sensor bypass",
  label: "sensor reboot",
  projectId: "proj_iiM3zLxdyzSG"
});

Try It Live

Test this endpoint with your own credentials. Your requests will be sent to the live API.

Use the auth endpoints to obtain a JWT.

No Request Yet

Send a request to see the full inspector

Responses

201Address registered successfully
json
{
  "success": true,
  "message": "Address registered successfully",
  "data": {
    "_id": "65a1b2c3d4e5f6789012345a",
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "chain": "ethereum",
    "org": "685acbe0e129932fbb7a0fc3",
    "project": "685ad30be129932fbb7a1047",
    "derivationPath": "m/44'/60'/0'/0/5",
    "label": "User Wallet 5",
    "isActive": true,
    "registeredAt": "2026-01-22T10:00:00.000Z",
    "lastSyncedAt": null,
    "createdAt": "2026-01-22T10:00:00.000Z",
    "updatedAt": "2026-01-22T10:00:00.000Z"
  }
}
{
  "success": true,
  "message": "Address registered successfully",
  "data": {
    "_id": "65a1b2c3d4e5f6789012345a",
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "chain": "ethereum",
    "org": "685acbe0e129932fbb7a0fc3",
    "project": "685ad30be129932fbb7a1047",
    "derivationPath": "m/44'/60'/0'/0/5",
    "label": "User Wallet 5",
    "isActive": true,
    "registeredAt": "2026-01-22T10:00:00.000Z",
    "lastSyncedAt": null,
    "createdAt": "2026-01-22T10:00:00.000Z",
    "updatedAt": "2026-01-22T10:00:00.000Z"
  }
}
400Bad request or validation error.
401Authentication required or invalid token.
429Rate limit exceeded.

Errors

CodeMeaning
400Bad request or validation error.
401Authentication required or invalid token.
429Rate limit exceeded.
Edit this page on GitHub