Skip to content

SDKs

The repository provides six language bindings against one frozen operation and model contract. Each binding is checked against shared deterministic vectors.

Supported bindings

Binding Source Package registry Typical use
TypeScript / Node.js README npm search Services, bots, and tooling
Python README PyPI search Solvers, research, and operations tooling
Rust README crates.io search High-throughput and strongly typed services
Go README pkg.go.dev search Network services and bots
JVM README Maven Central search Java/Kotlin systems
.NET README NuGet search C# services and tooling

Registry links are searches, not publication claims. The repository source and SDK contract remain canonical when no published package is listed.

Frozen operation contract

The following table is generated from sdk-spec/nexa-v6-sdk-contract.json:

Canonical SDK operations

SDK contract: NEXA_V6_SDK_CONTRACT_V1 ? spec version 1.0.0 ? status FROZEN.

Operation Input Output
discover none Discovery
getRoutes RouteQuery? RouteList
getRoute routeId: Bytes32 Route
verifyFeed SignedFeed, VerifyFeedOptions? FeedVerification
requestPermitMessage PermitRequest string
requestPermit PermitRequest, requestSignature PermitEnvelope
resolveExecution rpcUrl, payload ResolvedExecution
previewExecution rpcUrl, PermitEnvelope ExecutionPreview
buildExecutionTx PermitEnvelope ExecutionTransaction
getFillStatus fillId: Bytes32 FillStatus

TypeScript example

import { NexaV6Client } from "nexa-v6-sdk";

const client = new NexaV6Client();
const { routes } = await client.getRoutes({ sourceChainId: 8453 });

const request = {
  quoteId: routes[0].quoteId,
  requestedAmountInRaw: routes[0].minimumFillInRaw,
  standard: "DIRECT",
  payer: "0xYOUR_SOURCE_ADDRESS",
  recipient: "0xYOUR_DESTINATION_ADDRESS",
  idempotencyKey: "solver-order-0001"
};

const message = await client.requestPermitMessage(request);
// Sign `message` exactly with the payer wallet, outside the SDK.

Wallet ownership and transaction submission remain application concerns. Do not inject private keys into a documentation build, indexer, or discovery client.

Conformance

From the repository root:

npm ci
npm run sdk:conformance

Conformance covers canonicalization, Feed hashes and signatures, permit-request messages, ABI encoding, standard resolution, models, and error mapping across the supported bindings.

Safe client behavior

  • Resolve endpoints and expected signer from canonical discovery.
  • Verify the Feed before returning routes.
  • Preserve base-10 integer strings and canonical identity formatting.
  • Keep signing external and sign the exact returned message.
  • Validate the permit envelope before building a transaction.
  • Use the solver's own RPC for preview and submission.
  • Expect one source Router call and a final total transaction count of two.