Link a wallet with the investor's signature
curl --request POST \
--url https://partners-api.sandbox.securitize.io/stocks/v1/wallets \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"investorId": "6b31c0e9a4f2d17e85c3b904",
"walletAddress": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"signature": "4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a",
"title": "Trading wallet"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
investorId: '6b31c0e9a4f2d17e85c3b904',
walletAddress: '7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV',
blockchainType: 'solana',
signature: '4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a',
title: 'Trading wallet'
})
};
fetch('https://partners-api.sandbox.securitize.io/stocks/v1/wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://partners-api.sandbox.securitize.io/stocks/v1/wallets"
payload = {
"investorId": "6b31c0e9a4f2d17e85c3b904",
"walletAddress": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"signature": "4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a",
"title": "Trading wallet"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"address": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"title": "Trading wallet"
}{
"statusCode": 400,
"message": "WALLET_ALREADY_IN_USE",
"error": "Bad Request"
}{
"message": "No API key found in request"
}Wallets
Link a wallet with the investor's signature
Links the address to the investor, with the wallet’s signature of the agreement message as proof that the investor controls it. The signature is kept as the record of that agreement. Once linked, the wallet can trade; the first trade whitelists it on the token, with nothing for the investor to sign beyond the order itself.
An investor trades from one linked wallet on each chain: every prepared order on that chain is built for it.
POST
/
wallets
Link a wallet with the investor's signature
curl --request POST \
--url https://partners-api.sandbox.securitize.io/stocks/v1/wallets \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"investorId": "6b31c0e9a4f2d17e85c3b904",
"walletAddress": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"signature": "4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a",
"title": "Trading wallet"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
investorId: '6b31c0e9a4f2d17e85c3b904',
walletAddress: '7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV',
blockchainType: 'solana',
signature: '4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a',
title: 'Trading wallet'
})
};
fetch('https://partners-api.sandbox.securitize.io/stocks/v1/wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://partners-api.sandbox.securitize.io/stocks/v1/wallets"
payload = {
"investorId": "6b31c0e9a4f2d17e85c3b904",
"walletAddress": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"signature": "4f1c9a7e2b6d03f58e1a9c4b7d2e6f0a3c8b5e1d9f7a2c4e6b0d8f1a3c5e7b9d2f4a6c8e0b1d3f5a7c9e2b4d6f8a0c1e3b5d7f9a2c4e6b8d0f1a3c5e7b9d2f4a",
"title": "Trading wallet"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"address": "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV",
"blockchainType": "solana",
"title": "Trading wallet"
}{
"statusCode": 400,
"message": "WALLET_ALREADY_IN_USE",
"error": "Bad Request"
}{
"message": "No API key found in request"
}Authorizations
Body
application/json
The wallet's signature of agreementMessage's UTF-8 bytes, hex-encoded (a 0x prefix is optional). On Solana that is the 64-byte signature from signMessage(new TextEncoder().encode(agreementMessage)), as 128 hex characters, not base58; a hardware wallet's signed off-chain message is accepted too.