Features that lie at the core of the Parsiq platform power everything up. All of them are directly accessible for usage throughs the PARSIQ Portal. Most of them also have public API endpoints to build integrations upon and to advantage a more flexible approach in managing data and using underlying functionality.
In real life, there can be different use cases or 3rd party applications that might rely on a set of independent Smart-Triggers and User Data. Projects were made to simplify the separation of concerns. Each Project is isolated, provides its own public API endpoint and groups a set of related Smart-Triggers with according User Data to operate on.
User can either start building a Project from scratch or use one of the predefined Templates that already provide a solution for various use cases.
It is more comfortable to manage data separately from the Smart-Trigger programming and configuration. We call it as User Data and it is meant for defining monitoring artifacts (i.e. wallet or account address) with extra valuable information like labels, thresholds, scores and others. In combination, they influence the Smart-Trigger behavior during execution. User Data is accessed through immutable variables from ParsiQL code. There are three kinds of variables: primitive, struct and table.
The variable of primitive kind holds the value for one of 4 accessible primitive data types.
Struct is a group of ordered primitive variables, where variable name becomes a key. It allows to compactly store, manage and access related data using one variable.
Table is a collection of structs of the same type. Struct properties are named columns in the context of table.
Smart-Trigger receives input Events, processes each of them according to your logic and (if necessary) produces intermediate or output (resulting) events. After defining in User Data what is important to monitor and other tightly coupled information, the user is able to take all of it into the consideration and program the Smart-Trigger using the ParsiQL language.
Any blockchain network is capable of spanning a large number of various operations (i.e. a log event in case of Ethereum) inside each transaction. As a result of transparency, any such operation is completely observable and may contain valuable and sometimes even critical information for the user. It is important to filter those out and timely react to them.
There are many different operations that vary from chain to chain. Most of them are rather low-level and carry no significant value alone. Blockchain specific Parsiq adapters take such operations as input, manipulate them on a sub-transactional level and output specialized Native Events, or sometimes simply Events. Those events are categorized into three types. An ordered sequence of Native Events of the same type form together the Native Events Stream (NES).
Transfer Native Events are produced when ETH is moved. Once the block containing such transaction is mined, it becomes the
Transfer Native Event and ends up in the
TokenTransfers NES contains all the Native Events that are related to the token transfers. PARSIQ collects and maintains its own table of known tokens and can provide an out-of-box additional data, like name, symbol and decimals.
BitcoinTransfer Native Events are produced when BTC is moved. Once the block containing such transaction is mined or gets into the mempool, it becomes the
BitcoinTransfer Native Event and ends up in the
In order to solve actual problems and cover any possible bussiness use case, PARSIQ introduces the possibility of using various on-demand services and data delivered by 3rd party providers, that was already integrated to our Platform and can be used right away.
Your Smart-Triggers are deployed to our system and keep circulating the on-chain data. With this feature, it is possible to combine the on-chain data with off-chain one, like market data, risk scoring, forensics information etc...
Check External Data Providers for a comprehensive list of available data providers.
Action is any kind of activity that is performed after the Smart-Trigger has finished execution. For example, once the Smart-Trigger emits a resulting Event - it can be formatted into a readable message and sent to You in the Telegram, also causing an eye-catching push-notification.
User can maintain a list of Transports of different types (i.e. Webhooks, Websockets, Telegram, E-mail etc…). It is possible to create and configure a specific transport through Transport section.
Once the transport is set up, it can be used (and re-used) with any Smart-Trigger in any of your Projects. Each Smart-Trigger has a section called Delivery channels where Transports can be linked to it. When done, this link becomes a Delivery Channel and will be in response for delivering Smart-Trigger resulting events. Transport and Delivery Channel relation is simply called a Communication Channel.