Hello World — Your First Transaction on Savitri
This tutorial takes you from zero to sending your first transaction on the Savitri testnet. Choose the path that matches your profile.
| Path | For | Time | Prerequisites |
|---|---|---|---|
| A. Browser Wallet | Crypto users | 2 min | Chrome/Brave |
| B. Mobile App | Mobile users | 3 min | iOS or Android |
| C. Desktop Installer | Non-technical users | 5 min | Windows or macOS |
| D. Docker (Developer) | Developers | 5 min | Docker installed |
| E. Build from Source | Rust developers | 15 min | Rust 1.82+ |
A. Browser Wallet
Time: 2 minutes
-
Install the Savitri Wallet extension from the Chrome Web Store
-
Open the extension and click Create Wallet
-
Write down your 12-word seed phrase and store it safely
-
Your wallet is connected to the Savitri testnet automatically
-
Get testnet tokens from the faucet:
- Open the wallet
- Click Request Testnet Tokens
- Wait 10 seconds for confirmation
-
Send your first transaction:
- Click Send
- Enter any testnet address (or use the example address shown in the wallet)
- Enter an amount (e.g., 10 SAVI)
- Click Confirm
-
Check the transaction in the wallet's History tab
You're done. You've created a wallet, received tokens, and sent a transaction on Savitri.
B. Mobile App
Time: 3 minutes
-
Download the Savitri app:
-
Open the app and tap Create New Wallet
-
Save your seed phrase securely
-
The app connects to the testnet and starts a lightweight node in the background
-
Tap Receive to see your wallet address
-
Tap Faucet to receive free testnet SAVI
-
Tap Send → enter a recipient address → enter amount → confirm
-
Watch the transaction appear in Activity
Bonus: Go to Node tab to see your lightnode status, peers connected, and PoU score.
C. Desktop Installer
Time: 5 minutes
-
Download the installer:
-
Run the installer and follow the setup wizard (15 steps, guided)
-
Choose your node type:
- Lightnode (recommended for first time) — minimal resources
- Masternode — full validator (requires 8 GB+ RAM)
-
The installer downloads the node binary, generates keys, and configures everything
-
Click Start Node — your node connects to the testnet
-
Open the Wallet tab → Create Wallet → save your seed phrase
-
Click Faucet → receive testnet tokens
-
Click Send → enter recipient → enter amount → confirm
-
Check the Dashboard tab for live metrics: block height, peers, PoU score
D. Docker (Developer)
Time: 5 minutes
Prerequisites
- Docker installed (get Docker)
Step 1: Start a lightnode
docker run -d --name savitri-node \
-p 4001:4001 -p 8545:8545 -p 9090:9090 \
savitri/lightnode:testnet
Step 2: Verify it's running
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getBlockHeight","params":[],"id":1}'
Expected response:
{"jsonrpc":"2.0","result":{"height":12345},"id":1}
Step 3: Create a wallet
# Generate a new keypair
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"wallet_create","params":[],"id":2}'
Save the returned address and private key.
Step 4: Get testnet tokens
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"faucet_request","params":["YOUR_ADDRESS"],"id":3}'
Step 5: Check balance
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"account_getBalance","params":["YOUR_ADDRESS"],"id":4}'
Step 6: Send a transaction
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tx_send",
"params":{
"from":"YOUR_ADDRESS",
"to":"RECIPIENT_ADDRESS",
"amount":"1000000000000000000",
"private_key":"YOUR_PRIVATE_KEY"
},
"id":5
}'
Amount is in wei (18 decimals). 1000000000000000000 = 1 SAVI.
Step 7: Run a full local testnet (optional)
git clone --recurse-submodules https://github.com/Savitri-Network/savitri-network.git
cd savitri-network/savitri-testnet
docker-compose up -d
This starts: 2 masternodes, 1 lightnode, 1 guardian, Prometheus, and Grafana.
- Grafana dashboard: http://localhost:3000
- Prometheus metrics: http://localhost:9090
- RPC (masternode 1): http://localhost:8545
- RPC (masternode 2): http://localhost:8546
- RPC (lightnode): http://localhost:8547
E. Build from Source
Time: 15 minutes
Prerequisites
# macOS
brew install rustup cmake ninja llvm openssl zstd lz4 ccache protobuf
rustup install stable
# Ubuntu / Debian
sudo apt install build-essential pkg-config clang llvm-dev libclang-dev \
cmake ninja-build libssl-dev zlib1g-dev liblz4-dev libzstd-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows — install Visual Studio Build Tools with C++ workload + Windows SDK
Step 1: Clone and build
git clone --recurse-submodules https://github.com/Savitri-Network/savitri-network.git
cd savitri-network
# Build a lightnode
cargo build --release -p savitri-lightnode
Step 2: Start the node
./target/release/lightnode \
--listen-port 4001 \
--tx-interval-secs 2 \
--block-interval-secs 10 \
--max-block-txs 32 \
--bootstrap <PEER_ID>@/ip4/<TESTNET_IP>/tcp/4002
Get the current testnet bootstrap address from the testnet configuration.
Step 3: Generate keys
cargo build --release -p savitri-sdk
./target/release/key_generator
This outputs your public key (address) and private key.
Step 4: Send a transaction via RPC
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tx_send",
"params":{
"from":"YOUR_ADDRESS",
"to":"RECIPIENT_ADDRESS",
"amount":"1000000000000000000",
"private_key":"YOUR_PRIVATE_KEY"
},
"id":1
}'
Step 5: Deploy a token (optional)
See the full tutorial: Deploy a SAVITRI-20 Token
What's Next?
| Goal | Resource |
|---|---|
| Understand the architecture | Architecture Overview |
| Deploy a token | Token Deployment Tutorial |
| Run a validator (masternode) | Node Types |
| Build with the SDK | SDK Overview |
| Explore the RPC API | RPC Method Reference |
| Join the community | Discord |
| Read the tokenomics | Token Allocation |
| Full documentation | docs.savitrinetwork.com |