An open API service indexing awesome lists of open source software.

https://github.com/glamsystems/glam

GLAM is an onchain asset management and tokenization platform
to launch and manage investment products on Solana.
https://github.com/glamsystems/glam

solana

Last synced: about 1 year ago
JSON representation

GLAM is an onchain asset management and tokenization platform
to launch and manage investment products on Solana.

Awesome Lists containing this project

README

          

![GLAM Tests](https://github.com/glamsystems/glam/actions/workflows/post_commit_anchor_test.yml/badge.svg)




GLAM *.+ The New Standard for Asset Management.

## Onchain Asset Management on Solana

GLAM is a platform for deploying institutional-grade investment products on Solana. Through programmable vaults and mints, GLAM provides infrastructure for onchain operations with fine-grained acccess controls.

### Quick Links

- [Developer Documentation](https://docs.glam.systems)
- [TypeScript SDK](https://www.npmjs.com/package/@glamsystems/glam-sdk)
- [CLI Reference](https://github.com/glamsystems/glam/tree/main/cli#readme)
- [Graphical User Interface](https://gui.glam.systems)

## Development Setup

### Prerequisites

- Node v20.11.0 or higher
- Pnpm v9.1.2 or higher
- Rust v1.75.0 or higher
- Anchor CLI 0.30.1
- Solana CLI 1.18.23

Install Solana CLI (recommended):
```shell
sh -c "$(curl -sSfL https://release.anza.xyz/v1.18.23/install)"
```

### Installation

```shell
git clone https://github.com/glamsystems/glam.git
cd glam
pnpm install
```

### Testing

Build and run the test suite:

```shell
pnpm run anchor-build
pnpm run anchor-test
```

### Local Development

Start the development server:

```shell
pnpm run dev
```

## SDK Usage Example

```typescript
import * as anchor from "@coral-xyz/anchor";
import { GlamClient, WSOL } from "@glamsystems/glam-sdk";
import { PublicKey } from "@solana/web3.js";

const glamClient = new GlamClient();
const statePda = new PublicKey("FMHLPaEeCbuivqsAfHrr28FpWJ9oKHTx3jzFbb3tYhq4");

async function main() {
const vaultPda = glamClient.getVaultPda(statePda);
const vaultWsolBalance = await glamClient.getVaultTokenBalance(statePda, WSOL);

// Wrap 0.1 SOL
const txSig = await glamClient.wsol.wrap(statePda, new anchor.BN(100_000_000));

// Check updated balance
const vaultWsolBalanceAfter = await glamClient.getVaultTokenBalance(statePda, WSOL);
}
```

For detailed API documentation and advanced usage examples, visit our [Developer Documentation](https://docs.glam.systems).