# Vechain Contract Types

Centralized TypeScript types for VeChain ecosystem smart contracts. One package instead of managing multiple contract dependencies.

## What's Included

This package provides TypeScript types for contracts from:

- **B32** - Community VeChain contract collection (VIP-180, VIP-181, DeFi primitives)
- **VeBetterDAO** - Sustainability governance (B3TR, VOT3, X2Earn, Treasury)
- **Stargate** - Authority node management and staking
- **VeVote** - Voting and governance infrastructure

## Installation

```bash
npm install @vechain/vechain-contract-types
# or
yarn add @vechain/vechain-contract-types
```

## Usage

```typescript
import {
  X2EarnApps__factory, //From VeBetterDAO
  StargateNFT__factory, //From Stargate
  VetDomainsPublicResolver__factory, //From B32
} from "@vechain/vechain-contract-types";

// Use the factory to create contract instances
const x2earnFactory = X2EarnApps__factory.connect(x2earnAddress);
const stargateNftFactory = StargateNFT__factory.connect(
  stargateNftFactoryAddress
);
const vetDomainsResolverFactory = VetDomainsPublicResolver__factory.connect(
  vetDomainsFactoryAddress
);
```

Each contract exports:

- `ContractName` - TypeScript interface
- `ContractName__factory` - Factory for contract instances
- Full type definitions for functions, events, and structs

## Key Contracts Reference

### VeBetterDAO Ecosystem

**Core Tokens:**

- `B3TR` - Main governance/utility token
- `VOT3` - Voting power token

**Governance:**

- `B3TRGovernor` - On-chain governance
- `TimeLock` - Timelock controller
- `XAllocationVoting` - X-App allocation voting

**X2Earn System:**

- `X2EarnApps` - Application registry
- `X2EarnRewardsPool` - Rewards distribution
- `XAllocationPool` - Fund allocation

**Infrastructure:**

- `Treasury` - Treasury management
- `Emissions` - Token emissions
- `VoterRewards` - Voting incentives
- `GalaxyMember` - Membership NFT

### Stargate Network

- `NodeManagement` - Authority node management
- `StargateNFT` - Node ownership NFTs
- `StargateDelegation` - Node delegation

### Standard Interfaces

All contracts include their corresponding interfaces (e.g., `IB3TR`, `IVOT3`, `ISimpleAccount`)

## Related Packages

- **[@vechain/contract-getters](https://www.npmjs.com/package/@vechain/contract-getters)** - Simplified contract reads (uses this package)
- **[@vechain/sdk](https://github.com/vechain/vechain-sdk-js)** - VeChain SDK for blockchain interactions
- **[VeChain Kit](https://www.npmjs.com/package/@vechain/vechain-kit)** - dApp development toolkit (uses this package)

## License

MIT
