Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nest Protocol

Nest is Plume's real-world asset protocol. It gives onchain access to real-world yield through structured Vaults.

This repository contains the Nest smart contracts and their operational tooling. The vault stack complies with ERC-4626, ERC-7540, and ERC-7575. It standardizes synchronous and asynchronous deposits and redemptions. Shares move across chains through LayerZero OFT. Assets stay on their origin chain.

The stack has two operating modes:

  • Existing BoringVault deployments. NestVaultOFT is the entry point. It pairs with NestShareOFT to bridge shares over LayerZero OFT. The legacy BoringVault stays on one chain. Users move shares across chains.
  • New deployments. NestVault is the entry point. It speaks to NestShareOFT, a refined BoringVault replacement with native cross-chain shares.

Compliance and integrations:

  • KYC gating. V1 deployments use NestVaultPredicateProxy. V2 deployments use ComplianceProxy with a provider-specific hook. See Compliance flow.
  • Pendle Finance. BoringVaultSY wraps Nest vault shares as Pendle SY tokens. It reads the accountant rate and supports Merkl reward claims.
  • BoringVault. This repository uses the BoringVault accountant and rate-provider contracts. It does not ship the base BoringVault.

For protocol documentation, see app.plume.org/docs.

Repository structure

Path Contents
contracts/ Production Solidity contracts
script/ Foundry deployment scripts (deploy/, setup/, simulate/, dev/, shared code in lib/)
programs/ Solana OFT program (Anchor)
tools/ Standalone TypeScript, JavaScript, and shell commands
tasks/ Hardhat task registrations (LayerZero and Solana operations)
config/ Reviewed protocol configuration
deployments/ Published deployment records
audits/ Final audit reports
test/ Foundry and Jest tests

Quickstart

Install the dependencies:

pnpm install

Build the contracts:

forge build

Run the tests:

forge test               # Foundry tests
pnpm test:solana         # Jest tests for the Solana task layer

Deployment tooling

Deployments read reviewed inputs and write their run output to ignored directories:

  1. Edit the deployment inputs in script/deployment-config/vaults/<SYMBOL>.json and script/deployment-config/common/<chainId>.json.
  2. Run the Foundry scripts in script/deploy/ and script/setup/.
  3. The scripts write Safe batches and deployment records to script/output/. This directory is not versioned.
  4. Review the output. Promote values that must persist into script/deployment-config/, config/, or deployments/.

Deployment guide describes the full procedure.

Published packages

CI publishes two npm packages to GitHub Packages on each push to main or develop:

  • @plumenetwork/nest-artifacts — contract ABIs, creation bytecode, per-chain configuration, and a source-verification surface. Built by tools/build-artifact-bundle.mjs after forge build.
  • @plumenetwork/nest-solana-deploy — the runnable Solana LayerZero task layer. Built by tools/build-solana-deploy-package.mjs.

Mission Control consumes both packages. It pins the repo-relative paths of the files inside nest-solana-deploy and verifies that the repo path equals the package path. Do not move these without a matching Mission Control change:

  • hardhat.config.ts, tsconfig.json
  • tasks/**
  • script/solana-layerzero.config.ts
  • script/deployment-config/vaults/
  • script/solana-lz-abi/
  • deployments/solana-mainnet/, deployments/plumephoenix/
  • tools/build-solana-deploy-package.mjs (the builder path that Mission Control invokes)
  • script/output/ (ignored runtime handoff path, never committed)

Documentation

Vault core

Integrations

Operations

Release history

About

No description, website, or topics provided.

Resources

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages