Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This section describes the structured files and modules that can be configured in TuumIO Protocol.
input.json
The input.json
file is a hierarchical structure of objects defined within a network. It contains information about the network, roles, journeys, cards, events, event handlers, and TuumIO ledgers.
The TuumIO Data Node (TDN) serves as the network's central database for storing and processing data files. It facilitates data exchange with external client systems, including electronic medical records, claims systems, member systems, and payment systems.
A TuumIO Card is an interactive module encapsulating multiple data types, user interface elements, and interoperable functions. The TuumIO Card definition structure includes card data, layout, card footer, and UI actions.
Events define the interactions and communication between roles or nodes in the network, such as sending and receiving information. Events are chained together in a time series on a blockchain, creating a secure, transparent, and immutable record of transactions within the network.
An event handler is a set of instructions that execute tasks based on specific events. These tasks include updating records, transforming data, and identifying recipients for the next event.
Python event handlers are designed to execute complex events and transactions that require data processing, analysis, import, and export. They can fetch external data in HL7, X12 EDI, XML, JSON, or CSV formats.
Resources contain predefined data that is inserted or updated automatically during initialization.
Transactional data consists of configurable data that can be referenced from roles, cards, or events within the network.
TuumIO Protocol defines the rules governing information communication and data exchange. It employs an event-driven architecture and utilizes JSON files to represent configurations for roles, relationships, journeys, events, and interactions. By using standard data structures, it reduces complexity and enables interoperability between systems.
In this guide, you'll learn how to manually author TuumIO Protocol using provided examples.
Before you begin, ensure you have the following:
An Integrated Development Environment (IDE) or a text editor to manually author files.
The required Python packages to configure and run Python event handlers.
Postman API platform and the network environment details for publishing.
BrowserStack, a cloud web and mobile testing platform, for testing the application.
This section provides definitions for the key terms used throughout this documentation.
TuumIO Card (Card)
An interactive module encapsulating multiple data types, user interface elements, and interoperable functions. "TuumIO Card" and "Card" are used interchangeably in this document.
TuumIO Data Node (TDN)
A specialized node that acts as a database, facilitating secure data storage, retrieval, and exchange with external systems.
TuumIO Ledger
A decentralized record of events or transactions within a network, as defined by the protocol.
TuumIO Network (Network)
A digital network of various healthcare roles, operating based on rules defined in a TuumIO Protocol. "TuumIO Network" and "Network" are used interchangeably in this document.
TuumIO Node (Node)
A secure digital entity that enables secure data exchange and event handling. "TuumIO Node" and "Node" are used interchangeably in this document.
TuumIO Protocol (Protocol)
A governance framework that defines the rules for data exchange and communication in networks. "TuumIO Protocol" and "Protocol" are used interchangeably in this document.
TuumIO Wallet (Wallet)
A mobile app that serves as a gateway to various industry services and dApps. It provides a secure way to store and manage digital assets and records. "TuumIO Wallet" and "Wallet" are used interchangeably in this document.
TuumIO Vault (Vault)
A decentralized storage, facilitating secure data management and storage.
Chain
An enterprise-level solution that offers various industry services.
dApps
A decentralized application in Web3 that offers various functionalities, including interactions, data exchanges, and workflows for specific user roles.
Data definition file (DDF)
A JSON file specifying the structure of data stored within the TuumIO Data Node, defining data elements, data types, and validation rules.
Event
A message or record signifying an occurrence within a network or journey. Events define interactions and communications between roles and nodes.
Event Handler
A set of instructions that execute tasks based on specific events. These tasks include updating records, transforming data, and identifying recipients for the next event.
Journeys
A sequence of interconnected TuumIO Cards, defining functionalities, including interactions, data exchanges, and workflows for specific user roles.
Role
A fundamental element in the protocol that defines a specific participant type, such as patient, physician, admins, etc. Each role is associated with corresponding consents and cards within the protocol.
SOLVE
A cryptocurrency utility token used throughout the platform to facilitate payments and transactions.
Tile
A modular component in a card user interface that displays data or provides functionality.
TuumIO.Protocol is a secure and decentralized platform that empowers individuals to take control of their data using blockchain technology. It is designed to reduce reliance on centralized IT systems and provides a foundation for Web3 development.
Chains: Enterprise-level solutions that offer a wide range of products and services categorized by various industries, such as healthcare, finance, gaming, and more.
dApp: A decentralized application in Web3 that offers various functionalities, including interactions, data exchanges, and workflows for specific user roles.
TuumIO Wallet: A mobile application that allows users to store and manage digital assets, and serves as a gateway to chains and dApps.
Facilitates treatment adjustments and supports patients in managing their conditions remotely, without direct intervention from care providers.
Manages the submission and processing of insurance claims. Patients can submit claims for reimbursement plans, such as vision or dental insurance, ensuring faster and more transparent processing.
Addresses burnout and high turnover among employees by implementing a rewards system. This can include gift cards, paid time offs, discount vouchers, wellness programs, and more.
This section describes the overall network specifications, including author details, countries, join network settings, and solve token settings.
network_id
string
The unique ID associated with the network.
node_url
string
The URL of the network node where it is deployed.
name
string
The unique name of the network.
version
number
The version number of the network protocol.
description
string
The short description of the network.
publish_date
string
The date when the network protocol is published.
effective_date
string
The date when the protocol is effective or operational within the network.
author_name
string
The name of the network protocol's author (entity or person).
author_website
string
The website URL of the author.
author_address1
string
The address of the author (line1).
author_address2
string
The address of the author (line2).
geo_fence_countries
string
The list of countries that can join the network.
role
string
The ID of the role joining the network.
join_method
string
The method of joining the network.
required_consents
array
The cards which you allow other users in the network to access.
terms_and_conditions_checksum
string
The terms and conditions for joining the network.
deposit_value
string
The deposit value of SOLVE tokens.
redemption_value
string
The redemption value of SOLVE tokens.
solve_gas_setting
JSON
The SOLVE gas usage setting.
event_wise_cost
array
The event and the cost in SOLVE token.
event
string
The event used for transactions in the network.
cost
integer
The cost in SOLVE gas for each event transaction.
The Application Layer handles configuration, administration, and communication within networks, allowing users to interact with decentralized applications (dApps).
TuumIO Wallet: A mobile app that allows users to store and manage digital assets and serves as a gateway to various industry services and dApps.
Journeys: A sequence of interconnected cards outlining specific workflows for roles such as participants, administrators, managers and employees.
TuumIO Card: An interactive module that combines text, images, buttons, and interoperable functions on the app's user interface.
TuumIO Network: A digital network of various healthcare roles, operating based on the rules defined in the TuumIO Protocol.
TuumIO Protocol: A governance framework that defines the rules for data exchange and communication, facilitating secure transactions and interactions within the network.
The Data Layer provides secure, transparent, decentralized data storage and records management.
MainNet: Holds the core registry service that maps TuumIO Wallet users to their respective TuumIO Networks, such as the country matrix for region-based services.
Event Ledger: A decentralized, immutable record of event logs from sender and recipient node addresses, including payload data.
TuumIO Data Node (CDN): A specialized node created for each network. It manages data storage, processing, and exchanges with external systems.
The Compute Layer manages core operations and node management, ensuring secure data and event transmission across the network.
TuumIO Node: An entity that manages data storage and event handling across the network. It is a secure, versatile object deployable in any environment.
Network Onboarding Manager (NOM): Facilitates the initial creation and assignments of TuumIO Nodes upon joining the network.
Node Lifecycle Manager (NLM): Manages the creation and lifecycle states of TuumIO Nodes, including active, start, stop, and hibernate states.
Base Node Services (BNS): Ensures secure transmission of events and data through the blockchain.
Discover everything you need to know about the platform with our comprehensive documentation.
A TuumIO ledger is used to store and manage data related to events or transactions within the network. If necessary, include details about tuumIO_ledgers
and tuumIO_ledger_tags
in your protocol.
Use tags to categorize data within TuumIO ledgers, such as Appointments, Prescriptions, Results, and others.
Declare the attributes and values for the TuumIO ledgers.
This section outlines the steps involved in authoring the protocol for building decentralized applications (dApps).
Note: Ensure that all fields and values adhere strictly to the protocol structure and specifications.
input.json
fileOpen the input.json
file in a text editor.
Save and validate the input.json
file.
The TuumIO Data Node (TDN) is responsible for storing and exchanging data files within the TuumIO Network. It can convert external data files into events, and events into external data files. When receiving data files, the TuumIO Data Node extracts and transforms the data, and then creates events. Event handlers can be created in TuumIO Protocol to manage the events generated by the TuumIO Data Node.
The following example shows data definition in ddf/us-doctors-sample.json
.
Node Vault: A secure and decentralized storage of data for TuumIO Nodes, with backups stored in .
View or modify the .
In the network settings, fill in the and specify the .
Configure the and set up .
Define the and .
Declare the included , , and .
If necessary, include details about .
Create a based on how you want to organize data.
Define the structure of the .
Define the , including and .
Configure the and .
Configure .
Understand the predefined functions in the .
Perform the steps to configure an event based on the .
The data definition file (DDF) defines the model and structure for organizing data in the TDN. This file is used in TDN to process incoming data files and generate events for distribution to TuumIO Nodes. The DDF and raw CSV files are uploaded to the environment repository for processing. For more information, see .
id
string
The unique ID of the TuumIO ledger tag.
name
string
The name of the TuumIO ledger tag.
id
string
The unique ID of the tuumIO ledger.
name
string
The name of the tuumIO ledger.
description
string
The description of the tuumIO ledger.
event_id
string
The reference ID of the event to be recorded in the tuumIO ledger.
private_cards
array
The cards with consent to view.
public_cards
array
The cards associated to the event record, which can be shared across the network.
tuumIO_ledger_tags
array
The reference IDs of the tuumIO ledger tags.
This section describes the structure of card definitions, including card data, card layout, card footer, and card UI actions.
A card contains multiple data types, user interface elements, and interactive functions triggered by events.
id
string
The unique ID of the card.
name
string
The name of the card.
description
string
The description of the card.
status
string
The status of the card is set to Active.
card_definition_ref
string
The reference to the UI component of the card.
side
string
The side on which data is presented.
role
string
The role ID is referenced in the card.
transaction_data_ref
string
The reference to the transaction data used upon initialization.
journey
string
The journey to which the card belongs.
outgoing_events
array
The events or actions triggered by the card.
pre_rendering_events
array
The events or actions used to initialize the card.
Card data - The information or data displayed within the card, such as texts, images, and links.
Card layout - The arrangement and organization of elements within the card, including body content style, and footer menus.
Card footer - The additional options, navigation buttons, or menus at the bottom of the card for user interaction and navigation.
Card UI actions - The actions triggered by user interactions within the card, such as navigation, form submissions, or data updates.
Card data can include text, images, links or different types of information relevant to a healthcare journey.
The card footer includes buttons or actions used to interact with the card itself or navigate to other related cards. These buttons or actions can perform specific tasks like submitting information, saving changes, or going back to previous screens.
The card UI actions define user interactions within the card's content. These actions trigger functionalities like navigation, data updates, input validation, or external function calls.
This section describes the definition structure of user roles and journeys in a network.
A role is a fundamental element of TuumIO Protocol that represents a specific participant type, such as patients or doctors. Each role is defined with the corresponding cards and events.
id
string
The unique ID of the role.
name
string
The name of the role.
description
string
The description of the role.
type
string
The role type is defined in the platform.
status
string
The status of the role is set to Active.
version
number
The role's version number is updated when the role metadata value changes.
td_collections
array
The transactional data records are linked to the role.
allow_events_with_role
array
The events allowed for the role.
home_card_ref_id
string
The reference ID to the home card for the role.
A journey is a sequence of interconnected cards, defining a specific workflow for a role or network.
id
string
The unique ID of the journey.
icon
string
The path to the icon image file.
name
string
The name of the journey.
description
string
The description of the journey.
status
string
The status of the journey is set to Active.
start_card_ref_id
string
The reference ID of the journey starting card.
roles
string
The roles involved in the journey.
journey_data
array
journey_type
string
The journey type is defined in the platform.
The following example shows the "Get Started" and the "Join as Doctor" journeys.
Here is another example of a "Book Appointment" journey that defines the events, roles, and permissions for synchronizing data across multiple nodes.
name
string
The unique name of the journey data model.
start_event_ids
array
The IDs of start events that trigger data sharing and synchronization. Note: Only the user role with OWNER access can submit the start (init) event.
stop_event_ids
array
The IDs of stop events with shared data in the payload, completing the synchronization to all nodes.
affected_collections
array
The data collections where payload data is saved.
expire_in
string
The number of days (d), weeks (w), or years (y) from initialization until synchronization is stopped.
permissions
array
The list of roles and corresponding access permissions.
role
string
The reference ID of each role defined in the journey.
access
string
The access level permission set for each role.
This section describes the different types of node event handlers, their definitions, parameters, and examples.
VAULT_INSERT
— This event handler is used to insert a record into a specific collection in the vault.
VAULT_UPDATE
— This event handler is used to update a record in a specific collection in the vault based on the dynamic search criteria.
MAPPER
— This event handler is used for data transformation, such as excluding, appending, or generating data in the execution chain.
NEXT_EVENT_RECIPIENT
— This event handler is used to identify the recipient for the next event.
EXPRESSION_LANGUAGE
— This event handler allows writing data manipulation expressions to easily access, filter, and calculate values.
CUSTOM
— This event handler is used to specify a specific Java class that implements a legacy JAR (Java Archive) handler.
GenericHandlerDataSource
)EMPTY
— An empty source or collection.
EVENT_PAYLOAD
— The payload source of events processed in the handlers chain.
HANDLER_ARGUMENTS
— The response value from the previous handler in the chain.
PERSISTED_ENTITY
— For vault-related handlers, it is the state of inserted or updated documents in a collection.
DynamicHandlerValue
)It uses "source" and "value" fields to link data. The actual value can be determined dynamically based on the information in the "source" field. Here are the possible values:
CONSTANT
Any value
The constant propagates the value field as a result.
GENERATED
UUID
, CURRENT_TIMESTAMP
It generates a UUID or timestamp.
EVENT
SENDER
, RECIPIENT
, CODE
, TIMESTAMP
, CORRELATION_ID
It gets the value of the original event sender, recipient, code, timestamp, or correlation ID.
EVENT_PAYLOAD
Attribute name
It gets the value of the attribute in the event payload.
HANDLER_ARGUMENTS
Attribute name
It gets the value of the attribute in the handler arguments.
type
VAULT_INSERT
The handler type.
order
Integer
The order of the handler in the execution chain.
name
String
The name of the handler which is used for logging.
collection
String
The name of the vault collection.
collectionVersion
Integer
The version of the vault collection.
dataSource
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
The data source of the record which will be inserted into the collection.
handlerOutput
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS, PERSISTED_ENTITY
The handler output that will be passed as an argument to the next handler.
type
VAULT_UPDATE
The handler type.
order
Integer
The order of the handler in the execution chain.
name
String
The name of the handler which is used for logging.
collection
String
The name of the vault collection.
collectionVersion
Integer
The version of the vault collection.
dataSource
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
The data source from which the record changes (diffs) will be retrieved.
handlerOutput
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
, PERSISTED_ENTITY
The handler output that will be passed as an argument to the next handler.
insertIfAbsent
Boolean
It defines a flag that inserts the document if it does not exist in the collection based on the search criteria. The value is set to false by default.
searchCriteria
Array of SearchQueryFilter
The search criteria to find the document to be updated.
type
MAPPER
The handler type.
order
Integer
The order of the handler in the execution chain.
name
String
The name of the handler which is used for logging.
dataSource
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
The data source for the unmapped data.
handlerOutput
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
, PERSISTED_ENTITY
The handler output that will be passed as an argument to the next handler.
excludedAttributes
Array of strings
A set of attributes to be excluded from the input data.
additionalAttributes
Map of DynamicHandlerValue
A map of attributes with dynamic values calculated at runtime.
type
NEXT_EVENT_RECIPIENT
The handler type.
order
Integer
The order of the handler in the execution chain.
name
String
The name of the handler which is used for logging.
handlerOutput
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
The handler output that will be passed as an argument to the next handler.
recipientAddress
DynamicHandlerValue
The dynamic value represents the recipient of the next event.
Here are the operators supported in the language:
Arithmetic
+, -, *, /, %, ^, div, mod
Relational
<, >, ==, !=, <=, >=, lt, gt, eq, ne, le, ge
Logical
and, or, not, &&, ||, !
Conditional
?:
Regex
matches
Here are the parameters in the event handler definition:
type
EXPRESSION_LANGUAGE
The handler type.
order
Integer
The order of the handler in the execution chain.
name
String
The name of the handler which is used for logging.
dataSource
EMPTY
, EVENT_PAYLOAD
, HANDLER_ARGUMENTS
The data source of the record which will be inserted into the collection.
computedAttributes
Map of expressions, where the key is a variable name, and the value is the expression itself.
The handler executes the expression and puts the value inside the specified variable.
In Example 1, let's assume that the HANDLER_ARGUMENTS
has variables a
and b
. If the variables represent numeric values, such as a=1
and b=2
, then the result will be 1+2=3
. If the variables represent string values, such as a='1'
and b='2
', then the result will be '1'+'2'='12'
.
In Example 2, let's assume that the HANDLER_ARGUMENTS
has a variable user
, which represent a list with the following value:
The expression arguments[users].?[country=='USA'].size()
will filter the items which has the country value set to "USA"
. Then it calculates the size, which returns the count. In this case, the result will be 1
.
In Example 3, let's assume that the HANDLER_ARGUMENTS
has a variable user
, which represent a list with the following value:
The expression arguments[users].?[country=='USA'].size() > 0 ? 'USA_PRESENT' : 'USA_NOT_PRESENT'
will filter the items which has the country value set to "USA"
. Then it calculates the size, which returns the count. In this case, the count is 1
. If the count is greater than 0, then the result will be 'USA_PRESENT'
.
type
CUSTOM
The handler type.
order
Integer
The order of the handler in the execution chain.
jarUrl
String
The URL where the JAR file with the handler implementation is stored.
className
String
The full Java class name that implements the corresponding interface.
This section describes the structure of event and event handler definitions, and some examples for the different types of events and event handlers.
An event represents the actions that occur based on user interactions within a network. It defines the data used to communicate between roles or nodes in the network, such as sending and receiving information.
WALLET_LOCAL
— A local event within TuumIO Wallet, such as sending data from one card to another.
WALLET_FROM_NODE
— An event that gets data from a specific node, such as retrieving a list of records in TuumIO Wallet.
WALLET_TO_NODE
— An event that sends data from TuumIO Wallet to a specific node, such as submitting records.
NODE_TO_NODE
— An event that sends data from one node to another node, such as a patient booking an appointment with a doctor.
NODE_TO_ROLE
— An event that sends data to all nodes with a designated role in a network, such as a patient searching for the nearest pediatrician among all doctors in the network.
The following example represents an event that lets users navigate from one card to another, as defined in the input.json
file.
The following example defines an event containing user details: event/ev-patient-nav-to-cd-next.json
.
The event handler defines the instructions that execute tasks based on specific events, such as navigation and data manipulation.
WALLET_EVENT_HANDLER
— This event handler is defined in JSON and can be used to navigate between cards, submit data, or retrieve data.
The following example is the wallet event handler for navigating to the next card, as defined in the input.json
file.
The following example is an event handler definition in a JSON file that sends the details to the next card in the sequence: event-handler/eh-w-ev-patient-nav-to-cd-next1.json
.
In this example, a patient submits answers from the health questions card and the data is saved in a collection.
Define the events in the input.json
file. Here, we have two events:
Create the event definition for the submit event that contains the data used in the patient health questions: event/ev-w-broad-health-questions.json
.
Define the event handlers for the submit event in the input.json
file. Here, the submit event has two event handlers: eh-ev-w-broad-health-questions.json
and eh-n-ev-w-broad-health-questions.json
.
Create the wallet event handler definition for submitting the event data: event-handler/eh-ev-w-broad-health-questions.json
.
Create the node event handler definition for saving the event payload: eh-n-ev-w-broad-health-questions.json
.
Create the event definition for the next event: ev-w-broad-health-questions-na.json
.
Define the event handler for the next event in the input.json
file. The next event has one event handler: eh-n-ev-w-broad-health-questions-na.json
.
Create the node event handler definition that saves the event data to the collection: event-handler/eh-ev-n-broad-health-questions-na.json
. Here, the data is saved to the PATIENT_ANSWERS
collection based on the defined search criteria.
In this example, the wallet retrieves the history of records from a data collection and displays it on the card.
Define the event in the input.json
file.
Create the event definition with the source of data: event/ev-get-records-history.json
. To retrieve data, this event uses the unique ID of the transactionalGuid
generated from a submit event.
Define the event handler in the input.json
file.
Create the wallet event handler definition that gets the records history data from the collection: event-handler/eh-ev-get-records-history.json
. This event handler uses the GET method to retrieve record data based on the filter query.
This section describes the supported configurations and examples of tiles used in card definitions.
Use tiles to display card data in a specific layout or to provide functionality to texts, buttons, and images.
This tile represents a text label in a single row.
This tile represents two texts labels in a single row.
This tile represents a text input for a specific key.
This tile represents two rows: the first containing a text label and the second containing a text input for a specific key.
This tile represents a text input for a specific key with tooltip.
This tile represents a date selector for a specific key.
This tile represents a stepper to adjust the value for a specific key.
This tile represents option selectors as radio buttons in horizontal format.
This tile represents option selectors as radio buttons in vertical format.
This tile represents a multi-option selector as checkboxes in horizontal format.
This tile represents a multi-option selector as checkboxes in vertical format.
This tile represents a scrollable table grid.
This tile represents an option selector.
This tile represents a toggle switching button, such as "on" or "off".
This tile represents two rows with a title and a subtitle text.
This tile represents a dropdown selector for a list of options.
This tile represents a clickable tile that triggers an action.
This tile represents an image that can be loaded locally or from a URL.
This tile represents clickable images to select an option or trigger an action.
This tile represents clickable images in a single row. Clicking the image navigates the user to a target location.
This tile is an input field that is used to implement checks, such as "field format" and "field value".
Sign in to your account.
From the homepage, navigate to App Live.
Upload the app.
Select the operating system and device model.
Wait for the app to load on the device, then start testing. Note: To view event payload and analyze data flow, select the Network tab > Enable for all traffic, and then save the configuration.
This section provides examples on how to configure Python event handlers.
The Python event handler contains a set of base classes that provide an interface to the platform's core components, such as Vault, Wallet, Node, and TuumIO Data Node (TDN). The following template includes base classes and functions that provide features to retrieve, search, update, and save data.
Define the event in the input.json
file.
Create the event definition: event/ev-cdn-broadcast.json
.
Define the event handler in the input.json
file.
Create a Python event handler definition that saves the data.
This section shows the structure and attributes of transactional data.
Transactional data contains configurable data that can be referenced from roles, cards, or events within the network. The following example shows the definition of transactional data in td/td-default.json
.
What is TuumIO Protocol?
Get an overview of the core components of the protocol.
Protocol Guide
Learn how to build and author decentralized applications (dApps).
Tutorials
The card body displays the card's content, which includes tiles, texts, images, and interactive functions. For information on supported tiles, see . For details on supported functions, see .
The data model for synchronizing across multiple roles or nodes, triggered by events. See .
(see )
(see )
The expression language used for this handler type is based on Spring Expression Language (SpEL). For more information, see the documentation for .
NODE_EVENT_HANDLER
— This event handler is defined in either JSON or Python and can be used to search, retrieve, update, or save data. To learn more about the different types of node event handlers, see and .
This tile is the same as with an extra option for a subtitle label, such as displaying the count in numbers.
This tile is the same as , with no title.
This tile is the same as with a scrollable subtitle text.
This tile is the same as with a subtitle.
Open a web browser, and then go to .
For more information on testing mobile apps in App Live, see the .
id
string
The unique ID of the event.
name
string
The name of the event.
description
string
The description of the event.
code
string
The same as the event name.
status
string
The status of the event is set to Active.
type
string
The type of event. The possible values are WALLET_LOCAL, WALLET_FROM_NODE, WALLET_TO_NODE, NODE_TO_NODE and NODE_TO_ROLE.
event_definition_ref
string
The reference path and ID of the event definition.
submit_event_handler
string
The ID of the event handler used for submitting the event.
node_event_handlers
array
The list of outgoing event handlers for node events.
card
string
The reference ID of the card associated to the event.
id
string
The unique ID of the event handler.
name
string
The name of the event handler.
description
string
The description of the event handler.
status
string
The status of the event handler is set to Active.
event
string
The event which the event handler executes.
type
string
The type of event handler. The possible values are: WALLET_EVENT_HANDLER and NODE_EVENT_HANDLER
event_handler_definition_ref
string
The reference path and ID of the event handler definition.
TuumIO Wallet Your all-in-one companion for managing health, finance, and beyond. TuumIO Wallet connects you to a wide range of app networks, including the powerful Care.Trials, giving you complete control over the healthcare services you choose to use.
Powered by blockchain technology, TuumIO Wallet ensures your data remains secure and private. With no ads and total privacy protection, your information is never accessed, aggregated, brokered, or sold without your consent. Only you can see what's in your TuumIO Wallet—not even TuumIO has access.
Care.Trials Join groundbreaking clinical trials with TuumIO Wallet. Care.Trials connects you to the latest medical research studies, seeking participants for conditions like cancer, diabetes, mental health, and more. Find local wellness and prevention studies, and take part in the journey toward better medicine.
Buy SOLVE Easily purchase SOLVE tokens directly in your TuumIO Wallet using traditional payment methods. Choose the amount you want in SOLVE or USD.
Track Your SOLVE Keep an eye on your SOLVE activity with the SOLVE Transaction Statement, tracking all your interactions within the app network.
Welcome to the Library Explorer example, an app designed for exploring educational materials in a digital library. The underlying structure can be adapted for Web3 integration, allowing you to extend the app's functionality such as minting non-fungible tokens (NFTs) for digital content like e-books.
Here's how the app works:
Launch the app.
Fill in the details of the material that match your interest (title, author, subject).
Browse the catalog of recommended materials.
style: Regular or Bold
align: START (left), CENTER, END (right) or JUSTIFY
border color: hex value
text color: hex value
style: Regular or Bold
align: START (left), END (right) or JUSTIFY
border color: hex value
text color: hex value
align: START (left), END (right) or JUSTIFY
keyboard: text or number
min and max: character length
hint: placeholder for text input
key: {*sugarLevel}
- The text input is set to key sugarlevel
that will be used and sent through an event.
border color: hex value
text color: hex value
Title text is displayed on the first row
Subtitle text is displayed on the second row as an input field
text color: hex value
border color: hex value
align: START, CENTER, END and JUSTIFY
hint: placeholder for text input
keyboard: text or number
min and max length
validation: optional or required, and error message
align: START (fixed left)
keyboard: text or number
min and max: character length
hint: placeholder for text input
key: {*age}
- The text input is set to age
that will be used and sent through an event.
tip: text shows when a user clicks the question mark icon
border color: hex value
text color: hex value
icon image: height and width
title label (left)
min and max: date values
align: START (fixed left)
hint: placeholder for date input
key: {*dateSelected}
- The date input is set to key dateSelected
that will be used and sent through an event.
border color: hex value
text color: hex value
icon image: height and width
title label (left)
start: the start number of the stepper
end: the end number of the stepper
align: START (fixed left), JUSTIFY
key: {status}
- The selected value is set to key status
that will be used and sent through an event.
border color: hex value
text color: hex value
title label (left)
align: START, JUSTIFY
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
list: dynamic options list
border color: hex value
text color: hex value
title label (left)
align: START, JUSTIFY
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
list: dynamic options list
border color: hex value
text color: hex value
title label (left)
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
list: dynamic options list
border color: hex value
text color: hex value
title label (left)
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
border color: hex value
text color: hex value
For subtitle color handling:
border color: hex value
text color: hex value
In the example, the subtitle is shown as a number next to the title label.
title label (left)
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
list: label and data
label: the header title
data: the list of data for each header
title label (left)
options: key and list
key: {answer
} - The selected option is set to key answer
that will be used and sent through an event.
list: dynamic options list
border color: hex value
text color: hex value
title label (left)
options: key and list
key: {answer}
- The selected option is set to key answer
that will be used and sent through an event.
list: dynamic options to toggle on and off
border color: hex value
text color: hex value
title label (left) on first row
subtitle label (left) on second row
border color: hex value
text color: hex value
For subtitle view:
heightMultiplier: "1" - This value is calculated according the screen ratio.
text includes JUSTIFY option
border color: hex value
text color: hex value
title label (left)
subtitle: key, hint, and data
key: {*patient} - The selected option is set to key patient that will be used and sent through an event.
hint: placeholder for the selected option
data: an array of options loaded from cardData, for example: ["option 1", "option 2", "option 3"]
text includes JUSTIFY option
border color: hex value
text color: hex value
icon image: height and width
title label
uiAction: "${action1}" - This value is correlated with an event handler.
text includes JUSTIFY option
border color: hex value
text color: hex value
icon image: height and width
style: bold
text includes JUSTIFY option
border color: hex value
text color: hex value
icon image: height and width
image: text, isURL, height and width
text: the source of the image (link or image name) loaded from the cardData
isURL: true or false
size: height and width
options: key and list
key: {answer5}
- The selected option from the list is set to key answer5
that will be used and sent through an event.
image: text and isURL
isURL: true or false
subtitle text: reference to the title that displays below the image
align: START, CENTER, or END
text color: hex value
border color: hex value
uiAction: for example, "action17a2"
title text
subtitle text
text color: hex value
font size: number value
border color: hex value
align: START, CENTER, END or JUSTIFY
hint: placeholder for text input
min and max length
fieldFormat: Any supported field format, such as "email".
validation: optional or required, and error message
This section provides information about the functions that are supported within card definitions.
Use the functions to link cards to event handlers, execute operations to fetch data, validate data input, navigate between cards, and manage other interactions.
Fetches the available SOLVE token balance after joining a network.
name
string
The name of the function: Function.SOLVE.getTokenBalance
sourceKeys
array
Not required
totalKey
string
Not required
resultKey
string
The key name in which you want to store the final outcome of the function.
Fetches the exchange value of SOLVE from USD.
name
string
The name of the function: Function.SOLVE.getExchangeRate
sourceKeys
array
The key name, which has a value in USD and is passed as an input to the function.
resultKey
string
The key name in which you want to store the final outcome of the function.
Shows user profile data inside the network.
text
string
The name of the function: Function.Profile.key
The following keys can be used as input:
name (nickname)
cw_id
phone
country (get user's country code, such as "US")
first_name
last_name
ssn
language
Executes a GET request to the user node.
name
string
The name of the function: Function.PROTOCOL.preLoadData
url
string
The URL path where the data is stored.
Fetches user's current location latitude and longitude.
name
string
The name of the function: Function.getGPSLocation
sourceKeys
array
The key names that correspond to the user's location coordinates (latitude and longitude).
Shows user preference data such as language preference.
text
string
The name of the function: Function.Preference.language
This function is used only inside Tiles.
Shows the total count of fetched data.
text
string
The name of the function: Function.data.totalCount
Calculates the total sum of all input value.
name
string
The name of the function: Function.calculateSum
sourceKeys
array
The names of the keys on which you want to calculate the sum.
resultKey
string
The key name in which you want to store the final outcome of the function.
NAVIGATE
string
The value of the card ID where you want to navigate after getting the result from the function. If you want to show results on the same card, then use the same card ID.
Calculates the subtraction of the input value.
name
string
The name of the function: Function.calculateSubtract
sourceKey
string
The key name that you want to subtract from the totalKey.
totalKey
string
The key name from which the source key value gets subtracted.
resultKey
string
The key name in which you want to store the final outcome of the function.
NAVIGATE
string
The value of the card ID where you want to navigate after getting the result from the function. If you want to show results on the same card, then use the same card ID.
Calculates the multiplication of all input values.
name
string
The name of the function: Function.calculateMultiply
sourceKeys
array
The key names on which you want to calculate multiplication.
resultKey
string
The key name in which you want to store the final outcome of the function.
NAVIGATE
string
The value of the card ID where you want to navigate after getting the result from the function. If you want to show results on the same card, then use the same card ID.
Calculates the division of the input value.
name
string
The name of the function: Function.calculateDivision
sourceKey
string
The key name that you want to get divided from the totalKey.
totalKey
string
The key name from which the source key value gets divided.
resultKey
string
The key name in which you want to store the final outcome of the function.
Calculates the percentage of the input value.
name
string
The name of the function: Function.calculatePercentage
sourceKey
string
The key name that has the percentage value, like 10% should be used as 10, 20% should be used as 20.
totalKey
string
The key name on which sourceKey will be applied. For example, if sourceKey has a key name with a value of 10 and totalKey has a key name with a total value of 200, the outcome will be 10 * 200 / 100 = 20.
resultKey
string
The key name on which the final outcome of the function is stored.
NAVIGATE
string
The value of the card ID where you want to navigate after getting the result from the function. If you want to show results on the same card, then use the same card ID.
Validates if the referral code entered is a valid TuumIO Wallet ID.
name
string
The name of the function: Function.validateReferralCode
resultKey
string
The input key for referral code. For example: {$ReferralCode}
fieldFormat
string
The name of the field value to be validated. The supported fieldFormat values are:
age
pin
year
date
phone
country
ssn
otp
text
number
trialId
min
string
The minimum length of the field value.
max
string
The maximum length of the field value.
validation
string
The validation whether field is required and the error message.
name
string
The validation whether field is required.
error
string
The error message that shows when the value entered in invalid.
Shows a default empty card when no data is fetched, otherwise it moves to a specific card based on the whenConditionKey
value within the data. This function allows displaying different cards based on various conditions.
name
string
The name of the function: Function.When.Condition.preLoad
method
string
The method used to fetch data: GET
url
string
The path of the transaction data collection.
cardId
string
The reference ID of the current card.
whenConditionKey
string
The key name which represents the condition values, such as recordStatus
.
whenConditions
array
The list of condition values and card IDs.
conditionValue
string
The value of the condition.
conditionCardId
string
The card ID reference of the destination card.
Moves to the destination card without calling events or event handlers. This function also supports calculating and comparing values.
name
string
The name of the function: Function.Navigate
cardId
string
The card ID reference of the destination card.
Pushes to a new view after comparing the compareKey values.
name
string
The name of the function: Function.ChangeCard
compareKey
string
The dynamic value based on results from another function.
compareValue
integer
The fixed value to which the compareKey value is compared to.
cardIdForGreaterValue
string
The card ID that is viewed when the compareKey value is greater than the fixed value set in compareValue.
cardIdForLessValue
string
The card ID that is viewed when the compareKey value is less than the fixed value set in compareValue.
cardId
string
The card ID of the current view.
Navigates from any card to the "SOLVE" tab view.
uiAction
string
The name of the function: Function.deposit.SOLVE
fieldFormat
string
The value that allows selecting multiple items in a dropdown list.
isLink or isURL
string
To enable the link features in a tile, the value is set to "true"
.
urls
array
The list of labels and URLs. If isLink or isURL is set to "true", then this property is required.
label
string
The title or subtitle text that will be clickable from the tile.
url
string
The URL that opens when the label text is clicked.
Executes other functions to pass user input to the next card.
name
string
The name of the function: Function.CallEventHandler
method
string
The user input data to pass to the next card.
Copies the subtitle or title text from specific tiles.
uiAction
string
The name of the function: Function.COPY.TEXT
Captures a selfie or selects from the gallery.
name
string
The name of the function: Function.camera_selfie
resultKey
string
The key name which will save the image in base64 format and will be added to the payload to be sent to the node.
Uploads multiple files in AttachmentUploadTile
.
name
string
The name of the function: Function.uploadFiles
sourceKeys
array
The input key of the AttachmentUploadTile. For example, for input key {$attachingFiles}
, the value for sourceKey is "attachingFiles".
resultKey
string
The final submit key for storing data.
timestampKey
string
The time in milliseconds when the file is successfully uploaded.
Caira is an AI Patient AIdvocate here to provide you with a "wow" experience on Care.Trials. Caira is focused on helping you understand clinical trials and the benefits they offer. Whether it's discovering new opportunities for improving your health or meeting people from different walks of life, Caira is here to assist you with all the information you need about becoming a part of Care.Trials. If you have any questions, feel free to ask!
Sign in to the TuumIO Wallet app.
Share your query to Caira.
Initiate a request with the appropriate details for your environment.
POST
Pre-request script:
POST
GET
Post-request script:
POST
POST
GET
Upload the CSV file with the same attributes as the uploaded DDF in the input folder of the Amazon S3 bucket. If necessary, delete existing data.
The data definition file contains the model and structure for organizing data in TDN.
POST
POST
POST
POST
Open the TuumIO Wallet app from your mobile device.
Choose 'Continue with Facebook' to sign up using your Facebook account.
Allow the app to use biometrics for added security when accessing your account.
Use fingerprint scan or facial recognition.
Wait a few seconds for your account to be created.
Open the TuumIO Wallet app from your mobile device.
Tap Create a new TuumIO Wallet.
Allow the app to access your device's location.
Authorise the app to create account using your Apple ID.
Set up a 6-digit Wallet PIN, and then proceed.
Wait a few seconds for your account to be created.
Open the TuumIO Wallet app from your mobile device.
If biometrics is enabled, use fingerprint scan or facial recognition.
Wait a few seconds for the home screen to load.
Open your TuumIO Wallet app.
Sign in to your TuumIO Wallet app.
Enter your Wallet PIN, then tap Next.
Open the TuumIO Wallet app from your mobile device.
Tap 'I already have a TuumIO Wallet'.
Allow the app to use biometrics for added security when accessing your account.
Use fingerprint scan or facial recognition.
Wait a few seconds for the home screen to load.
The Profile screen allows users to view the details they have saved in the application. The following information is displayed:
Wallet ID
Nickname
Country
Verification method
Financial information
The information is clearly labeled so users understand which details are public, private, or shared only with us. Users can update their nickname and financial information; however, other details cannot be changed.
Users can also view detailed descriptions of each field and learn how their data is being securely stored.
Additionally, users have the option to delete their wallet account if they no longer wish to use the service.
Sign in to the TuumIO Wallet app.
Enter the amount in USD.
The equivalent amount in SOLVE is calculated automatically.
Tap Buy.
Sign in to the TuumIO Wallet app.
From the bottom navigation bar, tap FUNDS.
Sign in to the TuumIO Wallet app.
From the bottom navigation bar, tap FUNDS.
Enter the amount in SOLVE.
Tap Transfer.
Tap Confirm.
Sign in to the TuumIO Wallet app.
From the bottom navigation bar, tap FUNDS.
Select the bill you want to pay.
Send your payment.
Sign in to the TuumIO Wallet app.
From the bottom navigation bar, tap FUNDS.
Participate in clinical trials to help discover new treatments and contribute to medical advancements. Join Care.Trials and search for clinical trials near you.
Participants — When you join Care.Trials as a participant, you will have access to available trials that match your profile. Use swiping to like or skip matched trials.
Physician — The physician, also known as principal investigator, helps connect patients to relevant clinical trials. In Care.Trials, the physician can browse trials, refer patients and search for trial sponsors.
Site Admin — The site admin helps coordinate clinical trials in a specific site location. In Care.Trials, the site admin can view leads and interact with the participants.
Trial Admin — The trial admin oversees the clinical trials in all sites. In Care.Trials, the trial admin can activate trials and set the budget for a trial site.
Nurse — The nurse in Care.Trials can review medical records and verify the eligibility of participants.
Sign in to the TuumIO Wallet app.
Please review the terms and conditions.
Tap the join button.
Wait up to 5 minutes to connect your TuumIO Wallet to the network.
Sign in to the TuumIO Wallet app.
Approve or reject the records.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Select the lead you want to review.
View the details of the trial
Ask a question to the lead
Approve or reject the lead.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Start to proceed**.**
Tap Submit.
Wait up to 5 minutes to search for available trials near you.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Like the trial you want to participate in. You can also skip or go back to the previous trial.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Select a file from your device or take a photo.
Tap Upload.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Records Review and ID Verification.
Confirm your payment.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Records Review and ID Verification.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Matched — View the clinical trials you liked that the site admin has responded to.
No response — View the clinical trials you liked that the site admin has not yet responded to.
Not a fit — View trials you liked but don't match your profile.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Activate Trial.
Tap Request code. Wait for the activation code to be sent to your email.
Tap Activate.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Update.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Select the site you want to update.
Tap Submit.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Select the site you want to update.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Activate Site.
Tap Request code. Wait for the activation code to be sent to your email.
Tap Activate Site.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Buy the lead you want to buy.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Tap Update.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
In the "Active site" list, select the trial you want to update.
Tap Buy Now, then confirm your payment.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
In the "Active site" list, select the trial you want to update.
Tap Request.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
In the "Active site" list, select a trial.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
Share trial info — Share the details about the trial with the participant.
Participant records & ID — Request records and ID from the participant.
Ask a question — Send questions to the participant.
Set an appointment — Send an appointment request to the participant containing the trial facility details.
Sign in to the TuumIO Wallet app.
From the Manage Networks screen, tap Care.Trials.
In Purchased Leads, select the lead you want to connect with.
Select the record you want to submit for review or verification.
Join the conversation:
Welcome to the Event Booker example, a simple booking app for events or appointments. The underlying structure can be adapted for Web3 integration, allowing you to extend the app's functionality such as using tokens to pay booking fees for exclusive events. Here’s how the app works:
Launch the app to book an event or appointment.
Fill in the details of the event or appointment.
Confirm and submit your booking details.
Ready to create your own booking app? Follow these steps:
Open the input.json
file in a text editor, then add the journey definition:
Create the definitions for the start card: cd-book-an-event.json
and the next card: cd-set-booking-details.json
.
Create the definition for the event to navigate from start card to the next card: e-w-navig-to-details.json
.
Create the definition for the submit event that contains the data for the booking details: e-w-broad-shareAppt.json
.
Create the definition for the next navigation event after submitting details: e-w-navig-to-book-1.json
.
Create the event handler definition for the navigation event with booking details: eh-w-navig-to-details.json
.
Create the event handler definition for saving data to the BOOKING_DETAILS
collection: eh-h-e-w-broad-shareAppt.json
. This node event handler also appends attributes to the payload.
Create the event handler definition for the navigation event after submitting booking details: eh-w-navig-to-book-1.json
. The booking details are fetched from the data collection: td/td-BOOKING_DETAILS
.
See configurations for .
You have the test environment details where you want to publish the protocol. For more information, see .
Validates field format and value. This function is used in .
Shows a default empty card when no data is fetched, otherwise it stays on the current card. For the description of parameters, see .
Allows multiple item selection for .
Adds links inside the text of a tile, such as .
From the bottom navigation bar, tap Caira.
Allow the app to access your device's microphone.
You will see the result to your requested query.
Use Postman to perform the steps for publishing. To get the authorization and environment details, contact .
Tap Create a new TuumIO Wallet.
Allow the app to access your device's location.
Choose a method for signing up. Do one of the following:
Choose 'Receive a code via email' to sign up via your email address.
Choose 'Receive a code on your phone' to sign up via your phone number.
If necessary, enter the one-time code sent to you, and then proceed.
Set up a 6-digit Wallet PIN, and then proceed.
Choose 'Continue with Apple' method for signing up.
Tap 'I already have a TuumIO Wallet'.
Enter your 6-digit PIN, and then proceed.
From the "Login using PIN" screen, tap "Forgot PIN?". \
Enter the one-time code sent to you, and then proceed.
Set up a new Wallet PIN for your account.
From the Side Menu screen, tap Backup.
Allow access to view the recovery phrase.
Copy the phrase or write it down.
Enter your recovery phrase.
Enter your Wallet PIN, and then proceed.
To open the profile screen, tap 'Profile' from the bottom navigation bar.
From the bottom navigation bar, tap FUNDS.
Select Buy SOLVE.
Select the payment method and enter details.
Select Deposit SOLVE.
Scan the QR code or copy the deposit address.
Select Transfer/Gift SOLVE.
Enter the Wallet ID or Scan the QR code of receiver.
Enter your PIN code.
Select Pay Bills.
Select Transactions History.
Select a transaction to view the details.
From the CTN Home screen, select the role you want to join.
Tap any card of the role.
From the Manage Networks screen, tap Care.Trials.
Tap Manage the Records > Pending record review.
Review the attached records, then fill in the participant details.
Tap Record > Reviewed records.
Select the record details you want to view.
Tap Review Trials Liked by Leads > Pending Review.
Do either of the following:
Tap Review Trials Liked by Leads > Reviewed Leads.
Select the lead verification details that you want to view.
Tap Verify your identity > Verify your identity.
Enter your full name, then upload your ID or medical license.
Tap Verify your identity > ID history.
Select the ID record details that you want to view.
Tap Start Here.
To get an overview of the next steps, watch the video. To read the FAQs, tap Learn more.
Answer the 5 questions to create your profile for matching clinical trials.
Agree to the terms and conditions and privacy policy.
Tap See Trials Near You.
Swipe left or right to browse through available trials.
Tap Records and ID.
Select Upload records and ID.
Select the type of attachment you want to upload.
Select Records Review and ID Verification.
Select the record or ID you want to submit.
Attach the file, then select your payment option.
Select Records & ID History.
Select the record or ID that you want to view. \
Tap See your Likes and Matches.
In the "Trials you liked" screen, select any of the following:
Tap Start Here.
Tap Step 1: Request admin code.
Enter the Trial ID and the email address where you want the activation code to be sent.
Tap Step 2: Activate admin role.
Enter the activation code you received in Step 1.
Tap Start Here.
In the "Active trials" list, select the trial you want to update.
Select Update trial info.
Fill in the details you want to modify.
Tap Manage Sites.
Tap View budget requests.
Select the site and the budget request you want to view.
To approve the request, tap Set Budget.
Enter the amount in SOLVE, then add a comment.
Tap Manage Sites.
Tap Check site statistics > Update.
Tap Activate your site.
Tap Step 1: Request site code.
Enter the Trial ID and the email address where you want the activation code to be sent.
Tap Step 2: Activate site role.
Enter the activation code sent to your email.
Tap See Your Matches.
Tap Previous or Skip to browse through matched leads.
Tap Activate your site.
In the "Active site" list, select the trial you want to update.
Select Update trial info.
Fill in the details you want to modify.
Tap Activate your site.
In the "Active site" list, select the trial you want to upgrade plan.
Tap Upgrade plan.
From Explore Plans screen, tap on Upgrade Plan button.
Tap on Confirm to confirm your payment.
Your plan will be subscribed.
Tap Activate your site.
Tap Buy campaign.
View each campaign card to see more details.
Tap Activate your site.
Tap Track Budget > Request budget.
Enter the amount, then add a comment.
Tap Activate your site.
Tap Check statistics > Update data.
Tap Connect and Engage.
In Purchased Leads, select the lead you want to connect with.
In the "Connect with the Lead" section, do any of the following:
Tap Connect and Engage.
In the "Connect with the Lead" section, tap Participant records & ID.
Tap Submit for review & verification.
Tap Submit to Nurse.
Our support team is here for you! Reach out at .
Define the included :
Define the included :
Define the included :