Skip to main content
Generate blockchain addresses for Bitcoin and Ethereum networks. Addresses belong to wallets and are used to send and receive funds.

Methods

createAddress()

Generate a new address for a profile (V1 API). Requires wallet to exist first. Signature:
createAddress(
  request: CreateAddressRequest,
  requestOptions?: RequestOptions
): Promise<CreateAddressResponse>
Parameters:
ParameterTypeRequiredDescription
request.referencestringYesProfile reference
request.network'BTC' | 'tBTC' | 'ETH' | 'tETH'YesBlockchain network
request.clientSharestringYesClient share for key derivation
Example:
const address = await client.addresses.createAddress({
  reference: 'user-123',
  network: 'ETH',
  clientShare: 'your-client-share'
});

console.log('Address:', address.data.address);
console.log('Address ID:', address.data.id);

createAddressV2()

Generate a new address (V2 API). Automatically creates wallet if it doesn’t exist. This is the recommended method. Signature:
createAddressV2(
  request: CreateAddressRequest,
  requestOptions?: RequestOptions
): Promise<CreateAddressResponse>
Parameters: Same as createAddress(). Example:
// V2 automatically creates wallet if needed
const address = await client.addresses.createAddressV2({
  reference: 'user-123',
  network: 'ETH',
  clientShare: 'your-client-share'
});

console.log('Address:', address.data.address);
Use V2: The createAddressV2() method is recommended as it automatically creates a wallet if one doesn’t exist, simplifying your workflow.

getAddressForProfile()

Get address details for a profile by reference. Signature:
getAddressForProfile(
  request: GetAddressForProfileRequest,
  requestOptions?: RequestOptions
): Promise<AddressResponse>
Parameters:
ParameterTypeRequiredDescription
request.referencestringYesProfile reference
request.network'BTC' | 'tBTC' | 'ETH' | 'tETH'YesBlockchain network
Example:
const address = await client.addresses.getAddressForProfile({
  reference: 'user-123',
  network: 'ETH'
});

console.log('Address:', address.data.address);

getAddressForOrganization()

Get all addresses for an organization. Signature:
getAddressForOrganization(
  request: GetAddressForOrganizationRequest,
  requestOptions?: RequestOptions
): Promise<AddressesResponse>
Parameters:
ParameterTypeRequiredDescription
request.network'BTC' | 'tBTC' | 'ETH' | 'tETH'YesBlockchain network
request.skipnumberNoNumber of records to skip
request.takenumberNoNumber of records to retrieve
Example:
const addresses = await client.addresses.getAddressForOrganization({
  network: 'ETH',
  skip: 0,
  take: 50
});

console.log('Organization addresses:', addresses.data);

Network Support

  • BTC / tBTC: Bitcoin mainnet / testnet
  • ETH / tETH: Ethereum mainnet / testnet

Complete Example

import { OumlaSdkApiClient, OumlaSdkApiEnvironment } from '@oumla/sdk';

const client = new OumlaSdkApiClient({
  environment: OumlaSdkApiEnvironment.Sandbox,
  apiKey: 'your-api-key'
});

async function manageAddresses() {
  // Generate address (V2 - auto-creates wallet)
  const address = await client.addresses.createAddressV2({
    reference: 'user-123',
    network: 'ETH',
    clientShare: process.env.CLIENT_SHARE!
  });
  
  console.log('Generated address:', address.data.address);
  
  // Get address for profile
  const profileAddress = await client.addresses.getAddressForProfile({
    reference: 'user-123',
    network: 'ETH'
  });
  
  console.log('Profile address:', profileAddress.data.address);
  
  // List all organization addresses
  const orgAddresses = await client.addresses.getAddressForOrganization({
    network: 'ETH',
    skip: 0,
    take: 100
  });
  
  console.log('Total addresses:', orgAddresses.data.length);
}