Skip to main content
POST
Prepare a whitelist update
Prepares unsigned transactions for whitelisting or blacklisting users. Use POST /prepare-transactions with method=whitelist. Whitelisting is an on-chain, per-token permission. A wallet must be whitelisted before it can hold or receive that token, which makes this the standalone step to run before a transfer, a resale, or an investment — no minting required.

Fields

tokenSymbol, signerAddress (the tokenizer wallet), and userToWhitelist are required. Each entry in userToWhitelist needs:
Testing in Sandbox? Pass needKyc: false and skip identity verification entirely. The KYC flow is a Sumsub verification with document upload, not something you need to prove your integration works, and every test investor you create without it is one less manual step in your loop.Rehearse the real KYC flow once before you go live, since needKyc: false is rejected in production with needKyc=false is only available in the sandbox environment.
An optional newInvestor object supplies profile defaults used when a record has to be created: name, surname, middleName, secondSurname, and type (defaults to INVESTOR_PERSON).

The investor record

The investor record is created during the prepare call, not when the transaction is mined. Two consequences matter:
The investor’s email must not already belong to a tokenizer account. When the email is already registered, the call still succeeds and whitelists the address on-chain, but no investor record is added — so GET /get-balance-whitelist and newInvest both go on reporting Investor not found.Give every test investor its own email, separate from the account you issue with. In a real flow the issuer and the investor are different parties anyway.
When the investor already exists but has no wallet address on file, whitelisting attaches the investorAddress you pass to that record. An investor whose stored wallet differs from the one you send is rejected with Investor <email> is already associated with a different wallet address — a wallet address is set once and is not silently replaced.

Preparing is not sending

Preparing a whitelist only returns an unsigned transaction. The signed transaction must also be submitted, confirmed on-chain, and processed by the backend before the wallet counts as whitelisted. Verify the on-chain result before relying on it:
Whitelisting is not KYC. Whitelisting authorizes a wallet for one token on-chain; KYC is an off-chain compliance record for an investor email, shared across every asset that investor touches. Whitelisting a wallet does not approve KYC, and an approved KYC does not whitelist a wallet.

Next step

Preparing does not touch the chain. The response gives you txId and an array of unsigned transactions — you still have to sign and submit them.
1

Sign every returned transaction

Sign each entry locally with the wallet that sends the transaction — signerAddress, or investorAddress for newInvest and claimTokens. It must be whitelisted by Brickken, and it needs native gas on the target chain.
2

Submit the signed payloads

POST them to /send-transactions as { txId, signedTransactions } and Brickken broadcasts for you.If you would rather broadcast yourself, prepare with executionMode: "client-broadcast" and confirm afterwards with { txId, txHash } instead.
3

Poll until it confirms

Call GET /get-transaction-status with the txId. A pending status means it is broadcast but not yet mined — do not resubmit.
Full walkthrough: Tokenize an asset and run an STO.

Authorizations

x-api-key
string
header
required

Body

application/json
method
enum<string>
default:whitelist
required

Required. Operation to prepare. Must be whitelist for this endpoint.

Available options:
whitelist
Example:

"whitelist"

chainId
string
required

Required. Blockchain network identifier. Hex format is recommended, for example Sepolia aa36a7.

Example:

"aa36a7"

signerAddress
string
required

Required. Tokenizer wallet that signs the whitelist transaction.

Example:

"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"

tokenSymbol
string
required

Required. Symbol of the token whose whitelist is updated.

Example:

"EXMPL"

userToWhitelist
object[]
required

Required. Users to whitelist or blacklist.

Minimum array length: 1
Example:
newInvestor
object

Optional. Default profile data used when creating missing investor users.

Response

200 - application/json

Successful response

transactions
object[]
required

Array of unsigned transaction objects ready for signing

txId
string
required

Unique identifier for this transaction batch (required for /send-transactions). This is NOT a blockchain transaction hash.

Example:

"0x46adea7bdf49c576a760102e0d6bc9ecd650b3998588cd3d7f576a7973426aad"

info
object

Metadata about the operation