Create Address Book Entry With Wallet Address
Overview
createAddressBookEntryWithWalletAddress API is used to create a new address book contact together with its first wallet address. It allows client to create both the contact and the wallet address atomically in a single API call.
Params
The CreateAddressBookEntryWithWalletAddressParams used to initialized and perform createAddressBookEntryWithWalletAddress API.
- address book: the
CreateAddressBookEntrycontact details - wallet address: the
CreateAddressBookWalletAddressinitial wallet address to associate with the contact
CreateAddressBookEntry
The CreateAddressBookEntry contact creation data.
- first name: the contact first name
- last name: the contact last name
- label: the custom label or nickname for the contact
- is wallet owner: indicates whether the new address book entry belongs to the current user
- residence address: the optional residential or primary address information
- company info: the optional company information, if the contact represents a business entity
- person info: the optional personal information, if the contact represents an individual
CreateAddressBookWalletAddress
The CreateAddressBookWalletAddress wallet address creation data.
- wallet address: the actual blockchain wallet address
- is foreign: indicates whether the wallet should be considered foreign. It should be
trueif either the VASP associated with the wallet is located abroad or the wallet owner resides abroad - is unhosted wallet: indicates whether this is an unhosted (self-custodied) wallet, meaning it is not managed by a VASP
- vasp: the optional
Vaspassociated with the wallet. It must not be provided if the wallet is unhosted - proof of ownership: the optional
ProofOfOwnershipfor the wallet address. It must be provided only if the wallet is unhosted, the contact is the wallet owner and the threshold is null (no limits) or greater than or equal to 1000 EUR - label: the optional custom label for the wallet address
- threshold: the fiat threshold amount for a single send transaction, associated to the new wallet address entry. Set to null for no limits.
Result
The CreateAddressBookEntryWithWalletAddressResult created address book data.
- entry: the complete
FullAddressBookEntrywith the generated identifiers and the associated wallet addresses
Code
iOS
let entry = CreateAddressBookEntry
.make(
firstName: "...",
lastName: "...",
label: "...",
isWalletOwner: false,
residenceAddress: ...,
companyInfo: nil,
personInfo: ...
)
let walletAddress = CreateAddressBookWalletAddress
.make(
walletAddress: "...",
isForeign: false,
isUnhostedWallet: false,
vasp: Vasp(name: "...", website: "..."),
proofOfOwnership: nil,
label: "...",
threshold: nil
)
let params = CreateAddressBookEntryWithWalletAddressParams
.make(
addressBook: entry,
walletAddress: walletAddress
)
addressBookService
.createAddressBookEntryWithWalletAddress(params: params)
.asPublisher()
.sink { result in
// ...
}
Android
val personInfo = AddressBookPersonInfo(
dateOfBirth = "...",
taxId = "..."
)
val addressBook = CreateAddressBookEntry(
firstName = "...",
lastName = "...",
label = "...",
isWalletOwner = true,
residenceAddress = null,
companyInfo = null,
personInfo = personInfo
)
val vasp = Vasp.buildWithWebsite(
name = "...",
websiteUrl = "..."
)
val proofOfOwnership = ProofOfOwnership(
message = ProofOfOwnershipMessage(
value = "..."
),
signature = ProofOfOwnershipSignature(
value = "..."
)
)
val walletAddress = CreateAddressBookWalletAddress(
walletAddress = "...",
isForeign = false,
isUnhostedWallet = false,
vasp = vasp,
proofOfOwnership = proofOfOwnership,
label = "...",
threshold = FiatAmount(BigDecimal(1000))
)
val params = CreateAddressBookEntryWithWalletAddressParams(
addressBook = addressBook,
walletAddress = walletAddress
)
conio.addressBookService
.createAddressBookWithWalletAddress(params)
.asFlow()
.collect { result ->
//...
}