In this articleThis article explains how to generate Wallets & Addresses via Taurus PROTECT's API. It also includes some additional information that will help you more clearly understand how to integrate with PROTECT.
Prerequisites:
- An API user with
TpUserandAccountCreatorrole.- Understanding concepts in Blockchains, Network & Currency.
ImportantWallets and addresses are unique to blockchains. Each wallet can only contain addresses from one unique currency. For example, a wallet cannot contain BTC Testnet and BTC Mainnet addresses.
Creating a wallet
In PROTECT, wallets are collections of addresses. To create addresses you must first create a wallet.
Call the Create a wallet endpoint to create a new wallet.
Omnibus Wallets
An omnibus wallet is essentially a managed address pool. You add addresses to it (each potentially tagged with a customerId for your own bookkeeping), and when you want to send funds you just say "send X from wallet W" ā the system handles picking which addresses to drain, prioritizing the highest-balance ones first, aggregating across multiple addresses if needed.
External Reference
Wallets support external references, allowing you to map wallet addresses to unique identifiers from your own internal or third-party systems.
Creating an address
Call the Create an address endpoint to create a new address.
Batch Creation
You can batch create addresses using the Create a batch of addresses. This endpoint is asynchronous and requires polling the List addresses's statusto see status of the creation request.
Address Types
BTC and LTC support multiple address types (p2sh_p2wpkh is the default).
DOGE is forced to p2pkh.
All other blockchains must leave type empty.
Multi-chain addresses
While an Ethereum address and its Layer 2 counterparts share the same public key and derivation path, our system treats them as distinct entities. For every supported network, PROTECT generates a unique Address ID. This ensures that even if the canonical address (e.g. 0x123...) is identical across Ethereum and a Layer 2 (e.g.Arbitrum),the address remain two separate objects in the database with distinct ids in PROTECT.
To simplify interactions with L2 Networks, PROTECT will create addresses for L2 Networks automatically. Each generated address will have the same canonical address on-chain.
Limitations with L2 automatic address creationL2 addresses are generated only at the time of initial creation. PROTECT does not support backfilling addresses after a new L2 has been added. For example, if you have an existing Ethereum address and then enable Arbitrum, that specific address will not be available on Arbitrum.
Workaround: Generate a new Ethereum address after Arbitrum is enabled for your tenant. This ensures the address is provisioned for both networks.
We are working on updates to PROTECT to streamline the Layer 2 address generation experience for newly added blockchains.