Complete API documentation for the Shadow Protocol SDK with examples and type definitions.
The main client class for interacting with Shadow Protocol.
new ShadowProtocolClient(config: ShadowProtocolConfig)
Creates a new Shadow Protocol client instance.
const client = new ShadowProtocolClient({
rpcUrl: 'https://api.devnet.solana.com',
arciumClusterPubkey: 'your-cluster-pubkey',
wallet: yourWallet,
commitment: 'confirmed'
});async createSealedAuction(params: CreateAuctionParams): Promise<CreateAuctionResult>
Creates a new sealed-bid auction with encrypted reserve price.
interface CreateAuctionParams {
assetMint: PublicKey; // Token mint for auction
duration: number; // Duration in seconds
minimumBid: number; // Minimum bid in lamports
reservePrice?: number; // Hidden reserve price
metadata?: AuctionMetadata; // Optional metadata
}const auction = await client.createSealedAuction({
assetMint: new PublicKey('So11111111111111111111111111111111111111112'),
duration: 3600, // 1 hour
minimumBid: 1_000_000, // 1 SOL
reservePrice: 5_000_000, // 5 SOL (encrypted)
});
console.log(`Auction created: ${auction.auctionId}`);async submitEncryptedBid(params: SubmitBidParams): Promise<SubmitBidResult>
Submits an encrypted bid to a sealed auction.
const bid = await client.submitEncryptedBid({
auctionId: '123',
amount: 7_000_000, // 7 SOL bid
});
console.log(`Bid submitted: ${bid.signature}`);