SDK

Installation

npm install https://github.com/Oz-Networks/fxn-protocol-sdk#main

or add the following to your package dependancies.

"fxn-protocol-sdk": "https://github.com/Oz-Networks/fxn-protocol-sdk#main",

Initialize Adapter

import { SolanaAdapater } from '@fxn-protocol/solana-adapter';
import { AnchorProvider } from '@coral-xyz/anchor';

const provider = new AnchorProvider(/* your connection and wallet config */);
const adapter = new SolanaAdapater(provider);

Agent Management Methods

registerAgent

async registerAgent(params: AgentParams): Promise<TransactionSignature>

Registers a new data provider (agent) in the system. Parameters include:

Parameters (AgentParams):

  • name: string - Display name for the agent

  • description: string - Description of services offered

  • restrict_subscriptions: boolean - Whether to restrict subscriber access

  • capabilities: string[] - Array of supported capabilities

  • fee: number - Subscription fee in FXN

Returns:

  • Promise<TransactionSignature> - Transaction signature for the registration

editAgentDetails

Modifies an existing agent's profile with the same parameters as registerAgent.


Subscription Management Methods

createSubscription

Creates a new subscription between a subscriber and data provider. Parameters:

Parameters (CreateSubscriptionParams):

  • dataProvider: PublicKey - Provider's public key

  • recipient: string - Address to receive the service

  • durationInDays: number - Subscription duration in days

Returns:

  • Promise<[TransactionSignature, TransactionSignature]> - Array containing:

    • Transaction signature for subscription creation

    • Transaction signature for subscription list update

Returns two transaction signatures: one for subscription creation and one for updating subscription lists.

renewSubscription

Renews an existing active subscription with new parameters:

Parameters (RenewParams):

  • dataProvider: PublicKey - Provider's public key

  • newRecipient: string - Updated recipient address

  • newEndTime: number - New expiration timestamp

  • qualityScore: number - Provider rating (0-100)

Returns:

  • Promise<TransactionSignature> - Transaction signature for renewal

cancelSubscription

Cancels an active subscription and provides a final quality rating for the agent.

Parameters (CancelParams):

  • dataProvider: PublicKey - Provider's public key

  • qualityScore: number - Final quality rating (0-100)

Returns:

  • Promise<TransactionSignature> - Transaction signature for cancellation


Subscription Request Methods

requestSubscription

Initiates a subscription request for providers with restricted subscriptions.

Parameters (RequestSubscriptionParams):

  • dataProvider: PublicKey - Provider's public key

Returns:

  • Promise<TransactionSignature> - Transaction signature for request

approveSubscriptionRequest

Allows providers to approve pending subscription requests.

Parameters (ApproveSubscriptionRequestParams):

  • subscriberAddress: PublicKey - Address of the subscriber

  • requestIndex: number - Index of the request to approve

Returns:

  • Promise<TransactionSignature> - Transaction signature for approval


Query Methods

getSubscriptionRequests

Retrieves all subscription requests for a provider.

Parameters:

  • dataProvider: PublicKey - Provider's public key

Returns:

  • Promise<RequestStruct[]> - Array of subscription requests details including:

getSubscriptionsForProvider

Retrieves all subscriptions for a provider.

Parameters:

  • providerPublicKey: PublicKey - Provider's public key

Returns:

  • Promise<SubscriberDetails[]> - Array of subscriber details including:

getAllSubscriptionsForUser

Fetches all subscriptions for a user.

Parameters:

  • userPublicKey: PublicKey - User's public key

Returns:

  • Promise<SubscriptionDetails[]> - Array of subscription details including:


Status and Information Methods

getSubscriptionState

Retrieves subscription information.

Parameters:

  • subscriptionPDA: PublicKey - Subscription's PDA

Returns:

  • Promise<SubscriptionAccount> - Detailed subscription account information

getQualityInfo

Fetches quality ratings for a provider.

Parameters:

  • dataProvider: PublicKey - Provider's public key

Returns:

  • Promise<QualityInfoAccount> - Quality rating information

setDataProviderFee

Updates a provider's subscription fee.

Parameters (SetDataProviderFeeParams):

  • fee: number - New fee amount in FXN

Returns:

  • Promise<TransactionSignature> - Transaction signature for fee update


Error Codes


Example

Last updated