Skip to main content

Onchain Wire

The Onchain wire (@fluxkitdev/onchain) provides wallet management, smart contract interactions, transaction handling, and NFT operations on EVM-compatible blockchains.

Installation

npm install @fluxkitdev/core @fluxkitdev/onchain

Quick Start

import { FluxKit } from "@fluxkitdev/core";
import { onchain } from "@fluxkitdev/onchain";

const app = new FluxKit({
wires: [
onchain({
rpcUrl: process.env.RPC_URL,
privateKey: process.env.PRIVATE_KEY, // Optional server wallet
supportedChains: {
ethereum: { rpcUrl: "https://mainnet.infura.io/v3/YOUR_KEY" },
arbitrum: { rpcUrl: "https://arb1.arbitrum.io/rpc" },
base: { rpcUrl: "https://mainnet.base.org" },
},
}),
],
database: { uri: process.env.MONGODB_URI },
});

await app.start({ port: 3000 });

Features

FeatureDescription
WalletsGenerate, import, and manage wallets
ContractsInteract with smart contracts
TransactionsSend and monitor transactions
NFTsMint, transfer, and query NFTs

Programmatic API

// Generate a new wallet
const wallet = await app.onchain.wallets.create();

// Check a balance
const balance = await app.onchain.getBalance(wallet.address, "ethereum");

// Send a transaction
const tx = await app.onchain.transactions.send({
to: "0x1234...5678",
value: "0.1",
chain: "ethereum",
});

// Read from a contract
const name = await app.onchain.contracts.read({
address: "0xabc...def",
abi: erc20Abi,
method: "name",
chain: "ethereum",
});

REST API Endpoints

  • POST /onchain/wallets -- Create a new wallet
  • GET /onchain/wallets -- List wallets
  • GET /onchain/balance/:address -- Get balance
  • POST /onchain/transactions -- Send a transaction
  • GET /onchain/transactions/:hash -- Get transaction status
  • POST /onchain/contracts/read -- Read from a contract
  • POST /onchain/contracts/write -- Write to a contract
  • POST /onchain/nft/mint -- Mint an NFT
  • GET /onchain/nft/:address/:tokenId -- Get NFT metadata
  • GET /onchain/health -- Health check

Environment Variables

VariableDefaultDescription
RPC_URL--Default EVM RPC endpoint
PRIVATE_KEY--Server wallet private key
CHAIN_ID1Default chain ID