wallet
Create a wallet webhook
Register a webhook URL to receive wallet events (balance updates, transaction confirmed/failed/detected/broadcast, token balance, address created/deactivated). Optional filters by addresses and chains.
POST
/api/wallet/non-custodial/webhooksAuthentication
Requires JWT
Note
Include your JWT in the
Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →Request Body
Webhook URL, events array, optional secret and filters (addresses, chains, projectId).
json
{
"url": "https://your-app.com/webhooks/wallet",
"events": [
"wallet.balance.updated",
"wallet.transaction.confirmed"
],
"secret": "whsec_abc123xyz789",
"filters": {
"addresses": [
"65a1b2c3d4e5f6789012345a"
],
"chains": [
"ethereum",
"bitcoin"
]
},
"projectId": "685ad30be129932fbb7a1047"
}{
"url": "https://your-app.com/webhooks/wallet",
"events": [
"wallet.balance.updated",
"wallet.transaction.confirmed"
],
"secret": "whsec_abc123xyz789",
"filters": {
"addresses": [
"65a1b2c3d4e5f6789012345a"
],
"chains": [
"ethereum",
"bitcoin"
]
},
"projectId": "685ad30be129932fbb7a1047"
}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.createWebhook({
url: "https://nervous-statue.org",
events: "driver parse",
secret: "Str0ng_Sample_Pass!w0rd",
filters: "capacitor bypass",
projectId: "proj_3uwXCWV1WgWl"
});const result = await client.wallet.createWebhook({
url: "https://nervous-statue.org",
events: "driver parse",
secret: "Str0ng_Sample_Pass!w0rd",
filters: "capacitor bypass",
projectId: "proj_3uwXCWV1WgWl"
});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
201Webhook created successfully
json
{
"success": true,
"message": "Webhook created successfully",
"data": {
"_id": "65a1b2c3d4e5f6789012345c",
"url": "https://your-app.com/webhooks/wallet",
"events": [
"wallet.balance.updated",
"wallet.transaction.confirmed"
],
"filters": {
"addresses": [],
"chains": []
},
"isActive": true,
"stats": {
"totalDeliveries": 0,
"successfulDeliveries": 0,
"failedDeliveries": 0,
"lastDeliveryAt": null
},
"createdAt": "2026-01-22T10:00:00.000Z",
"updatedAt": "2026-01-22T10:00:00.000Z"
}
}{
"success": true,
"message": "Webhook created successfully",
"data": {
"_id": "65a1b2c3d4e5f6789012345c",
"url": "https://your-app.com/webhooks/wallet",
"events": [
"wallet.balance.updated",
"wallet.transaction.confirmed"
],
"filters": {
"addresses": [],
"chains": []
},
"isActive": true,
"stats": {
"totalDeliveries": 0,
"successfulDeliveries": 0,
"failedDeliveries": 0,
"lastDeliveryAt": 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
| Code | Meaning |
|---|---|
400 | Bad request or validation error. |
401 | Authentication required or invalid token. |
429 | Rate limit exceeded. |