Releases: bandprotocol/bandchain.js
v3.0.4
What's Changed
- Tunnel Creation: New MsgCreateTunnel message type for creating data tunnels
- Route Management: Support for configuring and editing tunnel routes
- Enhanced Route Types: Added support for multiple route types:
- TSSRoute: Route for Threshold Signature Scheme (TSS) packets with destination chain and contract configuration
- IBCRoute: Standard IBC (Inter-Blockchain Communication) channel routing
- IBCHookRoute: IBC routing with smart contract hooks for custom packet handling
- RouterRoute: General-purpose router with gas limit configuration for cross-chain execution
- AxelarRoute: Integration with Axelar Network for cross-chain messaging with configurable fees
🔧 Updates
Protocol Buffers
- Updated tunnel proto definitions with new route specifications
- Fixed typos across multiple proto files (bandtss, tss, feeds, oracle modules)
- Regenerated TypeScript types from updated proto files
Generated Code
- Comprehensive codegen updates for tunnel module (route.ts, params.ts, tx.ts)
- Updated client code generation for improved type safety
- Enhanced tunnel type definitions with additional fields and parameters
📚 Examples
Added new example components demonstrating tunnel functionality:
- CreateTunnelExample.tsx - Shows how to create and configure tunnels
- EditRouteExample.tsx - Demonstrates route editing capabilities
- Updated Next.js example application with tunnel examples
🐛 Bug Fixes
- Fixed typos in proto file comments and field names
v3.0.3
What's Changed
Full Changelog: v3.0.0-alpha.3...v3.0.2
What's Changed
Full Changelog: v3.0.0...v3.0.3
v3.0.0
🚀 BandChain.js v3.0.0 Release Notes
🎉 Stable Release – BandChain.js Now Ready for Mainnet Production
We’re proud to announce the stable release of BandChain.js v3.0.0, fully compatible with the current BandChain Mainnet (v3) and legacy Band v2 modules.
This version concludes a multi-phase upgrade cycle that began with alpha releases and now delivers a reliable, production-ready SDK powered by Protobuf, gRPC, and Cosmos SDK standards.
📈 From Alpha to Stable: Evolution Summary
🧪 v3.0.0-alpha.1
- Introduced complete SDK rewrite: protobuf + gRPC-based clients.
- ONLY compatible with BandChain Testnet v3.
- Not suitable for production use.
🧪 v3.0.0-alpha.2
- Added Amino support for Band Oracle v2, enabling transaction signing on Mainnet (v2).
- Marked the first usable version on BandChain laozi-mainnet.
- Still focused on testing and low-level configuration.
🧪 v3.0.0-alpha.3
- Unified mainnet support with production-grade utilities like
getLegacySigningClient. - Covered full Cosmos SDK, IBC, and Band v2 legacy modules.
- Marked stable API structure and backwards compatibility.
✅ v3.0.0 (Current)
- Officially promotes alpha.3 to mainline stable.
- Recommended for all apps integrating with BandChain Mainnet (v3).
- Backward-compatible with Band v2 modules for seamless migration.
✨ Key Features
🔹 Unified Mainnet & Legacy Support
- ✅ BandChain Mainnet v3 (current)
- ✅ Legacy BandChain v2 Oracle, Bridge, Owasm modules
- ✅ Cosmos SDK & IBC module compatibility
- ✅ Support for both Amino and Proto signing modes
🔹 Protobuf + gRPC Architecture
- Protobuf-based client generation via Cosmology Telescope
- gRPC-based queries (no more REST)
- Strongly-typed TypeScript interfaces for requests, responses, and transactions
🔹 Developer-Friendly Client Utilities
getLegacySigningClientOptions()
import { getLegacySigningClientOptions } from "@bandprotocol/bandchain.js";
const { registry, aminoTypes } = getLegacySigningClientOptions();v3.0.0-alpha.3
🚀 BandChain.js v3.0.0-alpha.3 Release Notes
🕰 Alpha Release – Full Support for BandChain v2 Legacy Modules
This release introduces complete support for BandChain v2's legacy message modules, enabling developers to integrate with all Band v2, Cosmos, and IBC modules using Amino or Proto signing.
It is ideal for production dApps and tooling that still operate on the BandChain v2 mainnet.
✨ New Features
🔹 getLegacySigningClientOptions
Returns all required Amino types and registry settings for Cosmos SDK, IBC, and Band v2 modules (including Oracle, Bridge, Owasm, etc.).
import { getLegacySigningClientOptions } from "@bandprotocol/bandchain.js";
const { registry, aminoTypes } = getLegacySigningClientOptions();Use this with SigningStargateClient.connectWithSigner():
import { SigningStargateClient } from "@cosmjs/stargate";
const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, getLegacySigningClientOptions());🔹 getLegacySigningClient
A convenient wrapper to create a SigningStargateClient with everything configured for BandChain v2.
import { getLegacySigningClient } from "@bandprotocol/bandchain.js";
const client = await getLegacySigningClient({
rpcEndpoint,
signer, // OfflineSigner
});🧪 Notes
This is still an alpha version and subject to future API refinements.
Use this version if you require broad compatibility with BandChain mainnet (v2) and Cosmos-based modules.
v3.0.0-alpha.1
🚀 BandChain.js v3.0.0-alpha.1 Release Notes
⚠️ Alpha Release – Works Only with BandChain Testnet v3
🚧 This version is in ALPHA stage and is ONLY compatible with BandChain Testnet v3.
❌ It will NOT work with the current BandChain mainnet or testnet (v2).
✅ If you are working with BandChain Testnet v3, use this version for testing and integration.
🔄 Major Breaking Change – Complete Overhaul of bandchain.js
This release completely restructures @bandprotocol/bandchain.js, making it faster, more maintainable, and fully aligned with Cosmos SDK development standards.
- Protobuf-based TypeScript generation using Cosmology Telescope.
- gRPC-based queries instead of REST API calls.
- Protobuf message composers replace manually constructed JSON transactions.
- New transaction handling & signing flow using Stargate Client.
🚨 This version is NOT backward-compatible with v2.x! If you're upgrading, your application must be rewritten.
❗ Known Issues
- Some gRPC queries may not work correctly due to ongoing updates to the BandChain network.
- Documentation is still being updated to reflect all changes.
- Stability and performance improvements are ongoing.
🆕 New Features & Improvements
🔄 Migrated to Protobuf & gRPC
bandchain.jsnow uses fully auto-generated TypeScript clients.- REST API-based calls are removed – everything now uses gRPC queries.
- Transactions must be constructed using Protobuf messages.
⚡ Simplified Queries with gRPC
import { band } from "@bandprotocol/bandchain.js";
const { createRPCQueryClient } = band.ClientFactory;
const client = await createRPCQueryClient({ rpcEndpoint: RPC_ENDPOINT });
const response = await client.band.oracle.v1.QueryRequestData({
requestId: 12345,
});📝 New Message Composers for Transactions
import { band } from "@bandprotocol/bandchain.js";
const msg = band.oracle.v1.MsgRequestData.fromPartial({
oracleScriptId: 1,
calldata: new Uint8Array([...]),
sender: "band1...",
});🔐 Stargate Client for Signing & Broadcasting
import { getSigningBandClient } from "@bandprotocol/bandchain.js";
const stargateClient = await getSigningBandClient({
rpcEndpoint,
signer, // OfflineSigner
});🚀 Broadcasting Transactions
const { send } = band.cosmos.bank.v1beta1.MessageComposer.withTypeUrl;
const msg = send({
amount: [{ denom: "uband", amount: "1000" }],
toAddress: recipient,
fromAddress: sender,
});
const fee = {
amount: [{ denom: "uband", amount: "500" }],
gas: "200000",
};
const response = await stargateClient.signAndBroadcast(sender, [msg], fee);v3.0.0-alpha.2
🚀 BandChain.js v3.0.0-alpha.2 Release Notes
✅ Alpha Release – Now Compatible with BandChain Mainnet
🎉 This version adds support for BandChain Mainnet by registering the missing Amino types for Band Oracle v2.
This marks a key milestone where the package can now be used to sign and broadcast transactions on the current BandChain mainnet.
🧪 While still in ALPHA stage, this version is a bridge between BandChain v2 and upcoming v3 compatibility.
✨ New Features
🔹 getSigningOracleOptions
Returns Amino + Registry options for clients who want to manually construct a Stargate client for oracle-related transactions.
import { getSigningOracleOptions } from "@bandprotocol/bandchain.js";
const { registry, aminoTypes } = getSigningOracleOptions();🔹 getSigningOracleClientOptions
Returns options that can be used directly with SigningStargateClient.connectWithSigner.
🔧 Improvements
✅ Registered Amino converters for oracle.v1.MsgRequestData and related Band Oracle messages, enabling transaction signing on BandChain laozi-mainnet and laozi-testnet6.
🧱 Improved compatibility with @cosmjs/stargate and external wallet providers.
import { getSigningOracleClientOptions, band } from "@bandprotocol/bandchain.js";
import { SigningStargateClient } from "@cosmjs/stargate";
const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, getSigningOracleClientOptions());
const msg = band.oracle.v1.MsgRequestData.fromPartial({
oracleScriptId: 1,
calldata: new Uint8Array([...]),
sender: "band1...",
});
const fee = {
amount: [{ denom: "uband", amount: "500" }],
gas: "200000",
};
await client.signAndBroadcast("band1...", [msg], fee);🧪 Notes
- This version is still alpha. Expect breaking changes as we continue refining v3.
- Intended to support production testing and integration with BandChain Mainnet v2.
- Fully compatible with Cosmos wallets like Keplr using Amino signing.
v2.5.2
v2.5.1
v2.5.0
v2.5.0-alpha
- add message
MsgSubmitSignals,MsgSubmitSignalPrices,MsgUpdateReferenceSourceConfigandMsgUpdateParamsfromfeeds.v1beta1 - update
@ledgerhq/hw-transport-node-hidto 6.29.3 - add
feeds.v1beta1proto