# What are Callbacks?

### **Overview**

Callbacks are like your ears on the Solana blockchain. They let you listen in on exciting events, like when someone makes a sale, lists an item, or does a swap.

Instead of you having to constantly check the blockchain to see if something's happening, our callbacks do the work for you. As soon as an event takes place on the blockchain, we send a POST request to a web address (callback URL) you provide.

You don't need to stress about setting up and maintaining expensive, high-powered servers to keep up with all the latest blockchain activity. We've got you covered with a programmer-friendly API to set up and manage your callbacks.

### **Different Callback Types**

* <mark style="color:yellow;">Transaction Callbacks:</mark> This includes both parsed and raw transactions. (We identify the tx type, NFT sale, list, swap etc, decode and parse the data so you can consume it easily. Check out supported transaction types and their response structures [<mark style="color:yellow;">here</mark>](/solana-apis/transactions.md))
* <mark style="color:yellow;">Account Callbacks:</mark> We monitor individual account addresses or all the program accounts of a given program, whenever the account data updates we notify you with either raw or parsed data.
* <mark style="color:yellow;">Discord:</mark> You can get enriched response structures with images (wherever applicable) directly into your Discord server.&#x20;
* <mark style="color:yellow;">Anchor Events:</mark> Given an IDL, we automatically detect the emitted anchor events in a transaction and add it in the callback response.

### Automatic Data Parsing

{% hint style="success" %}
Upload your IDL on [<mark style="color:yellow;">Translator</mark>](https://translator.shyft.to) (Shyft's Solana Explorer) to instantly access parsed transactions and callbacks.
{% endhint %}

We have built a pipeline so you can access parsed data for your programs instantly.

By uploading your program's IDL on our Solana explorer ([<mark style="color:yellow;">Translator</mark>](https://translator.shyft.to)), you can access.

* <mark style="color:yellow;">Parsed Transaction history</mark>
* <mark style="color:yellow;">Parsed Transaction Callbacks</mark>
* <mark style="color:yellow;">Parsed Account Callbacks</mark>
* <mark style="color:yellow;">Parsed Anchor Events (coming soon)</mark>

{% embed url="<https://translator.shyft.to>" %}
Upload your IDL on Translator to instantly and permissionlesly access parsed data for your programs.
{% endembed %}

### Detecting Transaction types

Shyft Callbacks aren't your run-of-the-mill webhooks – they're supercharged! We offer developers the flexibility to choose from a variety of ready-to-go event types. It's like having a menu of exciting options to pick from, including NFT sales, listings, DeFi swaps, DAO votes, NFT mints, and even balance changes. There's a whole lot more, and you can find the full list [<mark style="color:yellow;">here</mark>](/solana-apis/transactions.md).

But there's more, we don't just identify the transaction type, we also provide a response structure which makes it easy for developers to access extra information. We also try to keep the response structures as coherent as possible across different programs.&#x20;

For eg, **NFT\_SALE** on Magic Eden or Tensor would be very similar, or **TAKE\_LOAN** event across different lending programs.

{% hint style="success" %}
Full list of supported action types and their response structures can be found [<mark style="color:yellow;">here</mark>](/solana-apis/transactions/parsed-transaction-structure.md)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.shyft.to/callbacks/what-are-callbacks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
