Copy npm install https://github.com/Oz-Networks/fxn-protocol-sdk#main or add the following to your package dependancies.
Copy " fxn-protocol-sdk " : " https://github.com/Oz-Networks/fxn-protocol-sdk#main " , Initialize Adapter
Copy 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
Copy 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
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:
getSubscriptionState
Retrieves subscription information.
Parameters:
subscriptionPDA: PublicKey - Subscription's PDA
Returns:
Promise<SubscriptionAccount> - Detailed subscription account information
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