Transfer Stock

Transfer Stock

Transfer shares from one stakeholder to another. The recipient (transferee) must already exist on the cap table before you can transfer stock to them.

Create the transferee stakeholder

Before transferring, ensure the recipient exists. Send a POST request to http://localhost:8293/stakeholder/create

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "name": {
            "legal_name": "Zach McKinnon",
            "first_name": "Zach",
            "last_name": "McKinnon"
        },
        "issuer_assigned_id": "",
        "stakeholder_type": "INDIVIDUAL",
        "current_relationship": "INVESTOR",
        "primary_contact": {
            "name": {
                "legal_name": "Zach McKinnon",
                "first_name": "Zach",
                "last_name": "McKinnon"
            },
            "emails": [
                {
                    "email_type": "BUSINESS",
                    "email_address": "zachary@plume.org"
                }
            ],
            "phone_numbers": [
                {
                    "phone_type": "MOBILE",
                    "phone_number": "+1 555-555-555"
                }
            ]
        },
        "contact_info": {
            "emails": [
                {
                    "email_type": "BUSINESS",
                    "email_address": "zachary@plume.org"
                }
            ],
            "phone_numbers": [
                {
                    "phone_type": "MOBILE",
                    "phone_number": "+1 555-555-555"
                }
            ]
        },
        "comments": []
    }
}

Create Transferee Stakeholder

See Create a Stakeholder for more details on stakeholder fields.

Transfer the stock

Send a POST request to http://localhost:8293/transactions/transfer/stock

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "transferorId": "<FROM_STAKEHOLDER_ID>",
        "transfereeId": "<TO_STAKEHOLDER_ID>",
        "stockClassId": "<STOCK_CLASS_ID>",
        "quantity": "13",
        "sharePrice": "4.20",
        "isBuyerVerified": true
    }
}

The response returns "success" when the transfer is recorded onchain.

Stock Transfer Response

Verify the transfer

Check historical transactions to confirm:

GET /historical-transactions/issuer-id/<YOUR_ISSUER_ID>

Historical Transactions

Required fields

FieldDescription
transferorIdStakeholder transferring the shares (seller)
transfereeIdStakeholder receiving the shares (buyer)
stockClassIdThe class of stock being transferred
quantityNumber of shares to transfer
sharePricePrice per share
isBuyerVerifiedWhether the buyer has been verified

What's next?

After transferring stock, you can:

  • View all transactions via GET /historical-transactions/issuer-id/:issuerId
  • Cancel stock via POST /transactions/cancel/stock
  • Issue more stock via POST /transactions/issuance/stock

See the Transactions documentation for the full API reference.