Getting Started
Installation
npm install @kyuzan/mountain-public-api-client
Basic Setup
import { Configuration, ProjectApi } from '@kyuzan/mountain-public-api-client';
// Configure the client
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
accessToken: 'your_public_api_access_token',
apiKey: 'your_project_api_key',
});
// Create API instance
const projectApi = new ProjectApi(config);
Environment Variables
Store credentials securely:
const config = new Configuration({
basePath: process.env.MOUNTAIN_API_BASE_URL || 'https://api.mountain-dev.xyz',
accessToken: process.env.MOUNTAIN_ACCESS_TOKEN,
apiKey: process.env.MOUNTAIN_PROJECT_API_KEY,
});
Authentication
MOUNTAIN uses dual authentication: Access Token (user auth) + Project API Key (project identification).
const config = new Configuration({
basePath: 'https://api.mountain-dev.xyz',
accessToken: 'your_public_api_access_token',
apiKey: 'your_project_api_key',
});
- Access Token: Authenticates your user account and roles
- Project API Key: Identifies the specific project you're working with
See Authentication for details on getting your credentials.
Basic Usage
Get Projects
const projects = await projectApi.getProjects();
console.log(projects.data.projects);
Import Contract
import { ContractApi } from '@kyuzan/mountain-public-api-client';
const contractApi = new ContractApi(config);
const contract = await contractApi.importContract({
networkId: 1,
address: '0x1234567890123456789012345678901234567890',
formattedAbi: ['function mint(address to, uint256 amount)'],
});
Execute Transaction
import { TransactionApi } from '@kyuzan/mountain-public-api-client';
const transactionApi = new TransactionApi(config);
const transaction = await transactionApi.executeTransaction({
contractActivatedFunctionId: 1,
functionArgs: ['0x742d35Cc...', '1000000000000000000'],
idempotencyKey: 'unique-key-12345',
});
Create Webhook Subscription
import { EventNotifierApi } from '@kyuzan/mountain-public-api-client';
const eventApi = new EventNotifierApi(config);
const subscription = await eventApi.createEventNotifierSubscription({
subscriptionName: 'Transfer Events',
networkId: 1,
address: '0x1234567890123456789012345678901234567890',
formattedAbiEvent: '...',
initialBlockNumber: 18500000,
scanInterval: 10,
webhookURL: 'https://your-webhook-endpoint.com/webhook',
});
Error Handling
try {
const projects = await projectApi.getProjects();
} catch (error) {
console.error('API Error:', error);
}
Next Steps
- API Reference - Complete API documentation
- Webhook SDK - Handle webhook events