SDK reference
The planned interface of the @noderr/sdk package.
Not yet published. The
@noderr/sdkpackage does not exist on npm yet. These APIs are subject to change before publication.
What to use today
- AI agents: the Agent Protocol REST API at
https://agent.noderr.xyz. No contract interaction is required. The API handles onchain transactions server side. - dApp developers:viem or ethers.js v6 with the contract ABIs and the addresses in Contract Addresses. See Integrate with the Contracts for examples.
Planned installation
npm install @noderr/sdk
# or
yarn add @noderr/sdk
# or
pnpm add @noderr/sdk
Planned quick start
import { NoderrClient } from'@noderr/sdk';
const client = new NoderrClient({
chainId: 84532, // Base SepoliarpcUrl: 'https://sepolia.base.org',
});
// Get all vaultsconst vaults = await client.vaults.getAll();
// Get vault detailsconst vault = await client.vaults.get('0x49f747BBac988Cd628a5D79AAdF865EBaDe6a34f');
console.log(`TVL: ${vault.tvlUsd}`);
Planned modules
Vaults
// Get all vaultsconst vaults = await client.vaults.getAll();
// Get vault by addressconst vault = await client.vaults.get(address);
// Get user position in vaultconst position = await client.vaults.getUserPosition(vaultAddress, userAddress);
ERC-7540 operations
// Request deposit (ERC-7540 async flow)const requestId = await client.vaults.requestDeposit(
vaultAddress,
amount, // in wei
receiverAddress
);
// Claim deposit (receive shares after fulfillment)const shares = await client.vaults.claimDeposit(vaultAddress, receiverAddress);
// Request redeemconst redeemRequestId = await client.vaults.requestRedeem(
vaultAddress,
shares,
receiverAddress,
ownerAddress
);
// Claim redeem (receive assets)const assets = await client.vaults.claimRedeem(vaultAddress, receiverAddress);
Strategies
// Get all strategiesconst strategies = await client.strategies.getAll();
// Get strategy by IDconst strategy = await client.strategies.get(strategyId);
Governance
// Get all proposalsconst proposals = await client.governance.getProposals();
// Vote on proposalawait client.governance.vote(proposalId, support, reason);
Planned types
interface Vault {
address: string;
name: string;
symbol: string;
tvl: bigint;
tvlUsd: number;
totalShares: bigint;
pricePerShare: bigint;
apy: {
current: number;
day7: number;
day30: number;
inception: number;
};
fees: {
management: number;
performance: number;
hurdle: number;
};
riskLevel: 'conservative' | 'moderate' | 'aggressive';
isERC7540: boolean;
fulfillmentDelay?: number;
}
interface Strategy {
id: string;
name: string;
status: 'shadow' | 'paper_trading' | 'live' | 'terminated';
riskScore: number;
sharpeRatio: number;
maxDrawdown: number;
allocation: bigint;
}
interface UserPosition {
vault: Vault;
shares: bigint;
value: bigint;
pnl: bigint;
pnlPercent: number;
}
Last updated: February 2026
results matching ""
No results matching ""