# Grain

Package: [Microsoft.Orleans.Core.Abstractions](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Core.Abstractions) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core.Abstractions/Core/Grain.cs#L15)

```csharp
public abstract class Grain : IGrainBase, IAddressable
```

The abstract base class for all grain classes.

## Properties

- [GrainContext](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/properties/graincontext-8d23ce92/)
- [GrainReference](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/properties/grainreference-420c72c3/)
- [IdentityString](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/properties/identitystring-e9028a67/)
- [RuntimeIdentity](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/properties/runtimeidentity-919d69b2/)

## Methods

- [OnActivateAsync(CancellationToken)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/methods/onactivateasync-system-threading-cancellationtoken-2a82a54c/)
- [OnDeactivateAsync(DeactivationReason, CancellationToken)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grain/methods/ondeactivateasync-orleans-deactivationreason-system-threading-cancellationtoken-43c948de/)
