🔔Notify URL (Webhook)
Save a project webhook url to receive subwallet deposit callback/notifications.
Step 1: Select "Configure Webhook" from "Projects" on Dashboard.

Step 2: Input your webhook URL into the field provided and click "Save"

Step 3: Send test notification to webhook url for development purposes.

🔔 Sample notification POST
to your webhook url
POST
to your webhook url{
"type": "DEPOSIT",
"network": "TRON",
"status": "SUCCESS",
"hash": "cd2df87daa2001c678f5be970851278987a45132f165f62e5f1e1987c43d5cf7",
"fromAddress": "TDmarSrhZg7LaUaQyzez7UA2EZrCLWXEjw",
"toAddress": "TTcVb5oLA7UDGCDvTs7DtQo9ktJWgYPCkC",
"contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"value": "787.41",
"assetName": "Tether USD",
"assetSymbol": "USDT",
"networkFee": "1",
"platformFee": "3.93705",
"timestamp": 1618564124
}
Step 4: 🔥 Validating data received at callback URL (Webhook)
It is considered standard practice to respond with 200 OK
once you have successfully received a webhook callback (notification).
function isValidSignature(request) {
const secretKey = 'Secret Key provided by Multichain on the Project (View Key) list popup';
const headers = request.headers;
const signature = headers['multichain-api-key']; // Lowercase for NodeJS
const body = request.body;
const hmac = crypto.createHmac('sha256', secretKey) // Create a HMAC SHA256 hash using the auth token
hmac.update(body, 'utf8') // Update the token hash with the request body using utf8
const digest = hmac.digest('hex');
return (signature === digest); // If signature equals your computed hash, return true
}
Make sure only to store validated transactions by type DEPOSIT
using hash
as the unique - primary key which will reject and prevent duplicated deposits in any case where your system receives a repeated webhook notification.

Last updated
Was this helpful?