Awesome-omni-skill xpr-network-dev

Comprehensive knowledge for XPR Network blockchain development - smart contracts, CLI, web SDK, DeFi, NFTs, and infrastructure

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/xpr-network-dev" ~/.claude/skills/diegosouzapw-awesome-omni-skill-xpr-network-dev && rm -rf "$T"
manifest: skills/development/xpr-network-dev/SKILL.md
source content

XPR Network Developer Skill

This skill provides comprehensive knowledge for developing on XPR Network, a fast, gas-free blockchain with WebAuthn wallet support.

IMPORTANT DISCLAIMER: AI-Generated Smart Contract Code

Smart contracts handle real assets and are immutable once deployed. AI-generated code, including code produced with this skill, should always be reviewed by an experienced developer before deployment to mainnet.

  • Test thoroughly on testnet before any mainnet deployment
  • Have code reviewed by someone familiar with XPR Network/EOSIO smart contracts
  • Audit critical contracts - consider professional security audits for contracts handling significant value
  • Understand the code - don't deploy code you don't fully understand

Claude can accelerate development and help with patterns, but it does not replace proper code review, testing, and auditing practices.

XPR Network Overview

XPR Network is an EOS-based blockchain optimized for payments and identity:

FeatureDescription
Speed0.5 second block times, 4000+ TPS
FeesZero gas fees for end users
AccountsHuman-readable names (1-12 chars, a-z, 1-5)
WalletsWebAuthn support (Face ID, fingerprint, security keys)
ContractsAssemblyScript/TypeScript with @proton/ts-contracts
StorageOn-chain tables with RAM-based pricing

Name Change: Proton → XPR Network

The blockchain was rebranded from Proton to XPR Network in 2024. You may see legacy references to "Proton" in:

  • Package names (
    @proton/cli
    ,
    @proton/web-sdk
    ,
    proton-tsc
    )
  • GitHub organization (
    XPRNetwork
    , formerly
    ProtonProtocol
    )
  • Documentation and code comments
  • Explorer (now
    explorer.xprnetwork.org
    , formerly
    protonscan.io
    and
    proton.bloks.io
    )

The token symbol remains XPR and all functionality is unchanged.

Chain IDs

NetworkChain ID
Mainnet
384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0
Testnet
71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd

Progressive Disclosure

Load specialized modules based on your task:

Core Development

ModuleRead WhenKey Topics
smart-contracts.md
Building contractsTables, actions, auth, build/deploy
cli-reference.md
Using CLI toolsNetwork, keys, deploy, queries
web-sdk.md
Building dAppsWallet connect, transactions, sessions
backend-patterns.md
Server-side devProgrammatic signing, bots, security
rpc-queries.md
Reading chain dataRPC, Hyperion API, Light API, pagination
testing-debugging.md
Testing contractsUnit tests, testnet, debugging, logs
accounts-permissions.md
Account managementCreate accounts, permissions, multisig
staking-governance.md
Staking & votingXPR staking, BPs, DPoS, resource model

Token & Identity

ModuleRead WhenKey Topics
token-creation.md
Creating tokensFungible tokens, issuance, vesting
webauth-identity.md
User identityWebAuth wallets, KYC, profiles, trust
nfts-atomicassets.md
NFT developmentCollections, schemas, minting, marketplace

DeFi & Trading

ModuleRead WhenKey Topics
metalx-dex.md
DEX integrationComplete MetalX API, orders, swaps
defi-trading.md
Trading bots/DeFiGrid bots, market makers, perps architecture
loan-protocol.md
Lending protocolLOAN protocol, supply, borrow, liquidations
oracles-randomness.md
Price feeds & RNGOracle prices, verifiable random numbers

Integration Patterns

ModuleRead WhenKey Topics
real-time-events.md
Live updatesHyperion streaming, WebSockets, notifications
payment-patterns.md
Commerce/paymentsPayment links, invoicing, POS, subscriptions

Infrastructure

ModuleRead WhenKey Topics
node-operation.md
Running nodesAPI nodes, Block Producers, validators

Safety & Reference

ModuleRead WhenKey Topics
safety-guidelines.md
BEFORE modifying contractsTable rules, deployment safety, recovery
troubleshooting.md
Debugging errorsCommon errors, solutions, diagnostics
examples.md
Learning patternsPriceBattle, ProtonWall, ProtonRating
resources.md
Finding endpointsRPC URLs, docs, explorers, community

CRITICAL: Before Modifying Contracts

Read:

safety-guidelines.md

  • NEVER modify existing table structures with data
  • Pre-deployment checklist
  • Recovery procedures

Quick Reference

Common CLI Commands

# Install CLI
npm i -g @proton/cli

# Set network
proton chain:set proton          # Mainnet
proton chain:set proton-test     # Testnet

# Account info
proton account myaccount -t      # With token balances

# Query table
proton table CONTRACT TABLE

# Execute action
proton action CONTRACT ACTION 'JSON_DATA' AUTHORIZATION

# Deploy contract
proton contract:set ACCOUNT ./assembly/target

Common RPC Query

const { JsonRpc } = require('@proton/js');
const rpc = new JsonRpc('https://proton.eosusa.io');

const { rows } = await rpc.get_table_rows({
  code: 'CONTRACT',
  scope: 'CONTRACT',
  table: 'TABLE',
  limit: 100
});

Basic Contract Structure

import { Contract, Table, TableStore, Name } from 'proton-tsc';

@table("mydata")
class MyData extends Table {
  constructor(
    public id: u64 = 0,
    public owner: Name = new Name(),
    public value: string = ""
  ) { super(); }

  @primary
  get primary(): u64 { return this.id; }
}

@contract
class MyContract extends Contract {
  dataTable: TableStore<MyData> = new TableStore<MyData>(this.receiver);

  @action("store")
  store(owner: Name, value: string): void {
    requireAuth(owner);
    const row = new MyData(this.dataTable.availablePrimaryKey, owner, value);
    this.dataTable.store(row, this.receiver);
  }
}

Basic Frontend Login

import ProtonWebSDK from '@proton/web-sdk';

const { link, session } = await ProtonWebSDK({
  linkOptions: {
    chainId: '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0',
    endpoints: ['https://proton.eosusa.io']
  },
  selectorOptions: { appName: 'My App' }
});

// session.auth contains { actor, permission }
// Use session.transact() for transactions

Key Packages

PackagePurposeInstall
@proton/cli
Command-line tools
npm i -g @proton/cli
proton-tsc
Contract development
npm i proton-tsc
@proton/web-sdk
Frontend wallet integration
npm i @proton/web-sdk
@proton/link
Mobile wallet transport (required with web-sdk)
npm i @proton/link
@proton/js
RPC queries
npm i @proton/js

Official Resources


Safety Reminders

  1. NEVER modify existing table structures once deployed with data - this breaks deserialization
  2. Always test on testnet before mainnet deployment
  3. Verify the target account before deploying - wrong account = overwrite existing contract
  4. Back up ABIs before deploying changes
  5. Use new tables for new features instead of modifying existing ones