# Vote

### What is a User Opinion Survey?[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/polling#what-is-polling) <a href="#what-is-polling" id="what-is-polling"></a>

API polling (often shortened to "polling") is a common method of retrieving data from a remote server or service. It involves periodically requesting the API or checking for updates or new information via the SDK. Polling is suitable for situations where real-time data updates are not important, and a slight delay between data changes and the client application reflecting them is acceptable. However, polling can be less efficient and consume more resources than other methods such as Webhooks.

Online Webhooks, on the other hand, provide a more efficient, real-time way of receiving updates from a server or service. Instead of repeatedly polling for updates, the server sends data to the client as soon as an event or change occurs, reducing the need for constant requests.

### What is the purpose of voting?[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/polling#what-can-polling-be-used-for) <a href="#what-can-polling-be-used-for" id="what-can-polling-be-used-for"></a>

In Web3 games, polling can be used in the following situations:

1. **Player-driven ad hoc requests**: Polling is typically used to provide the user with more information about a specific asset or activity. When a player expresses interest in a specific asset or activity, polling allows the application to obtain and display the latest relevant information to the player. This ensures that the user is provided with the most up-to-date details about the asset they are interested in, thus enhancing their overall experience and engagement with the application.
2. **Periodic Data Synchronization**: Polling is often used to keep a local database or cache synchronized with remote server data. This is important for applications that rely on up-to-date data but can tolerate some latency. If your application requires data synchronization, GMLayer strongly recommends using Webhooks to implement the following.
3. **Less data**: Polling becomes efficient and straightforward when the amount of data being checked for updates is relatively small. Frequent polling may not put too much strain on resources.
4. **Resource-limited environments**: In resource-limited environments, periodic polling may be more practical than handling incoming webhooks.
5. **Practice Simplicity**: Polling is relatively simple to implement in a client application. It does not require complex event handling or server setup like webhooks.
6. **Error handling**: Polling makes it easier to handle errors. If a request fails, the client can retry without losing the entire state.

### How to set up webhooks?[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/polling#how-to-setup-webhooks) <a href="#how-to-setup-webhooks" id="how-to-setup-webhooks"></a>

Follow our setup guide to set up webhooks for your Dapp!

### Identity[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/polling#features) <a href="#features" id="features"></a>

| Identity            | Use Cases                                                                                                                                                                                                                                       |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Get Activity Data   | A list of activities associated with a chain, collection, or individual NFT (non-homogenized pass) will be returned. Adjust activity You can use this function to get detailed information about a list of activities or individual activities. |
| Get Chain Data      | Returns a list of supported blockchains. This function can be used to get the details of supported chains without hard-coding them, and the program can also use it to automatically integrate new chains.                                      |
| Get Collection Data | Can be used to get information about a single collection to view its details, such as metadata, or a list of collections deployed on the blockchain.                                                                                            |
| Get NFT Data        | Can be used to get information about a single NFT (Non-Fungible Token) to view details such as its metadata, or a list of NFTs (Non-Fungible Token) that belong to a collection.                                                                |
| Get Token Data      | It pulls back a list of ERC20 tokens supported by the blockchain. It will also provide additional details for individual ERC20 smart contracts.                                                                                                 |
