Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
We are currently in the beta phase, actively developing our service.
As such, access is provided to you entirely free of charge, at no cost to you. If any issue arises during use, please report it to us as soon as possible; our team will give it the utmost attention.
The goal of this beta is to address all issues, meet your expectations, and enhance our service.
The beta is available for everyone, no API key is required at the moment. Being in our Telegram would help us a lot in taking your feedback into account.
Our Signer Trade Monitoring features enable you to track Trades signed by a specific Solana public key in real time.
For details on the supported pool types, please refer to the Welcome section of our documentation.
Add one or more signers to monitor by replacing
pbk_n
with the desired Solana signer public keys.
{
"event": "listenSignerTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
Remove one or more signers from monitoring by replacing
pbk_n
with the desired Solana signer public keys.
{
"event": "removeSignerTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"token_in": float64,
"decimals_in":int,
"mint_out":"solana.PublicKey",
"token_out":float64,
"decimals_out":int,
"isBuy":bool
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
}
],
"marketcap":float64,
"marketcap_usd":float64,
"bonding_percentage":float64
},
"details": {
"slot": uint64,
"block_height": uint64,
"timestamp": int64
}
}
Coming soon...
Welcome to the Monitor.ws documentation. This guide is designed to assist you in integrating our service into your project.
Monitor.ws enables you to access real-time on-chain and off-chain data through a WebSocket connection. In the near future, we will also introduce several endpoints to provide access to historical data.
All our responses are JSON formated and ready for immediate use. If you have ideas for additional features to include, please feel free to let us know via our Telegram.
Pumpfun
Pumpfun AMM
Raydium AMM V4
Raydium CPMM
Meteora DLMM
Lifinity
Obric
SolFI
... (coming soon)
Our All Monitoring features enable you to track every event that includes your filter on Solana in real time.
For details on the supported event types, please refer to the event list available in the On-Chain data section.
Add one or more public keys to monitor by replacing
pbk_n
with the desired Solana public keys.
Remove one or more public keys from monitoring by replacing
pbk_n
with the desired Solana public keys.
Filters available in the trade response
Filters available in the creation response
Filters available in the migration response
Filters available in the transfer response
Our Token Trade Monitoring features enable you to track Trades made on a specific Solana token in real time.
For details on the supported pool types, please refer to the Welcome section of our documentation.
Add one or more tokens to monitor by replacing
pbk_n
with the desired Solana token public keys (mint).
Remove one or more tokens from monitoring by replacing
pbk_n
with the desired Solana token public keys (mint).
{
"event": "listenAll",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"event": "removeAll",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"mint_out":"solana.PublicKey",
}
}
{
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"mint_out":"solana.PublicKey",
},
"create": {
"user": "solana.PublicKey",
"mint": "solana.PublicKey",
}
}
{
"mint": "solana.PublicKey"
}
{
"signer":[
"solana.PublicKey",
"..."
],
"transfer": {
"mint": "solana.PublicKey",
"sender": "solana.PublicKey",
"recipient": "solana.PublicKey",
}
}
{
"event": "listenTokenTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"event": "removeTokenTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"token_in": float64,
"decimals_in":int,
"mint_out":"solana.PublicKey",
"token_out":float64,
"decimals_out":int,
"isBuy":bool
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
}
],
"marketcap":float64,
"marketcap_usd":float64,
"bonding_percentage":float64
},
"details": {
"slot": uint64,
"block_height": uint64,
"timestamp": int64
}
}
Websocket
Connect to our Websocket
On-Chain
Subscribe to on-chain data
Trade
API endpoint for trade
Our Token Metadata API endpoint allows you to retrieve the parsed metadata of a token.
In order to provide complete information, this endpoint will perform an off-chain request to obtain the description as well as the logo and socials.
Since we are in BETA, this endpoint may change at any time.
https://api.monitor.ws/api/token/metadata
Add one or more token by replacing
pbk_n
with the desired Solana account public keys (mint).
[
"pbk_one",
"pbk_two",
"..."
]
[
{
"mint": "solana.PublicKey",
"name": "string",
"symbol": "string",
"description": "string",
"links": {
"image": "string",
"twitter": "string",
"telegram": "string",
"website": "string"
}
},
{
"mint": "solana.PublicKey",
"name": "string",
"symbol": "string",
"description": "string",
"links": {
"image": "string",
"twitter": "string",
"telegram": "string",
"website": "string"
}
},
{
"mint": "solana.PublicKey",
"name": "string",
"symbol": "string",
"description": "string",
"links": {
"image": "string",
"twitter": "string",
"telegram": "string",
"website": "string"
}
}
]
The Monitor Api enables you to get both on-chain and off-chain data. On-chain data are pre-parsed, ready for immediate use, and accessible through a variety of available endpoints.
If you have suggestions for new endpoints, feel free to reach out to our development team via our Telegram chat. Thank you for your contributions to the project!
We are currently in BETA. Api access is free in exchange for your feedback.
No API key is required to use our WebSocket connection. It is free to use, and we do not have any hidden costs.
During the BETA phase, there is no limit on RPS.
If you encounter any difficulties integrating the Api into your script, our development team is here to assist. Feel free to join our Telegram community, where you can ask questions, and receive support directly from the team and other developers.
Coming soon
Our King of the Hill Monitoring features enable you to track the current King Of The Hill token on the Pump.fun website.
This event may be unavailable if the Pump.fun website is updated. Please contact us on if that is the case.
Currently, no filters are available for this event. If you need them, please with the necessary filters.
{
"event": "listenPumpfunKoh"
}
{
"event": "removePumpfunKoh"
}
{
"mint": "solana.Publickey",
"name": "string",
"symbol": "string",
"description": "string",
"creator": {
"wallet": "solana.Publickey",
"username": "*string",
"profile_image": "*string"
},
"bonding_curve": {
"usd_market_cap": float64,
"market_cap": float64,
"bonding_curve": "solana.Publickey",
"associated_bonding_curve": "solana.Publickey",
"total_supply": int64,
"virtual_sol_reserves": int64,
"virtual_token_reserves": int64
},
"links": {
"twitter": "*string",
"telegram": "*string",
"website": "*string"
},
"uri": {
"image_uri": "string",
"video_uri": "*string",
"metadata_uri": "string"
},
"others": {
"is_currently_live": bool,
"show_name": bool,
"reply_count": int,
"nsfw": bool,
"inverted": bool
},
"timestamp": {
"created": int64,
"koh": int64
}
}
Our Token Creation Monitoring features enable you to track new Tokens created on Solana in real time.
Only Pumpfun token creation is supported at the moment.
You can use multiple token creation parameters simultaneously.
All token creation events: content field is empty ("")
Signer
Public Key (mint)
User (creator account)
Name
Symbol
Add one or more token creation events to monitor by replacing
value_n
with the desired token creation parameters.
{
"event": "listenTokenCreation",
"content": [
"value_one",
"value_two",
"..."
]
}
Remove one or more token creation events from monitoring by replacing
value_n
with the desired token creation parameters.
{
"event": "removeTokenCreation",
"content": [
"value_one",
"value_two",
"..."
]
}
{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"token_in": float64,
"decimals_in":int,
"mint_out":"solana.PublicKey",
"token_out":float64,
"decimals_out":int,
"isBuy":bool
},
"create": {
"user": "solana.PublicKey",
"mint": "solana.PublicKey",
"bonding_curve": "solana.PublicKey",
"name": "string",
"symbol": "string",
"uri": "string"
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
}
],
"marketcap":float64,
"marketcap_usd":float64,
"bonding_percentage":float64
},
"details": {
"slot": uint64,
"block_height": uint64,
"timestamp": int64
}
}
Our Token Info API endpoint allows you to retrieve the parsed metadata of a token and off-chain metadata.
In order to provide complete information, this endpoint will perform an off-chain request to obtain the description as well as the logo and similar information.
Since we are in BETA, this endpoint may change at any time.
https://api.monitor.ws/api/token/info
Add one or more token by replacing
pbk_n
with the desired Solana account public keys (mint).
[
"pbk_one",
"pbk_two",
"..."
]
[
{
"Metadata": {
"mint": "solana.PublicKey",
"name": "string",
"symbol": "string",
"description": "string",
"links": {
"image": "string",
"twitter": "string",
"telegram": "string",
"website": "string"
}
},
"Dex": {
"IsPaid": false,
"Info": {
"mint": "solana.PublicKey",
"keys": {
"pair": "solana.PublicKey",
"quote": "solana.PublicKey"
},
"infos": {
"name": "string",
"symbol": "string",
"type": "string",
"created": "int"
},
"metrics": {
"market_cap": "float64",
"fdv": "float64",
"volume": {
"h1": "float64",
"h24": "float64",
"h6": "float64",
"m5": "float64"
},
"price_change": {
"h1": "float64",
"h24": "float64",
"h6": "float64",
"m5": "float64"
},
"txns": {
"h1": {
"buys": "int",
"sells": "int"
},
"h24": {
"buys": "int",
"sells": "int"
},
"h6": {
"buys": "int",
"sells": "int"
},
"m5": {
"buys": "int",
"sells": "int"
}
},
"liquidity": {
"usd": "float64",
"base": "float64",
"quote": "float64"
},
"price": {
"sol": "float64",
"usd": "float64"
}
},
"links": {
"url": "string",
"image": "string",
"header": "string",
"opengraph": "string",
"websites": [
{
"label": "string",
"url": "string"
}
],
"socials": [
{
"type": "string",
"url": "string"
}
]
},
"boosts": {
"total": "int"
}
}
}
},
...
]
Our Dex Boost Monitoring features enable you to track boosts applied to a token on the Dexscreener website.
This event may be unavailable if the Dexscreener website is updated. Please contact us on Telegram if that is the case.
Currently, no filters are available for this event. If you need them, please contact us with the necessary filters.
{
"event": "listenDexBoost"
}
{
"event": "removeDexBoost"
}
{
"mint": "solana.PublicKey",
"keys": {
"pair": "solana.PublicKey",
"quote": "solana.PublicKey"
},
"infos": {
"name": "string",
"symbol": "string",
"type": "string",
"created": "int"
},
"metrics": {
"market_cap": "float64",
"fdv": "float64",
"volume": {
"h1": float64,
"h24": float64,
"h6": float64,
"m5": float64
},
"price_change": {
"h1": float64,
"h24": float64,
"h6": float64,
"m5": float64
},
"txns": {
"h1": {
"buys": int,
"sells": int
},
"h24": {
"buys": int,
"sells": int
},
"h6": {
"buys": int,
"sells": int
},
"m5": {
"buys": int,
"sells": int
}
},
"liquidity": {
"usd": float64,
"base": float64,
"quote": float64
},
"price": {
"sol": float64,
"usd": float64
}
},
"links": {
"url": "string",
"image": "string",
"header": "string",
"opengraph": "string",
"websites": [
{
"label": "string",
"url": "string"
}
],
"socials": [
{
"type": "string",
"url": "string"
}
]
},
"boosts": {
"total": "int",
"amount": "int"
}
}
Our Account Trade Monitoring features enable you to track Trades executed by a specific Solana public key in real time.
For details on the supported pool types, please refer to the Welcome section of our documentation.
Add one or more account to monitor by replacing
pbk_n
with the desired Solana account public keys.
{
"event": "listenAccountTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
Remove one or more accounts from monitoring by replacing
pbk_n
with the desired Solana account public keys.
{
"event": "removeAccountTrade",
"content": [
"pbk_one",
"pbk_two",
"..."
]
}
{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"token_in": float64,
"decimals_in":int,
"mint_out":"solana.PublicKey",
"token_out":float64,
"decimals_out":int,
"isBuy":bool
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":int
}
],
"marketcap":float64,
"marketcap_usd":float64,
"bonding_percentage":float64
},
"details": {
"slot": uint64,
"block_height": uint64,
"timestamp": int64
}
}
Our Transfer Monitoring features enable you to track SOL/SPL Transfer made on Sonala in real time.
Transfer and TransferChecked type are supported.
You can use multiple transfer parameters simultaneously.
Signer
Mint
Sender
Recipient
Add one or more transfer events to monitor by replacing
value_n
with the desired transfer parameters.
{
"event": "listenTransfer",
"content": [
"value_one",
"value_two",
"..."
]
}
Remove one or more transfer events from monitoring by replacing
value_n
with the desired transfer parameters.
{
"event": "removeTransfer",
"content": [
"value_one",
"value_two",
"..."
]
}
{
"signature": "solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"transfer": {
"mint": "solana.PublicKey",
"sender": "solana.PublicKey",
"recipient": "solana.PublicKey",
"amount": float64,
"token_decimals": int
},
"details": {
"slot": uint64,
"block_height": uint64,
"timestamp": int64
}
}
Our Dex Paid Monitoring features enable you to track new Dex Paid token on the Dexscreener website.
This event may be unavailable if the Dexscreener website is updated. Please contact us on if that is the case.
Currently, no filters are available for this event. If you need them, please with the necessary filters.
Our Trade API endpoint allows you to execute trades with a single request.
We handle the creation of the transaction as well as sending it through multiple endpoints to ensure the fastest possible landing.
Our Trade endpoint is currently in BETA. The trade fee is 0.1% of your equivalent SOL trade amount.
Since we are in BETA, this endpoint may change at any time.
Your
private key
is not stored or logged. We will soon upgrade to an API key system.
mev_protection
,skip_preflight
,custom_tip_address
,custom_tip_percentage
are optional parameters. You don't need to add them to the payload.
Success message returned
Error returned
https://api.monitor.ws/api/trade
{
"mint": "solana.PublicKey",
"private_key": "solana.PrivateKey",
"amount": "string", // Float64 | % can be used for Sell: 100%
"is_sol": bool, // True = amount is in SOL
"slippage": float64, // 20 = 20% | 100 = 100%
"fee": float64, // Priority Fee
"type": "string", // buy or sell
"pool": "string", // pumpfun_bonding / pumpfun_amm / raydium / auto
"mev_protection": bool, // true or false | use false for fast landing
"skip_preflight": bool, // true or false | true for fast landing
"custom_tip_address": "solana.Publickey",
"custom_tip_percentage": float64 // 20 = 20% | 100 = 100%
}
{
"Message":"Transaction sent successfully",
"event":{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"trade":{
"user":"solana.PublicKey",
"mint_in":"solana.PublicKey",
"token_in":float64,
"decimals_in":"int",
"mint_out":"solana.PublicKey",
"token_out":float64,
"decimals_out":"int",
"isBuy":"bool"
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":"int"
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":"int"
}
],
"marketcap":float64,
"marketcap_usd":float64,
"bonding_percentage":float64
},
"details":{
"slot":uint64,
"block_height":uint64,
"timestamp":int64
}
}
}
{
"data": {},
"message": "string",
"status": int
}
{
"event": "listenDexPaid"
}
{
"event": "removeDexPaid"
}
{
"mint": "solana.PublicKey",
"keys": {
"pair": "solana.PublicKey",
"quote": "solana.PublicKey"
},
"infos": {
"name": "string",
"symbol": "string",
"type": "string",
"created": "int"
},
"metrics": {
"market_cap": "float64",
"fdv": "float64",
"volume": {
"h1": float64,
"h24": float64,
"h6": float64,
"m5": float64
},
"price_change": {
"h1": float64,
"h24": float64,
"h6": float64,
"m5": float64
},
"txns": {
"h1": {
"buys": int,
"sells": int
},
"h24": {
"buys": int,
"sells": int
},
"h6": {
"buys": int,
"sells": int
},
"m5": {
"buys": int,
"sells": int
}
},
"liquidity": {
"usd": float64,
"base": float64,
"quote": float64
},
"price": {
"sol": float64,
"usd": float64
}
},
"links": {
"url": "string",
"image": "string",
"header": "string",
"opengraph": "string",
"websites": [
{
"label": "string",
"url": "string"
}
],
"socials": [
{
"type": "string",
"url": "string"
}
]
},
"boosts": {
"total": "int"
}
}
package main
import (
"log"
"log/slog"
"time"
"github.com/fatih/color"
"github.com/gorilla/websocket"
)
type Payload struct {
Event string `json:"event"`
Content []string `json:"content"`
}
const (
url = "wss://api.monitor.ws/connect"
)
func main() {
/* Connecting to the monitorws server */
conn, _, err := websocket.DefaultDialer.Dial(url, nil)
if err != nil {
log.Fatalf("connecting to monitorws: %v", err)
}
defer conn.Close()
/* Sending event payload */
if err := conn.WriteJSON(Payload{
/* Refer to docs.monitor.ws/websocket */
Event: "<YOUR_EVENT>",
Content: []string{
"", /* This field can be empty if you don't want to set any filters; however, it does not work with all events. */
},
}); err != nil {
log.Fatalf("writing event to monitorws: %v", err)
}
/*
Send a ping message every 8 minutes to keep the connection alive
*/
go func() {
for {
time.Sleep(8 * time.Minute)
if err := conn.WriteControl(websocket.PingMessage, []byte("ping"), time.Now().Add(10*time.Second)); err != nil {
slog.Error("sending ping to monitorws", "err", err)
continue
}
color.Magenta("[ %s ] > Ping sent to monitorws", time.Now().Format("15:04:05"))
}
}()
/*
Infinite loop to listen for events from the server.
*/
for {
/* Reading the message received from the server */
_, message, err := conn.ReadMessage()
if err != nil {
slog.Error("reading event from monitorws", "err", err)
continue
}
color.Cyan("[ %s ] > %s", time.Now().Format("15:04:05"), string(message))
}
}
Our Token Migrations Monitoring features enable you to track token Migration on Pump.fun in real time.
Since 20/03/2025, the Pumpfun migration has been made to the new Pumpfun AMM program.
You can use multiple token migration parameters simultaneously.
All token migration events: content field is empty ("")
Add one or more token migration events to monitor by replacing
value_n
with the desired token migration parameters.
{
"event": "listenTokenMigration",
"content": [
"value_one",
"value_two",
"..."
]
}
Remove one or more token migration events from monitoring by replacing
value_n
with the desired token migration parameters.
{
"event": "removeTokenMigration",
"content": [
"value_one",
"value_two",
"..."
]
}
{
"signature":"solana.Signature",
"signer":[
"solana.PublicKey",
"..."
],
"migrate":{
"mint":"solana.PublicKey",
"amm":"solana.PublicKey"
},
"pool":{
"type":"string",
"pairs":[
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":"int"
},
{
"mint":"solana.PublicKey",
"amount":float64,
"decimals":"int"
}
],
"marketcap":float64,
"marketcap_usd":float64
},
"details":{
"slot":uint64,
"block_height":uint64,
"timestamp":int64
}
}
Our Meta Monitoring features enable you to track the Meta used in recent Pump.fun token transactions and creations.
This event may be unavailable if the Pump.fun website is updated. Please contact us on Telegram if that is the case.
Currently, no filters are available for this event. If you need them, please contact us with the necessary filters.
{
"event": "listenPumpfunMeta"
}
{
"event": "removePumpfunMeta"
}
[
{
"word": "string",
"word_with_strength": "string",
"score": float64,
"total_txns": int,
"total_vol": float64
},
{
"word": "string",
"word_with_strength": "string",
"score": float64,
"total_txns": int,
"total_vol": float64
},
...
]