Zap contracts consists of 4 main contracts :
Registry Contract :
where data providers interact to create Oracles and Endpoints, data about Oracles will be stored and viewed publicly
Bondage Contract :
Allow user to bond/unbond to Oracles, users can bond ZAP tokens to gain dots or unbond dots to get ZAP tokens back, all through Bondage contract.
Holds Dots in escrow during subscriptions periods or pending queries
Dots: Endpoint specific access tokens, dots can be redeemable as:
Query requests (1 dot = 1 query)
Subscription periods (1 dot = 1 block time)
An amount of Zap Tokens determined by Endpoint-specific bond market price
Dispatch Contract :
handle delivery of query from users and responses from data provider's Oracle
handle subscriptions activity, including start, end, information about subscriptions.
Below is how Zap Contracts are interact with each others and with Users/Data Providers