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:
| 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": "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.