Stakeholder

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 with legal_name, first_name, and last_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 with name, emails, and phone_numbers).
      • contact_info: Additional contact information (object with emails and phone_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