How it works
Your integration is a server that exposes two endpoints that Wavy Node calls:GET /users/{foreign_user_id}— Wavy Node requests user data from your system for compliance checks and report generation.POST /webhook— Wavy Node sends you real-time alerts when suspicious activity is detected.
Wallet-to-user matching
The match between wallets and users happens when you register addresses in our system. When you create an address via the API, you include theforeign_user_id, which is the user’s ID in your system. This is how we know which user owns each wallet.
If a user has multiple wallets, register each wallet with the same foreign_user_id. We handle the linking automatically.
When we need user data (for example, to generate a compliance report), we call your integration endpoint /users/{foreign_user_id}. You must return the required user data for each legislation you have enabled in your project.
For example, if you have Mexican legislation active, all users must include the mexico field populated with the user’s personal and fiscal information:
@wavynode/utils package.
| Active Legislation | Required Field | Content |
|---|---|---|
| Mexico (MX) | mexico | Personal data, RFC/CURP, address, ID document |
| Colombia (CO) | colombia | User data required by Colombian AML regulations |
Integration flow
Register addresses for monitoring
Use
POST /projects/{projectId}/addresses to add wallet addresses you want to monitor. Include the foreign_user_id parameter to link each wallet to a user in your system.Wavy Node monitors on-chain activity
Wavy Node watches your registered addresses for suspicious transactions, regulatory violations, and interactions with blacklisted wallets.
Wavy Node requests user data when needed
When Wavy Node needs user information (e.g., to generate a compliance report), it calls your
GET /users/{foreign_user_id} endpoint. You must return the required user data for all the legislations you have enabled in your project. See the type definitions in @wavynode/utils for the exact fields required by each legislation.Organization compliance data
Before Wavy Node can generate regulatory reports, you must configure your organization’s compliance data in the dashboard. Navigate to Management → Organization in the sidebar and fill in the Compliance Data section. This includes:- Platform domain — Your platform’s domain (auto-formatted to uppercase, e.g.,
wavynode.com→WAVYNODE). - Tax IDs — The tax identifier for each country where you have active legislation:
| Country | Field | Example |
|---|---|---|
| Mexico (MX) | RFC | XAXX010101000 |
| Colombia (CO) | NIT | 900123456-7 |
| El Salvador (SV) | NIT | 0614-123456-001-0 |
| Guatemala (GT) | NIT | 1234567-8 |
Getting started
There are two ways to create a new integration:Use the template
A ready-to-go Nitro application with all required endpoints and authentication already set up. Ideal for local development.
Build from scratch
Use any framework or language. Start by setting up authentication.
@wavynode/utils package
We provide an npm package with utilities to simplify the integration process:
validateSignature— Verify the authenticity of requests from Wavy Node.- Type definitions for each legislation’s required user data (e.g.,
MexicoUserData,ColombiaUserData).
Next steps
Authentication
Learn how to verify requests from Wavy Node.
Endpoints
Implement the required endpoints for your integration.
API Reference
Explore the full API documentation.