Stakeholder Routes
Terminology Note: TAP follows the Open Cap Format (OCF) standard which uses "stakeholder" to refer specifically to equity holders on the cap table—individuals (founders, employees, advisors) and institutions (VCs, investors) who own shares of the issuer. This is distinct from the broader business term "stakeholder" which can include any party with interest in a company (customers, partners, etc.).
One of the most interesting and important routes - given the issuerId, stakeholders can be added to the cap table.
stakeholder/create
- Description: Creates a new stakeholder.
- Method:
POST - Parameters (body):
issuerId: The ID of the issuer (string).data: The stakeholder data (object with the following fields):name: The name of the stakeholder (object withlegal_name,first_name, andlast_name).issuer_assigned_id: The ID assigned by the issuer (string).stakeholder_type: The type of stakeholder (string, e.g., "INDIVIDUAL").current_relationship: The current relationship (string).primary_contact: The primary contact information (object withname,emails, andphone_numbers).contact_info: Additional contact information (object withemailsandphone_numbers).comments: Additional comments (array of strings).
{
"issuerId": "<YOUR_ISSUER_ID>",
"data": {
"name": {
"legal_name": "Alex Palmer",
"first_name": "Alex",
"last_name": "Palmer"
},
"issuer_assigned_id": "",
"stakeholder_type": "INDIVIDUAL",
"current_relationship": "FOUNDER",
"primary_contact": {
"name": {
"legal_name": "Alex Palmer",
"first_name": "Alex",
"last_name": "Palmer"
},
"emails": [
{
"email_type": "BUSINESS",
"email_address": "alex@plume.org"
}
],
"phone_numbers": [
{
"phone_type": "MOBILE",
"phone_number": "+1 ************"
}
]
},
"contact_info": {
"emails": [
{
"email_type": "BUSINESS",
"email_address": "alex@plume.org"
}
],
"phone_numbers": [
{
"phone_type": "MOBILE",
"phone_number": "+1 ************"
}
]
},
"comments": []
}
}stakeholder/add-wallet
This is used to add a wallet that the stakeholder is using to custody shares on the cap table, by issuer
- Description: Adds a wallet to a stakeholder.
- Method:
POST - Parameters (body):
issuerId: The ID of the issuer (string).wallet: The wallet address to add (string).
{
"issuerId": "<YOUR_ISSUER_ID>",
"wallet": "<YOUR_WALLET_ADDRESS>"
}stakeholder/remove-wallet
Something bad happened to the wallet? Does the stakeholder want to use another one and remove the current one? This is how we do it.
- Description: Removes a wallet from a stakeholder.
- Method:
POST - Parameters (body):
id: The ID of the stakeholder (string).wallet: The wallet address to remove (string).
{
"issuerId": "<YOUR_ISSUER_ID>",
"wallet": "<YOUR_WALLET_ADDRESS>"
}stakeholder/onchain/id/:id
- Description: Retrieves onchain details of a stakeholder by ID.
- Method:
GET - Parameters (URL):
id: The ID of the stakeholder (string).
stakeholder/total-number
- Description: Retrieves the total number of stakeholders.
- Method:
GET