Step-by-step instructions for earning and receiving RTC bounty payouts.
RustChain bounties are paid in RTC (RustChain Token). The internal
reference rate is 1 RTC = $0.10 USD. Payouts are transferred from the
founder_team_bounty wallet to your personal wallet after your
contribution is reviewed and merged.
Your wallet name is a simple string. Requirements:
- Lowercase letters, numbers, and hyphens only
- No spaces, underscores, or special characters
- Between 3 and 64 characters
Valid examples: alice-dev, bob2026, my-bounty-wallet
Invalid examples: Alice Dev (spaces), bob@2026 (special
characters), MY_WALLET (uppercase, underscores)
You do not need to install any software. Your wallet is created automatically the first time RTC is transferred to it.
Two ways to register:
- Implicit: Just use your wallet name when claiming a bounty. It will be created on first payout.
- Explicit: Run
concierge wallet register your-nameor open a wallet registration issue on the bounties repo if you want to confirm your name is available before claiming.
Find an open bounty at:
https://github.com/Scottcjn/rustchain-bounties/issues?q=is:open+label:bounty
Comment on the issue with:
- Your wallet name
- A brief description of your planned approach (1-3 sentences)
Example comment:
Claiming this. Wallet: alice-dev.
Approach: I will implement the input validation middleware described in the
issue and add pytest coverage for all error cases.
Wait for acknowledgment before starting significant work. If someone else has already claimed the bounty and is actively working, consider a different issue.
- Fork the relevant repository.
- Create a branch for your changes.
- Make your changes, following the repo's existing code style and conventions.
- Submit a pull request that references the bounty issue:
- Use
Fixes #123orCloses #123in the PR description to link it. - Include a clear description of what changed and why.
- Add tests, screenshots, or logs as evidence of correctness.
- Use
The maintainer reviews your PR against the quality scorecard (see below). You may receive feedback requesting changes. Address all review comments and push updates to the same PR branch.
Once approved, the PR is merged.
After merge, the maintainer initiates an RTC transfer:
- RTC is transferred from
founder_team_bountyto your wallet. - The transfer enters a 24-hour pending period.
- After 24 hours, the transfer is confirmed.
- Your balance is updated and available.
curl -sk "https://50.28.86.131/balance?miner_id=YOUR_WALLET_NAME"Example response:
{
"miner_id": "alice-dev",
"balance_rtc": 75.0,
"balance_i64": 75000000
}The balance_i64 field is the raw integer representation with 6 decimal
places (1 RTC = 1,000,000 units).
concierge wallet balance YOUR_WALLET_NAMEBrowse balances and transactions at:
https://50.28.86.131/explorer
The node uses a self-signed TLS certificate. Accept the browser warning
or use -k with curl.
| Tier | RTC Range | USD Equivalent | Typical Scope |
|---|---|---|---|
| Micro | 1 - 10 RTC | $0.10 - $1.00 | Docs fixes, repo stars, social media shares, typo corrections |
| Standard | 10 - 50 RTC | $1.00 - $5.00 | Feature additions, integrations, test suites, API docs |
| Major | 50 - 200 RTC | $5.00 - $20.00 | Architecture work, protocol implementations, dashboards |
| Critical | 200 - 500 RTC | $20.00 - $50.00 | Security audits, consensus attacks, red-team challenges |
| Event | Timeframe |
|---|---|
| Claim acknowledged | Same day (usually within hours) |
| PR review begins | Within 48 hours of submission |
| Review feedback | 1-3 rounds, depending on complexity |
| Merge | After all review comments are addressed |
| RTC transfer initiated | Within 24 hours of merge |
| Transfer pending period | 24 hours |
| Balance confirmed | 24 hours after transfer initiation |
| Total (best case) | 3-5 days from claim to confirmed balance |
Every submission is evaluated on four dimensions. The minimum passing score is 13 out of 20.
| Dimension | Points | Criteria |
|---|---|---|
| Impact | 0 - 5 | Does the submission solve the stated problem? Does it address the full scope of the bounty? |
| Correctness | 0 - 5 | Is the code correct? Does it handle edge cases? Are there bugs? |
| Evidence | 0 - 5 | Are there tests? Screenshots? Logs? Benchmarks? Proof the solution works? |
| Craft | 0 - 5 | Code quality, documentation, commit messages, adherence to existing style. |
| Score | Meaning |
|---|---|
| 0 | Not attempted or completely wrong |
| 1 | Minimal effort, major gaps |
| 2 | Partial, significant issues remain |
| 3 | Acceptable, meets basic requirements |
| 4 | Good, exceeds basic requirements |
| 5 | Excellent, thorough and polished |
The following will cause a submission to be rejected regardless of score:
- AI slop: Generated text or code with no human review, editing, or quality control. Outputs that read like raw LLM completions with boilerplate padding.
- Duplicate work: Submitting work that copies or closely mirrors an existing PR or merged contribution.
- Missing proof: Claims of completed work with no evidence (no tests, no screenshots, no logs, no before/after comparison).
- Scope violations: PR does significantly more or less than the bounty asks for. Unrelated changes bundled into the submission.
- Destructive changes: Replacing or deleting existing files instead of extending them (unless the bounty explicitly requires replacement).
wRTC is an ERC-20 token on Base L2 that wraps RTC for use on public Ethereum infrastructure.
| Property | Value |
|---|---|
| Standard | ERC-20 |
| Chain | Base L2 (Ethereum layer-2) |
| Decimals | 6 |
| Name | Wrapped RTC |
| Symbol | wRTC |
| Bridge type | Custodial (mint/burn) |
How the bridge will work:
- RTC to wRTC: Lock RTC on the RustChain side. Bridge operator mints equivalent wRTC on Base L2.
- wRTC to RTC: Burn wRTC on Base L2. Bridge operator releases equivalent RTC on RustChain.
The bridge is under active development. Until it launches, RTC lives entirely on the RustChain attestation chain.
If you have a secure wallet with Ed25519 keys (created via the RustChain wallet package), you can make peer-to-peer transfers without admin involvement:
POST https://50.28.86.131/wallet/transfer/signed
Content-Type: application/json
{
"from_address": "RTCa1b2c3d4...",
"to_address": "RTC9876543210...",
"amount_rtc": 10.0,
"memo": "Payment for code review",
"nonce": 1733420000000,
"signature": "<128-char hex Ed25519 signature>",
"public_key": "<64-char hex public key>"
}
The server verifies:
- The public key hash matches the
from_address. - The Ed25519 signature is valid over the canonical JSON payload.
- The sender has sufficient balance.
For most bounty hunters, signed transfers are not needed -- admin
transfers from founder_team_bounty handle all bounty payouts.
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Node health check (version, uptime, DB status) |
| GET | /balance?miner_id=NAME |
RTC balance for a specific wallet |
| GET | /epoch |
Current epoch/slot number and settlement status |
| GET | /api/miners |
List of active miners with architecture and multiplier |
| GET | /explorer |
Web-based block and transaction explorer |
| GET | /ready |
Readiness probe (200 if node is fully synced) |
| GET | /lottery/eligibility?miner_id=NAME |
Check epoch reward eligibility |
| POST | /wallet/transfer/signed |
Signed RTC transfer (Ed25519) |
Primary node: https://50.28.86.131
All external requests use HTTPS with a self-signed certificate. Append
-k to curl commands to skip certificate verification.
- Payout may not have been initiated yet. Allow up to 24 hours after merge for the maintainer to process the transfer.
- Verify you provided the correct wallet name in your bounty claim comment. Wallet names are case-sensitive (always lowercase).
- Check the block explorer at
https://50.28.86.131/explorerfor recent transactions.
- The node uses a self-signed TLS certificate. Use
-kwith curl:curl -sk "https://50.28.86.131/balance?miner_id=your-wallet". - Check node health first:
curl -sk https://50.28.86.131/health. If the node is down, try again in a few minutes.
- Edit your comment on the GitHub issue to correct it, or post a new
comment with the correct wallet name. Notify the maintainer with an
@Scottcjnmention.
- If you have a basic wallet (string name only), ask the maintainer to perform an admin transfer.
- If you have a secure wallet with Ed25519 keys, use the signed transfer endpoint described above.
- Contact the maintainer via the bounty issue comments or Discord
(
discord.gg/VqVVS2CW9Q).
- Read the issue carefully. Understand exactly what is being asked before writing code.
- Keep PRs small and focused. One bounty per PR. Do not bundle unrelated changes.
- Include evidence. Tests, screenshots, curl commands showing the fix works -- anything that proves correctness.
- Follow existing style. Match the indentation, naming conventions, and patterns already in the codebase.
- Write clear commit messages. Explain why, not just what.
- Respond to review quickly. The faster you address feedback, the faster the merge.