Skip to content

Commit c95f53e

Browse files
committed
chore: rebrand to Nexum-Kit with dual licensing
- Rename leptos-rainbowkit to nexum-kit - Add AGPL-3.0 license for nexum-kit crate - Add MIT license for alloy-eip1193 crate - Update root LICENSE with dual-license structure - Add NOTICE file with RainbowKit attribution - Update all Cargo.toml metadata with new repository - Update README with Nexum-Kit branding and WIP status - Add GitHub FUNDING.yml with Ethereum address - Update examples to use nexum-kit imports
1 parent f032971 commit c95f53e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+951
-69
lines changed

.github/FUNDING.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Nexum-Kit Funding
2+
3+
# Support Nexum-Kit development via Ethereum
4+
custom: ["0xC1FC64b34FA86D8fac48565E44882a32cC08EB97"]

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[workspace]
22
members = [
33
"crates/alloy-eip1193",
4-
"crates/leptos-rainbowkit",
4+
"crates/nexum-kit",
55
"crates/leptos-rainbow-button",
66
"crates/create-leptos-rainbowkit",
77
"examples/basic",
@@ -11,9 +11,9 @@ resolver = "2"
1111
[workspace.package]
1212
version = "0.1.0"
1313
edition = "2021"
14-
authors = ["RainbowKit Contributors"]
15-
license = "MIT"
16-
repository = "https://github.com/rainbow-me/rainbowkit"
14+
authors = ["nxm-rs contributors"]
15+
repository = "https://github.com/nxm-rs/nexum-kit"
16+
homepage = "https://github.com/nxm-rs/nexum-kit"
1717

1818
[workspace.dependencies]
1919
leptos = { version = "0.8", features = ["csr"] }

LICENSE

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
1-
MIT License
1+
# Nexum-Kit Licensing
2+
3+
This repository contains code under multiple licenses:
4+
5+
## Rust/Leptos Components (nexum-kit)
6+
- **Location**: `crates/nexum-kit/`
7+
- **License**: GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later)
8+
- **Full License**: See `crates/nexum-kit/LICENSE-AGPL`
9+
- **Copyright**: (c) 2024 nxm-rs contributors
10+
11+
## Alloy EIP-1193 Integration (alloy-eip1193)
12+
- **Location**: `crates/alloy-eip1193/`
13+
- **License**: MIT License
14+
- **Full License**: See `crates/alloy-eip1193/LICENSE-MIT`
15+
- **Copyright**: (c) 2024 nxm-rs contributors
16+
17+
## TypeScript/React Packages (Original RainbowKit)
18+
- **Location**: `packages/`, `site/`, TypeScript examples
19+
- **License**: MIT License (Original)
20+
- **Copyright**: (c) 2024 Rainbow
21+
- **Status**: In transition - see NOTICE file for attribution
22+
23+
---
24+
25+
MIT License (Original RainbowKit - TypeScript/React packages)
226

327
Copyright (c) 2024 Rainbow
428

NOTICE

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
NOTICE
2+
3+
Nexum-Kit
4+
Copyright (c) 2024 nxm-rs contributors
5+
6+
This software is a derivative work based on RainbowKit, and includes substantial
7+
modifications and new implementations.
8+
9+
================================================================================
10+
11+
ORIGINAL WORK: RainbowKit
12+
Copyright (c) 2022-present Rainbow
13+
Licensed under the MIT License
14+
Repository: https://github.com/rainbow-me/rainbowkit
15+
16+
RainbowKit is a React library that makes it easy to add wallet connection to dApps.
17+
We are grateful to the Rainbow team for their excellent work on the original project.
18+
19+
================================================================================
20+
21+
MODIFICATIONS AND DERIVATIVE WORK
22+
23+
This derivative work (Nexum-Kit) includes:
24+
25+
1. Complete port from TypeScript/React to Rust/Leptos
26+
2. New EIP-1193 integration layer for Alloy (alloy-eip1193)
27+
3. Type-safe wallet connection components for Leptos
28+
4. WASM-based browser wallet integration
29+
5. Comprehensive error handling for EIP-1193 provider errors
30+
6. Native Rust implementations of wallet discovery and connection patterns
31+
32+
The Rust/Leptos implementation (nexum-kit) is licensed under AGPL-3.0-or-later
33+
to ensure derivative works remain open source.
34+
35+
The Alloy integration layer (alloy-eip1193) is licensed under MIT to maintain
36+
compatibility with the broader Alloy ecosystem and enable upstream contributions.
37+
38+
================================================================================
39+
40+
THIRD-PARTY DEPENDENCIES
41+
42+
This software makes use of several open-source libraries:
43+
44+
- Leptos: MIT License (https://github.com/leptos-rs/leptos)
45+
- Alloy: MIT/Apache-2.0 License (https://github.com/alloy-rs/alloy)
46+
- wagmi (inspiration): MIT License (https://github.com/wevm/wagmi)
47+
- viem (inspiration): MIT License (https://github.com/wevm/viem)
48+
49+
For a complete list of dependencies and their licenses, see the Cargo.toml
50+
files in each crate.
51+
52+
================================================================================
53+
54+
ATTRIBUTION REQUIREMENTS
55+
56+
When using or distributing this software, you must:
57+
58+
1. Maintain this NOTICE file and all copyright notices
59+
2. Comply with the AGPL-3.0-or-later license for nexum-kit components
60+
3. Comply with the MIT license for alloy-eip1193 components
61+
4. Acknowledge the original RainbowKit project when appropriate
62+
63+
For the original RainbowKit project, please visit:
64+
https://rainbowkit.com
65+
https://github.com/rainbow-me/rainbowkit

README.md

Lines changed: 160 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,193 @@
1-
<a href="https://rainbowkit.com">
2-
<img alt="rainbowkit" src="https://user-images.githubusercontent.com/372831/168174718-685980e0-391e-4621-94a1-29bf83979fa5.png" />
3-
</a>
1+
# Nexum-Kit 🔗
42

5-
# RainbowKit &nbsp; [![Version](https://img.shields.io/npm/v/@rainbow-me/rainbowkit?colorA=1f2937&colorB=3b82f6&labelColor=1f2937)](https://www.npmjs.com/package/@rainbow-me/rainbowkit) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/rainbow-me/rainbowkit)
3+
> **⚠️ WORK IN PROGRESS**: This repository is undergoing an active migration from TypeScript/React to Rust/Leptos. The Rust implementation is functional but not feature-complete. See [Migration Status](#migration-status) below.
64
7-
**The best way to connect a wallet 🌈**
5+
**Type-safe Web3 wallet connections for Rust/Leptos**
86

9-
RainbowKit is a [React](https://reactjs.org/) library that makes it easy to add wallet connection to your dapp.
7+
Nexum-Kit is a Rust/WASM port of [RainbowKit](https://github.com/rainbow-me/rainbowkit), providing type-safe, developer-friendly wallet connection components for Leptos applications. Built on [Alloy](https://github.com/alloy-rs/alloy) and EIP-1193, Nexum-Kit brings Rust's type safety and performance to Web3 dApp development.
108

11-
- 🔥 Out-of-the-box wallet management
12-
- ✅ Easily customizable
13-
- 🦄 Built on top of [wagmi](https://wagmi.sh) and [viem](https://viem.sh)
9+
**nexum** (Latin): bond, connection, obligation
1410

15-
## Quick start
11+
## Features
1612

17-
You can scaffold a new RainbowKit + [wagmi](https://wagmi.sh) + [Next.js](https://nextjs.org) app with one of the following commands, using your package manager of choice:
13+
- 🦀 **Type-Safe**: Leverage Rust's type system for compile-time safety
14+
-**Performance**: WASM-compiled for near-native browser performance
15+
- 🔌 **EIP-1193 Native**: First-class browser wallet integration
16+
- 🎨 **Themeable**: Customizable UI components with multiple built-in themes
17+
- 🌐 **Multi-Chain**: Support for Ethereum and EVM-compatible chains
18+
- 📦 **Modular**: Use what you need - from full UI kit to low-level primitives
1819

19-
```bash
20-
npm init @rainbow-me/rainbowkit@latest
21-
# or
22-
pnpm create @rainbow-me/rainbowkit@latest
23-
# or
24-
yarn create @rainbow-me/rainbowkit
25-
```
20+
## Architecture
2621

27-
## Documentation
22+
Nexum-Kit consists of two main crates:
2823

29-
For full documentation, visit [rainbowkit.com](https://rainbowkit.com).
24+
### `nexum-kit` (AGPL-3.0)
25+
Leptos component library providing:
26+
- Wallet connection UI components
27+
- Account management modals
28+
- Chain switching interfaces
29+
- Themed, customizable design system
3030

31-
### Try it out
31+
### `alloy-eip1193` (MIT)
32+
Low-level Alloy integration providing:
33+
- EIP-1193 transport layer for browser wallets
34+
- Type-safe error handling for wallet operations
35+
- Provider and signer implementations
36+
- Wallet discovery via EIP-6963
3237

33-
You can use the CodeSandbox links below to try out RainbowKit:
38+
## Quick Start
3439

35-
- with [Create React App](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-create-react-app)
36-
- with [Next.js](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-next)
37-
- with [Next.js App Router](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-next-app)
38-
- with [Remix](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-remix)
39-
- with [Vite](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-vite)
40-
- with [React Router](https://codesandbox.io/p/sandbox/github/rainbow-me/rainbowkit/tree/main/examples/with-react-router)
40+
### Installation
4141

42-
## Examples
42+
Add Nexum-Kit to your `Cargo.toml`:
43+
44+
```toml
45+
[dependencies]
46+
nexum-kit = { git = "https://github.com/nxm-rs/nexum-kit" }
47+
alloy = { version = "1.1", features = ["provider-http", "signer-local"] }
48+
leptos = "0.8"
49+
```
4350

44-
The following examples are provided in the [examples](./examples/) folder of this repo.
51+
### Basic Usage
4552

46-
- `with-create-react-app`
47-
- `with-next`
48-
- `with-next-app`
49-
- `with-next-custom-button`
50-
- `with-next-mint-nft`
51-
- `with-next-siwe-next-auth`
52-
- `with-next-siwe-iron-session`
53-
- `with-remix`
54-
- `with-vite`
55-
- `with-react-router`
53+
```rust
54+
use leptos::*;
55+
use nexum_kit::prelude::*;
56+
use nexum_kit::components::modals::ConnectModal;
5657

57-
### Running examples
58+
#[component]
59+
pub fn App() -> impl IntoView {
60+
view! {
61+
<ConnectModal />
62+
<YourDappComponents />
63+
}
64+
}
65+
```
5866

59-
To run an example locally, install dependencies.
67+
### Connect to a Wallet
6068

61-
```bash
62-
pnpm install
69+
```rust
70+
use alloy_eip1193::prelude::*;
71+
use alloy::providers::RootProvider;
72+
73+
// Create provider from browser wallet
74+
let transport = Eip1193Transport::client_from_window()?;
75+
let provider = RootProvider::new(transport);
76+
77+
// Request account access
78+
let accounts = provider.request_accounts().await?;
79+
80+
// Send transactions
81+
let tx = TransactionRequest::default()
82+
.to(address!("0x..."))
83+
.value(U256::from(1000000000000000000u64));
84+
85+
let pending = provider.send_transaction(tx).await?;
6386
```
6487

65-
Then go into an example directory, eg: `with-next`.
88+
## Migration Status
89+
90+
### ✅ Completed
91+
- [x] EIP-1193 transport layer and error handling
92+
- [x] Basic wallet connection flow
93+
- [x] Account display and management
94+
- [x] EIP-6963 wallet discovery
95+
- [x] Multi-chain support (chain switching)
96+
- [x] Transaction sending with error handling
97+
- [x] Theme system (Light, Dark, Midnight)
98+
99+
### 🚧 In Progress
100+
- [ ] Complete component library parity with RainbowKit
101+
- [ ] Wallet connection persistence
102+
- [ ] Advanced chain configuration
103+
- [ ] Sign-In with Ethereum (SIWE) integration
104+
- [ ] Comprehensive documentation
105+
- [ ] Example applications
106+
107+
### 📋 Planned
108+
- [ ] Additional wallet connectors
109+
- [ ] WalletConnect integration
110+
- [ ] Mobile wallet support
111+
- [ ] Testing suite
112+
- [ ] Performance optimizations
113+
114+
## Examples
115+
116+
See the [`examples/basic/`](./examples/basic/) directory for a working example application.
117+
118+
To run the example:
66119

67120
```bash
68-
cd examples/with-next
121+
cd examples/basic
122+
trunk serve
69123
```
70124

71-
Then run the dev script.
125+
Then open http://localhost:8080 in your browser with a Web3 wallet installed (MetaMask, Coinbase Wallet, etc.).
126+
127+
## Development
128+
129+
### Prerequisites
130+
131+
- Rust 1.75+
132+
- wasm32-unknown-unknown target
133+
- trunk for WASM development
134+
135+
### Building
72136

73137
```bash
74-
pnpm run dev
138+
# Install trunk
139+
cargo install trunk
140+
141+
# Build all crates
142+
cargo build --target wasm32-unknown-unknown
143+
144+
# Run example
145+
cd examples/basic && trunk serve
75146
```
76147

148+
## Dual Licensing
149+
150+
This repository contains code under multiple licenses:
151+
152+
- **`nexum-kit`** (Rust/Leptos components): **AGPL-3.0-or-later**
153+
- Ensures derivative works remain open source
154+
- See [`crates/nexum-kit/LICENSE-AGPL`](./crates/nexum-kit/LICENSE-AGPL)
155+
156+
- **`alloy-eip1193`** (Alloy integration): **MIT**
157+
- Enables broader adoption and upstream contributions
158+
- See [`crates/alloy-eip1193/LICENSE-MIT`](./crates/alloy-eip1193/LICENSE-MIT)
159+
160+
- **TypeScript/React packages**: **MIT** (Original RainbowKit)
161+
- In transition - not actively maintained
162+
163+
See [`LICENSE`](./LICENSE) for complete licensing details and [`NOTICE`](./NOTICE) for attribution.
164+
165+
## Attribution
166+
167+
Nexum-Kit is a derivative work based on [RainbowKit](https://github.com/rainbow-me/rainbowkit) by [Rainbow](https://rainbow.me). We are grateful to the Rainbow team for their excellent work on the original project. This Rust/Leptos port reimplements RainbowKit's functionality using Rust, WASM, and the Alloy library ecosystem.
168+
77169
## Contributing
78170

79-
Please follow our [contributing guidelines](/.github/CONTRIBUTING.md).
171+
Contributions are welcome! Please note the dual-licensing structure:
80172

81-
## License
173+
- Contributions to `nexum-kit/` fall under AGPL-3.0-or-later
174+
- Contributions to `alloy-eip1193/` fall under MIT
175+
176+
See [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for guidelines.
177+
178+
## Funding
179+
180+
Support development via Ethereum:
82181

83-
Licensed under the MIT License, Copyright © 2022-present [Rainbow](https://rainbow.me).
182+
**0xC1FC64b34FA86D8fac48565E44882a32cC08EB97**
183+
184+
## Links
185+
186+
- **Original RainbowKit**: https://rainbowkit.com
187+
- **Alloy**: https://github.com/alloy-rs/alloy
188+
- **Leptos**: https://github.com/leptos-rs/leptos
189+
- **Issues**: https://github.com/nxm-rs/nexum-kit/issues
190+
191+
## License
84192

85-
See [LICENSE](/LICENSE) for more information.
193+
Dual-licensed - see [`LICENSE`](./LICENSE) for details.

crates/alloy-eip1193/Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ name = "alloy-eip1193"
33
version.workspace = true
44
edition.workspace = true
55
authors.workspace = true
6-
license.workspace = true
6+
license = "MIT"
77
repository.workspace = true
8-
description = "EIP-1193 provider and signer implementation for Alloy (WASM-only)"
9-
keywords = ["ethereum", "eip1193", "alloy", "wasm", "browser-wallet"]
8+
homepage.workspace = true
9+
description = "EIP-1193 provider and signer implementation for Alloy - Part of Nexum-Kit"
10+
keywords = ["ethereum", "eip1193", "alloy", "wasm", "web3"]
1011
categories = ["wasm", "web-programming", "cryptography::cryptocurrencies"]
1112

1213
[dependencies]

0 commit comments

Comments
 (0)