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: 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:
| Type | Description |
|---|---|
StockIssuance | New shares issued to a stakeholder |
StockTransfer | Shares transferred between stakeholders |
StockCancellation | Shares cancelled |
StockRetraction | Issuance retracted |
StockReissuance | Shares reissued |
StockRepurchase | Company repurchased shares |
StockAcceptance | Stakeholder accepted shares |
IssuerAuthorizedSharesAdjustment | Issuer’s authorized shares changed |
StockClassAuthorizedSharesAdjustment | Stock 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?
- Use
security_idfrom aStockIssuancerow to transfer stock or change an existing security. - See View Cap Table to read current holdings rather than full history.