Skip to main content
Generate blockchain addresses for your profiles. 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.networkIdstringYesNetwork ID (from getNetworks())
request.clientSharestringYesClient share for key derivation
Example:
const address = await client.addresses.createAddress({
  reference: 'user-123',
  networkId: 'your-network-id',
  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',
  networkId: 'your-network-id',
  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 addresses for a profile by reference. Signature:
getAddressForProfile(
  request: GetAddressForProfileRequest,
  requestOptions?: RequestOptions
): Promise<AddressResponse>
Parameters:
ParameterTypeRequiredDescription
request.referencestringYesProfile reference
request.skipnumberNoNumber of records to skip
request.takenumberNoNumber of records to retrieve
Example:
const addresses = await client.addresses.getAddressForProfile({
  reference: 'user-123',
  skip: 0,
  take: 50
});

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

getAddressForOrganization()

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

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

Complete Example

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

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

async function manageAddresses() {
  // First, get available networks
  const networks = await client.networks.getNetworks({ skip: 0, take: 50, enabled: true });
  const networkId = networks.data[0].id; // Use appropriate network ID

  // Generate address (V2 - auto-creates wallet)
  const address = await client.addresses.createAddressV2({
    reference: 'user-123',
    networkId,
    clientShare: process.env.CLIENT_SHARE!
  });

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

  // Get addresses for profile
  const profileAddresses = await client.addresses.getAddressForProfile({
    reference: 'user-123',
    skip: 0,
    take: 50
  });

  console.log('Profile addresses:', profileAddresses.data);

  // List all organization addresses
  const orgAddresses = await client.addresses.getAddressForOrganization({
    skip: 0,
    take: 100
  });

  console.log('Total addresses:', orgAddresses.data.length);
}