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
| Feature | Description |
|---|---|
| Wallets | Generate, import, and manage wallets |
| Contracts | Interact with smart contracts |
| Transactions | Send and monitor transactions |
| NFTs | Mint, 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 walletGET /onchain/wallets-- List walletsGET /onchain/balance/:address-- Get balancePOST /onchain/transactions-- Send a transactionGET /onchain/transactions/:hash-- Get transaction statusPOST /onchain/contracts/read-- Read from a contractPOST /onchain/contracts/write-- Write to a contractPOST /onchain/nft/mint-- Mint an NFTGET /onchain/nft/:address/:tokenId-- Get NFT metadataGET /onchain/health-- Health check
Environment Variables
| Variable | Default | Description |
|---|---|---|
RPC_URL | -- | Default EVM RPC endpoint |
PRIVATE_KEY | -- | Server wallet private key |
CHAIN_ID | 1 | Default chain ID |