DevelopmentHistorical Transactions

Historical Transactions

Returns every stock issuance, transfer, cancellation, and other equity event recorded for a cap table.

History is populated by the event poller, not by the route that submits the contract transaction. Allow ~20 seconds on Plume Mainnet between an onchain transaction and a successful read. pnpm dev and pnpm docker:up both run a poller; pnpm prod does not — pair it with pnpm prod-poller.

Send a GET request

Using Postman or curl:

curl http://localhost:8293/historical-transactions/issuer-id/<YOUR_ISSUER_ID>

Replace <YOUR_ISSUER_ID> with the _id from your issuer creation response.

Check the response

The response is an array of historical transactions, each containing:

  • transaction: the full transaction object (populated from the referenced document)
  • transactionType: the type of transaction (e.g., StockIssuance, StockTransfer)
  • issuer: the issuer ID this transaction belongs to

Historical Transactions

⚠️

Price scaling: share_price.amount is stored as a scaled integer. Divide by 10000 for the human value — 42000 means $4.20. The same rule applies to every monetary field.

Transaction types

transactionType is one of:

TypeDescription
StockIssuanceNew shares issued to a stakeholder
StockTransferShares transferred between stakeholders
StockCancellationShares cancelled
StockRetractionIssuance retracted
StockReissuanceShares reissued
StockRepurchaseCompany repurchased shares
StockAcceptanceStakeholder accepted shares
IssuerAuthorizedSharesAdjustmentIssuer’s authorized shares changed
StockClassAuthorizedSharesAdjustmentStock class authorized shares changed

Example response

[
    {
        "transactionType": "StockIssuance",
        "issuer": "<YOUR_ISSUER_ID>",
        "transaction": {
            "date": "2026-01-01",
            "security_id": "56d14df5-6b04-7d93-1976-5e3f0d1703de",
            "quantity": "100000",
            "share_price": { "amount": "42000", "currency": "USD" },
            "is_onchain_synced": true
        }
    }
]

Sorting and pagination

The response is a flat array in MongoDB insertion order. No pagination is built in today — sort on the client by transaction.date (with the populated transaction’s _id as a stable tiebreaker) if you need ordering.

What’s next?