Contracts and Lifecycle
Overview
Contracts in the Arkeo Network represent on-chain agreements between clients and data providers, defining the terms under which clients can access API services offered by the provider.
Types of Contracts
Arkeo supports two types of contracts: Subscription and Pay-as-You-Go.
Subscription Contracts
Purpose: Designed for clients who prefer paying a fixed rate per block.
Key Features:
Clients specify the contract duration in blocks and their
queries-per-minute
(QPM) to set an expected rate limit.Clients deposit an amount of ARKEO (or other IBC assets) calculated as: Deposit = Subscription Rate × Duration × QPM
The subscription rate is deducted per block while the contract remains active.
Cancellation:
Clients can cancel the contract at any time and receive a pro-rated refund for the unused deposit.
Upon expiration or cancellation, the provider receives their full or pro-rated payment.
Pay-as-You-Go Contracts
Purpose: Designed for clients who pay based on usage, with charges applied per API request.
Key Features:
Clients specify a deposit amount from which charges are debited.
API requests occur off-chain but require signed messages containing a nonce for authentication.
Providers can submit these signed messages on-chain as proof of usage to debit the client’s deposit and credit their account.
Settlement Period:
After contract expiration, providers can make final claims within a settlement period (agreed upon during the
OpenContract
call).Once the settlement period ends, unused funds are returned to the client.
Cancellation Rules:
Clients cannot cancel pay-as-you-go contracts and must wait for expiration.
Providers can cancel these contracts at any time.
Delegated Contract Usage
Purpose: Enables clients to delegate contract spending to another entity.
How it Works:
The client specifies the public key of the delegate in the
Delegate
field of theOpenContract
call.The delegate, if specified, or the client is referred to as the
Spender
of the contract.Useful for scenarios where a different private key is needed to make API requests.
Claiming Contract Income
Pay-as-You-Go Contracts:
Require a
ClaimContractIncome
call to reconcile off-chain usage proof with on-chain records.Anyone can submit these claims on behalf of the provider.
The provider is credited the amount specified by the usage, while the client is debited from their deposit.
Contract Uniqueness
At any given time, a single client (or delegate) can only hold one active contract with a specific provider for a particular API service.
Last updated