cdp-wallet-onramp-kit
Version:
Complete toolkit for Coinbase Developer Platform (CDP) Embedded Wallets and Onramp integration with reusable components, utilities, and documentation
133 lines (132 loc) • 3.38 kB
TypeScript
/**
* Configuration for JWT generation
*/
export interface JWTConfig {
method?: string;
host?: string;
path?: string;
expiresIn?: number;
}
/**
* Address configuration for session tokens
*/
export interface AddressConfig {
address: string;
blockchains: string[];
}
/**
* Session token request parameters
*/
export interface SessionTokenParams {
addresses: AddressConfig[];
assets?: string[];
}
/**
* Onramp URL generation parameters
*/
export interface OnrampUrlParams {
addresses: AddressConfig[];
assets?: string[];
defaultAsset?: string;
defaultNetwork?: string;
presetFiatAmount?: number;
presetCryptoAmount?: number;
redirectUrl?: string;
partnerUserId?: string;
}
/**
* Generate a JSON Web Token (JWT) for CDP API authentication.
* Uses the CDP SDK to handle all key formats automatically.
*
* @param config - JWT configuration options
* @returns Promise<string> - The generated JWT token
*
* @example
* ```typescript
* const jwt = await generateJWT({
* method: 'POST',
* path: '/onramp/v1/token'
* });
* ```
*/
export declare function generateJWT(config?: JWTConfig): Promise<string>;
/**
* Create a session token for initializing the onramp widget.
* Session tokens are single-use and expire after 5 minutes.
*
* @param jwt - The JWT token for authentication
* @param params - Session token parameters
* @returns Promise<string> - The session token
*
* @example
* ```typescript
* const jwt = await generateJWT();
* const sessionToken = await createSessionToken(jwt, {
* addresses: [{
* address: '0x1234...5678',
* blockchains: ['base', 'ethereum']
* }],
* assets: ['USDC', 'ETH']
* });
* ```
*/
export declare function createSessionToken(jwt: string, params: SessionTokenParams): Promise<string>;
/**
* Generate a complete onramp URL with session token and parameters.
* This is a convenience function that combines JWT generation, session token creation, and URL building.
*
* @param params - Onramp URL parameters
* @returns Promise<string> - The complete onramp URL
*
* @example
* ```typescript
* const onrampUrl = await generateOnrampUrl({
* addresses: [{
* address: '0x1234...5678',
* blockchains: ['base']
* }],
* defaultAsset: 'USDC',
* presetFiatAmount: 50
* });
* ```
*/
export declare function generateOnrampUrl(params: OnrampUrlParams): Promise<string>;
/**
* Guest checkout limits as defined by Coinbase
*/
export declare const GUEST_CHECKOUT_LIMITS: {
readonly minimumAmount: 5;
readonly weeklyLimit: 500;
readonly country: "US";
};
/**
* Supported blockchain networks
*/
export declare const SUPPORTED_NETWORKS: {
readonly BASE: "base";
readonly ETHEREUM: "ethereum";
readonly ARBITRUM: "arbitrum";
readonly OPTIMISM: "optimism";
readonly POLYGON: "polygon";
};
/**
* Common asset symbols
*/
export declare const SUPPORTED_ASSETS: {
readonly ETHEREUM: "ETH";
readonly USD_COIN: "USDC";
readonly BITCOIN: "BTC";
readonly TETHER: "USDT";
readonly DAI: "DAI";
};
/**
* Validate wallet address format
*/
export declare function isValidEthereumAddress(address: string): boolean;
/**
* Validate amount within guest checkout limits
*/
export declare function validateGuestCheckoutAmount(amount: number): {
isValid: boolean;
error?: string;
};