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:
| Parameter | Type | Required | Description |
|---|
request.reference | string | Yes | Profile reference |
request.networkId | string | Yes | Network ID (from getNetworks()) |
request.clientShare | string | Yes | Client 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:
| Parameter | Type | Required | Description |
|---|
request.reference | string | Yes | Profile reference |
request.skip | number | No | Number of records to skip |
request.take | number | No | Number 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:
| Parameter | Type | Required | Description |
|---|
request.skip | number | No | Number of records to skip |
request.take | number | No | Number 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);
}