Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/availproject/nexus-sdk/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Nexus SDK provides utilities for validating and formatting Ethereum addresses for display.

isValidAddress

Validate whether a string is a valid Ethereum address.
import { isValidAddress } from '@avail-project/nexus-core';

const valid = isValidAddress('0x742d35Cc6634C0532925a3b8D4C9db96c4b4Db45');
// true

const invalid = isValidAddress('0xinvalid');
// false

Parameters

address
string
required
The address string to validate

Returns

isValid
boolean
true if the address is valid, false otherwise

Validation Rules

The function checks:
  • Correct length (42 characters including 0x prefix)
  • Valid hexadecimal characters
  • Proper checksum (EIP-55)

Examples

import { isValidAddress } from '@avail-project/nexus-core';

// Valid checksummed address
isValidAddress('0x742d35Cc6634C0532925a3b8D4C9db96c4b4Db45');
// true

// Valid lowercase address
isValidAddress('0x742d35cc6634c0532925a3b8d4c9db96c4b4db45');
// true

// Valid uppercase address
isValidAddress('0x742D35CC6634C0532925A3B8D4C9DB96C4B4DB45');
// true

truncateAddress

Truncate an Ethereum address for display purposes.
import { truncateAddress } from '@avail-project/nexus-core';

const short = truncateAddress('0x742d35Cc6634C0532925a3b8D4C9db96c4b4Db45');
// "0x742d35...4Db45"

Parameters

address
string
required
The Ethereum address to truncate
startLength
number
default:6
Number of characters to keep from the start (including 0x)
endLength
number
default:4
Number of characters to keep from the end

Returns

truncated
string
The truncated address string with ellipsis in the middle

Behavior

  • If the address is invalid, returns the original string unchanged
  • If the address is shorter than startLength + endLength + 2, returns it unchanged
  • Validates the address before truncating

Examples

import { truncateAddress } from '@avail-project/nexus-core';

const address = '0x742d35Cc6634C0532925a3b8D4C9db96c4b4Db45';

// Default: 6 chars start, 4 chars end
truncateAddress(address);
// "0x742d35...4Db45"

Common Patterns

import { isValidAddress } from '@avail-project/nexus-core';

interface FormData {
  recipient: string;
  amount: string;
}

function validateForm(data: FormData): string[] {
  const errors: string[] = [];
  
  if (!data.recipient) {
    errors.push('Recipient address is required');
  } else if (!isValidAddress(data.recipient)) {
    errors.push('Invalid recipient address');
  }
  
  if (!data.amount || parseFloat(data.amount) <= 0) {
    errors.push('Amount must be greater than 0');
  }
  
  return errors;
}

Best Practices

Always validate before using

Use isValidAddress() to validate user input before passing addresses to SDK methods.

Truncate for display only

Only use truncateAddress() for UI display. Always store and use full addresses in your application logic.

Show full address on hover

Use the title attribute or a tooltip to show the full address when users hover over truncated addresses.

Adjust for screen size

Use shorter truncation (e.g., 4/2) for mobile displays and longer truncation (6/4) for desktop.

TypeScript Types

// Address utilities use the Hex type from viem
import type { Hex } from 'viem';

// isValidAddress
function isValidAddress(address: string): boolean;

// truncateAddress
function truncateAddress(
  address: string,
  startLength?: number,
  endLength?: number
): string;

// Usage with type safety
const address: Hex = '0x742d35Cc6634C0532925a3b8D4C9db96c4b4Db45';
if (isValidAddress(address)) {
  console.log(truncateAddress(address));
}