Skip to main content

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