A flexible Node SDK for interacting with the Metal API. This SDK provides a clean interface for all Metal API endpoints with separate configurations for client-side and server-side usage.
For more information on the Metal API, please refer to the Metal API Docs.
For public endpoints that don't require secret keys, use the public client:
import { Metal } from "@0xmetropolis/metal-sdk";
// Initialize with public key
const metal = Metal.createPublicClient("your_public_key");
// Examples of client-safe operations:
// Get holder details
const holder = await metal.getHolder("user123");
// Get token balance
const balance = await metal.getTokenBalance(
"user123",
"tokenAddress"
);
For protected endpoints that require authentication, use the secret client:
import { Metal } from "@0xmetropolis/metal-sdk";
// Initialize with secret key
const metal = Metal.createSecretClient("your_secret_key");
// Examples of server-side operations:
// Create a new token
const tokenJob = await metal.createToken({
name: "My Token",
symbol: "MTK",
});
// Distribute tokens
const distribution = await metal.distribute("tokenAddress", {
sendToAddress: "holderAddress",
amount: "100",
});
// Get or create holder
const holder = await metal.getOrCreateHolder("user123");
🚨 Note: Never expose your secret key in client-side code. The secret client should only be used in secure server environments.
-
Implement changes, add features, etc.
-
Bump the version in
package.json
-
npm install && npm run build
. Ensure the build passes. -
npm login
(if not already logged in) -
npm publish
.