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
⚠️

Price scaling: Contract values are scaled by 1e10 (10,000,000,000) on write. The poller unscales by 1e10 before writing to MongoDB, so API responses show human-readable values (e.g. "4.20" not 42000000000). If you ever read values directly from the contract, divide by 1e10.

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": "4.20", "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?