Generating Fast and Easy PARSIQ triggers for CryptoPunks

We created three PARSIQ Platform Smart Triggers that respond to CryptoPunks directly related on-chain events and follow custom logic to deliver all necessary transaction information about the price action.

Offers for Sale of the limited CryptoPunks collection are particularly vital to traders and collectors. New listings might prove to be an opportunity to profit from the immediate purchase. Meanwhile for traders new sales provide indicators for the demand/supply within the collections as well as for the market, in general.

Cryptopunks is the NFT collection of 10000 uniquely generated characters. The collection has a highest market capitalisation and market volume as of Novemeber 4th 2021. 

Simple Walkthrough

  1. We created PARSIQ account with an Empty project instead of a template as it allows us to edit the trigger code.

2. Next, to monitor the NFT collection we added its contract ABI in the User stream on PARSIQ platform. Link to CryptoPunks Contract.

We selected the ABI straight from the page or export into RAW/TEXT format and uploaded to the Platform.

Based on data from Etherscan we chose three most frequent events.

3. Based on data from Etherscan we chose three most frequent events so that we could use them with ParsiQL to create a trigger. In our instance, we added the events: PunkOffered, PunkBidEntered and PunkBidWithdrawn.

4. Back in our Project we also included transports to get the necessary data. There are four options: Web, Discord, Telegram and Google Sheets. In this project we implemented Web, Telegram and Google Sheets transports.

5. As we implemented the necessary details we needed to combine them as a final product. In our Project we created triggers for each of the events with similar ParsiQL code, deployed them and added transports. Here are some details on the code and configuration:

Results

The results are as following:

We get immediate notifications through a telegram bot in the private channel.

Guide: ngrok in Windows, Visual Studio and IIS Express – Twilio.

By using ngrok, we receive the post requests from the triggers.

For two out of three trigger we also post the data back on the Platform to update the User Tables with NodeJs.

var express = require('express')
var request = require('request')

var app = express()
app.use(express.json())

app.post('/', function(req, res) {
    console.log(JSON.stringify(req.body));
    var options = {
        'method': 'POST',
        'url': 'https://api.parsiq.net/v1/data/{key-of-the-table}',
        'headers': {
          'Authorization': 'Bearer API-key-of-the-project',
          'Content-Type': 'application/json'
        },
        body: JSON.stringify([
          {
            "address": req.body.fromAddress,
            "Punk": req.body.punkIndex,
            "Event":req.body.event
          }
        ])};
    
    request(options);
    res.end();
})
const port = process.env.PORT || 3000

app.listen(port, () => console.log(`Application listening on port ${port}`))

We also configured three separate Google Sheet spreadsheets that serve as real time database for CryptoPunks collection.

  1. https://docs.google.com/spreadsheets/d/1eld-RtjigW1hW12OzWV9Cguc3Kcyd77OqGe3lLuyRT4/edit?usp=sharing
  2. https://docs.google.com/spreadsheets/d/1b5sGe996vq15jrrKPPajlFNpUDM81mpdmyAh0THn1Cw/edit?usp=sharing
  3. https://docs.google.com/spreadsheets/d/16aFiahFzQMvKdXnnHTVTDvcknioHmiZqRK8Asr5Kz7c/edit?usp=sharing

Additional resources

Github Repository for the project


You can contact me via