> For the complete documentation index, see [llms.txt](https://docs.kaiko.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kaiko.com/on-chain/kaiko-data/kaiko-reference-rates/data-on-ramp/arbitrum/corporate-actions-on-arbitrum.md).

# Corporate actions on Arbitrum

This guide walks you through consuming Kaiko’s Corporate Actions data on Arbitrum. Kaiko publishes corporate action events (dividends, splits, mergers, …) for a sample universe of US equities: one feed contract per equity, holding the latest Kaiko-signed payload. Signatures are verified on-chain (EIP-712), so consumers only need to trust Kaiko’s signer — not whoever submitted the transaction.

\
Read in your browser
--------------------

Visit [onchain.kaiko.com/reference-data-arbitrum](https://onchain.kaiko.com/reference-data-arbitrum) to see the latest headline corporate action for each equity.

\
Feed contracts
--------------

<table data-search="false"><thead><tr><th>Ticker</th><th>ISIN</th><th>Contract address</th></tr></thead><tbody><tr><td>AAPL</td><td>US0378331005</td><td><code>0xD2Ee465ee2263FaB0F7cc97fAC300A5C66c2b9DA</code></td></tr><tr><td>AMZN</td><td>US0231351067</td><td><code>0x9F020BCE03f0Ee46640Ade921fEA633203CD9549</code></td></tr><tr><td>AVGO</td><td>US11135F1012</td><td><code>0x5D792D82d48C2D6c67C884Fd3E0752816a606842</code></td></tr><tr><td>BRK.B</td><td>US0846707026</td><td><code>0x3BB98119130A744E0162Db28550b093E26dF9947</code></td></tr><tr><td>GOOGL</td><td>US02079K3059</td><td><code>0x9808A5D86eAf46bEADF1AEAd93B084B7E64ce10e</code></td></tr><tr><td>META</td><td>US30303M1027</td><td><code>0xd5A82da6226ED6DF561b9F2Ff0525d721bbA61aC</code></td></tr><tr><td>MSFT</td><td>US5949181045</td><td><code>0xc295c52B8f364b364FaF71C001F140B6A55033a7</code></td></tr><tr><td>NVDA</td><td>US67066G1040</td><td><code>0xdFdAbe8547C5CF818cDa6E396Ece4978459d28F0</code></td></tr><tr><td>TSLA</td><td>US88160R1014</td><td><code>0x4f26A0cf030B99B5EdE4d695F49DcD4f253E1bba</code></td></tr><tr><td>WMT</td><td>US9311421039</td><td><code>0x25dee6ef68eD660031DEdE673909f681C4cc9de8</code></td></tr></tbody></table>

{% hint style=“info” %} This is a sample universe. For additional equities, event types, or update frequencies, [contact us](https://www.kaiko.com/contact-kaiko). {% endhint %}

\
Read the feed on-chain
----------------------

Each equity has its own `CorporateActionsFeed` contract exposing `getItems()`, which returns the equity’s identifiers and its corporate action events (action type, status, ex-date, dividend details, …).

This TypeScript example reads Apple’s feed with ethers:

```typescript
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider("<YOUR_PROVIDER_URL>");

const abi = [
  "function getGeneratedAt() view returns (string)",
  "function getItems() view returns (tuple(tuple(string isin, string ticker, string issuerName, string exchangeMic, string bbgCompId, string bbgCompTicker, string figi, string figiTicker, string timezone) idDetails, bool isTruncated, tuple(string eventUniqueId, string eventId, string ediEventCode, string actionType, string status, string eventCreatedAt, tuple(string actionType, string exDate, string recordDate, string paymentDate, string currency, string grossDividend, string dividendType) caDetails, string lastUpdatedAt)[] events)[])"
];

// AAPL feed
const feed = new ethers.Contract("0xD2Ee465ee2263FaB0F7cc97fAC300A5C66c2b9DA", abi, provider);

async function readCorporateActions() {
  const [generatedAt, items] = await Promise.all([
    feed.getGeneratedAt(),
    feed.getItems(),
  ]);

  console.log("Payload generated at:", generatedAt);
  for (const event of items[0].events) {
    console.log(
      event.actionType,
      "| status:", event.status,
      "| ex-date:", event.caDetails.exDate,
      "| dividend:", event.caDetails.grossDividend, event.caDetails.currency
    );
  }
}

readCorporateActions().catch(console.error);
```

\
All fields are strings; dates are RFC3339 UTC and an empty string means the value is not available. To consume the feed from another smart contract, declare the same structs as the feed contract and call `getItems()` through an interface.

{% hint style=“warning” %} Each update replaces the stored events: a feed holds only the latest verified payload, and each equity’s feed must be read individually. Past payloads remain available through the `PayloadPublished` event log. {% endhint %}<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kaiko.com/on-chain/kaiko-data/kaiko-reference-rates/data-on-ramp/arbitrum/corporate-actions-on-arbitrum.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
