Atomic on-chain settlement for eros-nft v1 cards on Solana cNFT.
Anchor program. Five instructions (init_registries, set_listing_quote,
cancel_listing, housekeeping_clear, execute_purchase). Three PDAs
(RoyaltyRegistry, ManifestRegistry, ListingState). Atomic SOL splits +
Bubblegum V2 cNFT transfer in one tx.
Off-chain (marketplace svc):
- Seller signs a SaleOrder { asset_id, seller, price, nonce, expires_at }
with their wallet's ed25519 key.
- Listing goes live in DB + on-chain via set_listing_quote(nonce).
- Seller delegates the leaf to the program PDA (Bubblegum delegate ix, same tx).
On-chain at purchase:
- Buyer submits a tx with TWO instructions:
1. Solana Ed25519Program: verifies seller's sig over canonical(SaleOrder).
2. eros_marketplace_solana::execute_purchase: reads back the precompile,
checks expiry/nonce/owner, computes royalty + platform fee + seller
proceeds from the immutable RoyaltyRegistry, transfers SOL (3 outflows),
and CPI-transfers the cNFT via Bubblegum (program PDA = leaf delegate).
- A marketplace service (catalog, listings UI, KMS) — see
eros-marketplace-svc. - A frontend — see
eros-engine-webextensions. - A persona standard — see eros-nft.
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
cargo install --git https://github.com/coral-xyz/anchor avm --locked
avm install 1.0.2 && avm use 1.0.2
anchor build
cargo test -p program-tests --lib --features eros-marketplace-solana/test-without-bubblegum
anchor test- Bubblegum V2 authority setup: The marketplace mint pipeline must set
sale_authority(this program's PDA) as the collection's permanent transfer delegate at collection creation time. This is a Bubblegum V2 requirement; full integration is deferred to v0.2. - Devnet not yet deployed: The v0.1.0 release was made with a rate-limited
devnet faucet. Deployment details are in
docs/devnet-deploy-status.md. - Full Bubblegum lifecycle integration test deferred to v0.2: The current
smoke test verifies
init_registrieson a local validator. A complete test covering mint → delegate → listing → purchase → owner verification is planned for v0.2.
Apache-2.0. See LICENSE.