← All skills
Tencent SkillHub · AI

Xian SDK

Build applications on the Xian blockchain using the xian-py Python SDK. Use when developing apps that interact with Xian — wallets, transactions, smart contracts, state queries, token transfers. Covers sync and async patterns.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Build applications on the Xian blockchain using the xian-py Python SDK. Use when developing apps that interact with Xian — wallets, transactions, smart contracts, state queries, token transfers. Covers sync and async patterns.

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, references/contract-patterns.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
0.1.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 22 sections Open source page

Xian SDK Skill

Build applications on Xian using the xian-py Python SDK.

Installation

pip install xian-py # With Ethereum wallet support pip install "xian-py[eth]"

Quick Reference

from xian_py import Xian, Wallet wallet = Wallet() # New wallet xian = Xian('http://node:26657', wallet=wallet) # Common operations balance = xian.get_balance(wallet.public_key) state = xian.get_state('contract', 'variable', 'key') result = xian.send(amount=100, to_address='recipient') result = xian.send_tx('contract', 'function', {'arg': 'value'}) result = xian.submit_contract('name', code)

Basic Wallet

from xian_py import Wallet # Create new wallet (random seed) wallet = Wallet() # From existing private key wallet = Wallet('ed30796abc4ab47a97bfb37359f50a9c362c7b304a4b4ad1b3f5369ecb6f7fd8') print(wallet.public_key) # Address print(wallet.private_key) # Keep secret!

HD Wallet (BIP39/BIP32)

from xian_py.wallet import HDWallet # Create with new 24-word mnemonic hd = HDWallet() print(hd.mnemonic_str) # Save this! # Restore from mnemonic hd = HDWallet('word1 word2 word3 ... word24') # Derive Xian wallet path = [44, 0, 0, 0, 0] # m/44'/0'/0'/0'/0' wallet = hd.get_wallet(path) # Derive Ethereum wallet (requires eth extras) eth_wallet = hd.get_ethereum_wallet(0) # First account eth_wallet2 = hd.get_ethereum_wallet(1) # Second account

Signing & Verification

wallet = Wallet() # Sign message signature = wallet.sign_msg("Hello Xian") # Verify is_valid = wallet.verify_msg("Hello Xian", signature) # Validate key format Wallet.is_valid_key(wallet.public_key) # True

Blockchain Queries

from xian_py import Xian xian = Xian('http://node:26657') # Balance (default: currency contract) balance = xian.get_balance('address') # Custom token balance balance = xian.get_balance('address', contract='token_contract') # Contract state state = xian.get_state('contract_name', 'variable', 'key') # Get contract source source = xian.get_contract('contract_name', clean=True)

Simple Token Transfer

from xian_py import Xian, Wallet wallet = Wallet('your_private_key') xian = Xian('http://node:26657', wallet=wallet) # Send tokens (auto stamp calculation) result = xian.send(amount=100, to_address='recipient') if result['success']: print(f"TX: {result['tx_hash']}")

Contract Interaction

# Call any contract function result = xian.send_tx( contract='currency', function='transfer', kwargs={'to': 'recipient', 'amount': 1000} ) # With custom token result = xian.send_tx( contract='my_token', function='transfer', kwargs={'to': 'recipient', 'amount': 500} )

Stamp Estimation

from xian_py.transaction import simulate_tx, get_nonce # Simulate to get stamp cost payload = { "contract": "currency", "function": "transfer", "kwargs": {"to": "recipient", "amount": 100}, "sender": wallet.public_key, } result = simulate_tx('http://node:26657', payload) print(f"Stamps needed: {result['stamps_used']}")

Deploy Contract

code = ''' balances = Hash(default_value=0) @construct def seed(): balances[ctx.caller] = 1_000_000 @export def transfer(to: str, amount: float): assert amount > 0, "Amount must be positive" assert balances[ctx.caller] >= amount, "Insufficient balance" balances[ctx.caller] -= amount balances[to] += amount @export def balance_of(address: str) -> float: return balances[address] ''' result = xian.submit_contract('my_token', code) print(f"Deployed: {result['success']}")

Contract Patterns

See references/contract-patterns.md for common patterns (tokens, access control, pausable, upgrades).

Contract Validation

Validate against Xian standards: from xian_py.validator import validate_contract, XianStandard is_valid, errors = validate_contract(code) # XSC001 default # Specific standard is_valid, errors = validate_contract(code, standard=XianStandard.XSC001) if not is_valid: print(errors)

Read-Only Execution

Query contract without spending stamps: from xian_py.transaction import simulate_tx payload = { "contract": "my_token", "function": "balance_of", "kwargs": {"address": "some_address"}, "sender": wallet.public_key, } result = simulate_tx('http://node:26657', payload) print(f"Balance: {result['result']}")

Async Operations

For high-performance applications: import asyncio from xian_py import XianAsync, Wallet async def main(): wallet = Wallet() async with XianAsync('http://node:26657', wallet=wallet) as xian: # Concurrent queries balance, state = await asyncio.gather( xian.get_balance(wallet.public_key), xian.get_state('currency', 'balances', 'address') ) # Send transaction result = await xian.send(amount=100, to_address='recipient') asyncio.run(main())

Batch Operations

async def check_balances(addresses: list[str]): async with XianAsync('http://node:26657') as xian: balances = await asyncio.gather(*[ xian.get_balance(addr) for addr in addresses ]) return dict(zip(addresses, balances))

Sync Wrapper

Call async from sync code: from xian_py import XianAsync, run_sync def get_balance_sync(address: str) -> float: async def _get(): async with XianAsync('http://node:26657') as xian: return await xian.get_balance(address) return run_sync(_get()) balance = get_balance_sync('address')

Encryption

Two-way encrypted messaging: from xian_py import Wallet from xian_py.crypto import encrypt, decrypt_as_sender, decrypt_as_receiver sender = Wallet() receiver = Wallet() # Encrypt encrypted = encrypt(sender.private_key, receiver.public_key, "Secret message") # Decrypt as sender msg = decrypt_as_sender(sender.private_key, receiver.public_key, encrypted) # Decrypt as receiver msg = decrypt_as_receiver(sender.public_key, receiver.private_key, encrypted)

Error Handling

from xian_py import Xian, XianException try: result = xian.send_tx('contract', 'function', {}) except XianException as e: print(f"Blockchain error: {e}")

Token Transfer Service

class TokenService: def __init__(self, node_url: str, private_key: str): self.wallet = Wallet(private_key) self.xian = Xian(node_url, wallet=self.wallet) def transfer(self, to: str, amount: float, token: str = 'currency'): balance = self.xian.get_balance(self.wallet.public_key, contract=token) if balance < amount: raise ValueError(f"Insufficient: {balance} < {amount}") return self.xian.send_tx(token, 'transfer', {'to': to, 'amount': amount})

DEX Swap

async def swap(xian, dex: str, token_in: str, token_out: str, amount: float, min_out: float): # Approve DEX await xian.send_tx(token_in, 'approve', {'to': dex, 'amount': amount}) # Execute swap return await xian.send_tx(dex, 'swap', { 'token_in': token_in, 'token_out': token_out, 'amount_in': amount, 'min_amount_out': min_out })

Resources

xian-py GitHub — Full SDK docs Xian Standard Contracts — Token standards xian.org — Project site

Category context

Agent frameworks, memory systems, reasoning layers, and model-native orchestration.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
2 Docs
  • SKILL.md Primary doc
  • references/contract-patterns.md Docs