
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
ventureverse-sdk
Advanced tools
Official SDK for integrating applications with the VentureVerse platform
Welcome to the VentureVerse Developer Kit! This package provides everything you need to integrate your applications with the VentureVerse platform using our secure API key authentication system.
npm install ventureverse-sdk
import { VentureVerseSDKSecure } from 'ventureverse-sdk';
const sdk = new VentureVerseSDKSecure({
apiKey: 'vv_your_api_key_here',
apiSecret: 'vv_secret_your_api_secret_here',
debug: true
});
await sdk.initialize();
const user = await sdk.getUserProfile();
await sdk.deductCredits(0.50, 'app_usage');
When your app is launched from the VentureVerse main portal, the SDK automatically detects iframe mode and uses real user context:
import { VentureVerseSDKSecure } from 'ventureverse-sdk';
// No API credentials needed - automatically detected from URL parameters
const sdk = new VentureVerseSDKSecure({
debug: true
});
await sdk.initialize(); // Automatically connects to parent window
const user = await sdk.getUserProfile(); // Gets real logged-in user
await sdk.deductCredits(0.50, 'app_usage'); // Uses real credits
Important: The VentureVerse Developer Console is currently invitation-only.
To get access:
dev (development mode)vv_abc123def456...vv_secret_xyz789...| Status | Description | Developer Control |
|---|---|---|
dev | Development mode for testing | ✅ Can set |
reviewing | Submitted for platform review | ✅ Can set |
disabled | App deactivated | ✅ Can set |
Note: Approved apps are automatically deployed by the VentureVerse platform team.
import { VentureVerseSDKSecure } from 'ventureverse-sdk';
const sdk = new VentureVerseSDKSecure({
apiKey: process.env.VENTUREVERSE_API_KEY, // Store securely
apiSecret: process.env.VENTUREVERSE_API_SECRET, // Store securely
environment: 'production', // or 'development'
debug: false, // Set to true for development
enableEncryption: true, // Enhanced security
encryptionKey: process.env.VENTUREVERSE_ENCRYPTION_KEY // Optional
});
// Initialize when your app starts
try {
await sdk.initialize();
console.log('VentureVerse SDK initialized successfully');
} catch (error) {
console.error('Failed to initialize SDK:', error);
}
// Check if user is authenticated
const isAuth = sdk.isAuthenticated();
if (!isAuth) {
console.warn('User is not authenticated');
// In iframe mode, the VentureVerse platform handles authentication
// In standalone mode, ensure your API key is valid and the SDK is initialized
} else {
const user = await sdk.getUserProfile();
console.log('Current user:', user);
}
// Get detailed user profile
const profile = await sdk.getUserProfile();
console.log('User profile:', {
id: profile.id,
name: profile.name,
email: profile.email,
tier: profile.tier.name,
credits: profile.credits
});
// Check user's credit balance
const credits = await sdk.getCreditBalance();
console.log(`Monthly: ${credits.monthly_credit_balance}, Top-up: ${credits.topup_credit_balance}`);
// Deduct credits for app usage (idempotency key auto-generated)
try {
const result = await sdk.deductCredits(1.5, 'app_usage');
console.log('Credits deducted:', result.credits_deducted);
} catch (error) {
console.error('Insufficient credits:', error);
// Handle insufficient credits (show upgrade prompt, etc.)
}
// Check if user has enough credits before expensive operations
const hasCredits = sdk.hasEnoughCredits(2.0);
if (hasCredits) {
// Proceed with operation
await performExpensiveOperation();
await sdk.deductCredits(2.0, 'app_usage');
}
The SDK supports idempotency keys to prevent duplicate credit charges on network retries.
// Generate a key before the operation
const key = sdk.generateIdempotencyKey(1.5);
// Pass it as the 4th argument — user_id is auto-filled from session, pass null
const result = await sdk.deductCredits(1.5, 'app_usage', null, key);
// On retry (e.g. network error), reuse the SAME key — no double charge
try {
await sdk.deductCredits(1.5, 'app_usage', null, key);
} catch (error) {
// Retry with the same key
await sdk.deductCredits(1.5, 'app_usage', null, key);
}
Key points:
deduct_<timestamp><random> and are unique per calloperation parameter for future extensibility: sdk.generateIdempotencyKey(cost, 'refund')try {
await sdk.deductCredits(1.0, 'app_usage');
} catch (error) {
switch (error.code) {
case 'INSUFFICIENT_CREDITS':
showUpgradePrompt();
break;
case 'INVALID_API_KEY':
console.error('API key is invalid or revoked');
break;
case 'RATE_LIMIT_EXCEEDED':
console.error('Rate limit exceeded, try again later');
break;
default:
console.error('Unexpected error:', error);
}
}
The SDK automatically detects and handles iframe integration with the VentureVerse main portal:
// SDK auto-detects iframe mode - no special configuration needed
const sdk = new VentureVerseSDKSecure({ debug: true });
await sdk.initialize();
// Check if running in iframe mode
if (sdk.isIframeMode) {
console.log('✅ Running in VentureVerse iframe - using real user data');
// All methods work the same but use real user context from parent
const user = await sdk.getUserProfile(); // Real logged-in user
const credits = await sdk.getCreditBalance(); // Real credit balance
// Credit deductions affect the actual user account
await sdk.deductCredits(0.50, 'app_usage');
} else {
console.log('Running in standalone mode - using demo data');
}
// Listen for iframe events
sdk.addEventListener('userProfileUpdated', (user) => {
console.log('User profile updated:', user);
});
sdk.addEventListener('creditBalanceUpdated', (credits) => {
console.log('Credits updated:', credits);
});
iframe_token is passed in the URL; the SDK exchanges it server-side for real user context — no PII ever travels in the URLiframe_mode=true URL parameterWhen launched from VentureVerse, your app receives these parameters:
iframe_mode=true - Indicates iframe modeapp_validated=true - Confirms app credentials were validatediframe_token - Short-lived opaque token; SDK exchanges it server-side for user contextThe SDK automatically handles all of these parameters — no manual processing required. User PII (user_id, email, name) is never passed in the URL.
⚠️ Important: Rotating invalidates the old key immediately.
Default limits:
Monitor your usage in the Developer Console. Contact support for higher limits with:
initialize()Initialize the SDK. Must be called before using other methods.
await sdk.initialize();
getUserProfile()Get the current user's profile information.
const profile = await sdk.getUserProfile();
// Returns: { id, name, email, tier, credits, ... }
getCreditBalance()Get user's current credit balance.
const credits = await sdk.getCreditBalance();
// Returns: { monthly_credit_balance, topup_credit_balance, tier, ... }
hasEnoughCredits(amount)Check if user has sufficient credits.
const hasEnough = sdk.hasEnoughCredits(850); // pass credit amount, not USD
// Returns: boolean
deductCredits(cost, type?, user_id?, idempotencyKey?)Deduct credits from user's account.
// Basic usage — idempotency key auto-generated
await sdk.deductCredits(1.0, 'app_usage');
// With explicit idempotency key for safe retries (user_id auto-filled — pass null)
const key = sdk.generateIdempotencyKey(1.0);
const result = await sdk.deductCredits(1.0, 'app_usage', null, key);
// Returns: { success, credits_deducted, remaining_balance, transaction_id? }
generateIdempotencyKey(amount, operation?)Generates a unique idempotency key for a credit operation.
const key = sdk.generateIdempotencyKey(1.0);
// Returns: string like "deduct_lf8xabc1234567890"
isAuthenticated()Check if the current user session is valid.
const isAuth = sdk.isAuthenticated();
// Returns: boolean
isIframeMode (property)Boolean property indicating whether the app is running inside the VentureVerse platform iframe.
if (sdk.isIframeMode) {
console.log('Running in VentureVerse iframe — real user data active');
}
vv_disabledEnable debug mode for detailed logging:
const sdk = new VentureVerseSDKSecure({
apiKey: 'your-api-key',
apiSecret: 'your-api-secret',
debug: true
});
This will log all API requests, responses, and errors to the console.
The VentureVerse SDK Secure edition includes enterprise-grade security:
const sdk = new VentureVerseSDKSecure({
apiKey: 'vv_your_api_key',
apiSecret: 'vv_secret_your_secret',
enableEncryption: true, // Enable AES encryption
encryptionKey: 'your-encryption-key', // Custom encryption key
timeout: 10000, // Request timeout
debug: false // Disable in production
});
ventureverse-developer-kit/
├── src/
│ ├── ventureverse-sdk-secure.js # Secure SDK with encryption
│ ├── security/
│ │ └── auth-system.js # Server-side auth utilities (Node.js)
│ └── types.d.ts # TypeScript definitions
├── docs/
│ └── API_REFERENCE.md # Detailed API documentation
├── templates/
│ └── vanilla-js-template/ # Ready-to-use starter template
├── SECURITY_ISSUES_RESOLVED.md # Security improvements log
├── CHANGELOG.md # Version history
└── README.md # This guide
templates/vanilla-js-template/ as a ready-to-run starter (run npm install && npm run dev)iframe_mode=trueNote: User PII (user_id, user_email, user_name) is never passed as URL parameters. The SDK exchanges an iframe_token server-side to retrieve user context securely.
/examplesMIT License - see LICENSE file for details.
Ready to build amazing apps on VentureVerse? Start with the integration guide above!
FAQs
Official SDK for integrating applications with the VentureVerse platform
We found that ventureverse-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.