Swift Concurrency
HoangNguyen0403/agent-skills-standard
Implement async/await, Actors, and structured concurrency in Swift.
Guides Stellar blockchain development in Swift using stellar-ios-mac-sdk.
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdk --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .claude/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .claude/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdk --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .agents/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .agents/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdk --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .cursor/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .cursor/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Soneso/stellar-ios-mac-sdk.git --path skills/stellar-ios-mac-sdk--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdk --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .gemini/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .gemini/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .github/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .github/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Soneso/stellar-ios-mac-sdk stellar-ios-mac-sdk --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Soneso/stellar-ios-mac-sdk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/stellar-ios-mac-sdk .opencode/skills/stellar-ios-mac-sdk && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "stellar-ios-mac-sdk" agent skill from https://github.com/Soneso/stellar-ios-mac-sdk/tree/master/skills/stellar-ios-mac-sdk into .opencode/skills/stellar-ios-mac-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stellar-ios-mac-sdk", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
stellar-ios-mac-sdkGuides Stellar blockchain development in Swift using stellar-ios-mac-sdk.
Stellar iOS Mac SDK is an agent skill from Soneso/stellar-ios-mac-sdk. Guides Stellar blockchain development in Swift using stellar-ios-mac-sdk. Use when generating Swift code for transaction building, signing, Horizon API queries, Soroban RPC, smart contract deployment and invocation, smart accounts (OpenZeppelin) with passkey / WebAuthn authentication, XDR encoding/decoding, and SEP protocol integration. Network APIs use Swift async/await; Horizon streaming is callback-based. Triggers when the developer mentions Stellar, blockchain, passkey, smart wallet, or biometric signing on…
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 34 other files, including reference files (for example `references/advanced.md`, `references/api_reference.md` and `references/common_pitfalls.md`). Compatibility notes: Requires Xcode 16+ (Swift 6 toolchain), iOS 15+, macOS 12+. Zero external dependencies.
It sits in Backend & APIs, covering iOS development, Async programming and Smart contract auditing. It works with iOS, Stellar, macOS and Swift. The repository describes itself as: Stellar SDK for iOS & macOS - Swift, Stellar, Horizon, Soneso. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f130530. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
soroban-testnet.stellar.orgAlso links to:
developers.stellar.orgsoroban.stellar.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires Xcode 16+ (Swift 6 toolchain), iOS 15+, macOS 12+. Zero external dependencies.
From compatibility in the SKILL.md frontmatter.
Stellar iOS Mac SDK loads about 4.3k tokens when it runs, and up to ~264k if it reads all its reference files. Until then it costs about 153 tokens; SKILL.md has 734 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Soneso/stellar-ios-mac-sdk at commit f130530, republished under its Apache-2.0 licence (© Soneso). 734 words, ~4,322 tokens.
.claude/skills/stellar-ios-mac-sdk/SKILL.md (or your agent's skills folder). This skill also uses 33 other files; get the full folder from GitHub.The Stellar iOS/Mac SDK (stellarsdk) is a native Swift library for building Stellar applications on iOS 15+ and macOS 12+. It covers the Horizon API, the Soroban RPC API, and the SEP protocol suite. Network APIs use Swift async/await; the Horizon streaming endpoints are callback-based (onReceive closures on retained stream items); builders, encoders, and other utilities are synchronous. The SDK compiles with Swift 6 strict concurrency and has zero external dependencies.
Module name: stellarsdk (always lowercase in import statements)
Add the SDK with Swift Package Manager:
.package(name: "stellarsdk", url: "git@github.com:Soneso/stellar-ios-mac-sdk.git", from: "3.12.0")All code examples below assume
import stellarsdk.If you can't find a constructor or method signature in this file or the topic references, grep
references/api_reference.md— it has all public class/method signatures.
Fundamental Stellar concepts and SDK patterns.
// Generate new keypair
let keyPair = try KeyPair.generateRandomKeyPair()
let accountId = keyPair.accountId // G-address
guard let secretSeed = keyPair.secretSeed else {
throw StellarSDKError.invalidArgument(message: "Failed to get secret seed")
}
// WARNING: Store secretSeed securely (iOS Keychain). Never log or hardcode it.// From existing seed (seed: the "S..." secret seed string, loaded from secure storage)
let keyPair = try KeyPair(secretSeed: seed)
let publicOnly = try KeyPair(accountId: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ") // public-only, cannot sign// Fund testnet account (FriendBot)
let keyPair = try KeyPair.generateRandomKeyPair()
let sdk = StellarSDK.testNet()
let responseEnum = await sdk.accounts.createTestAccount(accountId: keyPair.accountId)
// Query account
let responseEnum = await sdk.accounts.getAccountDetails(accountId: accountId)
switch responseEnum {
case .success(let accountResponse):
print("Sequence: \(accountResponse.sequenceNumber)")
print("Subentry count: \(accountResponse.subentryCount)") // Trustlines, offers, data entries
for balance in accountResponse.balances {
print("Asset: \(balance.assetType), Balance: \(balance.balance)")
// WRONG: balance.assetType == AssetType.ASSET_TYPE_NATIVE (comparing String to Int32)
// CORRECT: balance.assetType == "native" (response fields are strings)
if balance.assetType == "native" {
print(" → Native XLM balance")
} else if balance.assetType == "credit_alphanum4" || balance.assetType == "credit_alphanum12" {
print(" → Custom asset: \(balance.assetCode ?? ""):\(balance.assetIssuer ?? "")")
}
}
case .failure(let error):
print("Error: \(error)")
}// Native XLM
let xlm = Asset(type: AssetType.ASSET_TYPE_NATIVE)!
// Issued asset (4-char code)
let issuerKeyPair = try KeyPair(accountId: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ") // asset issuer
let usdc = Asset(type: AssetType.ASSET_TYPE_CREDIT_ALPHANUM4,
code: "USDC",
issuer: issuerKeyPair)!
// From canonical form "CODE:ISSUER" — failable, returns nil for a malformed string
if let asset = Asset(canonicalForm: "USDC:GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ") {
print(asset.toCanonicalForm())
}// Pre-configured: Network.testnet, Network.public, Network.futurenet
let testnetSdk = StellarSDK.testNet()
let publicSdk = StellarSDK.publicNet()
// Custom Horizon URL
let customSdk = StellarSDK(withHorizonUrl: "https://my-horizon.example.com")Query patterns for retrieving blockchain data. All queries return result enums (.success/.failure).
let sdk = StellarSDK.testNet()
// Account details
let accountEnum = await sdk.accounts.getAccountDetails(accountId: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ")
// Transactions for account
let txEnum = await sdk.transactions.getTransactions(
forAccount: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
from: nil,
order: .descending,
limit: 10
)
// Pagination: use cursor from last record's pagingToken
switch txEnum {
case .success(let page):
if let lastRecord = page.records.last {
let nextPage = await sdk.transactions.getTransactions(
forAccount: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
from: lastRecord.pagingToken,
order: .descending,
limit: 10
)
}
case .failure(let error):
print("Error: \(error)")
}For the full Horizon endpoint coverage, advanced queries, and memo inspection: Horizon API Reference
Real-time update patterns using Server-Sent Events. You must hold a strong reference to the stream item or it will close immediately.
class PaymentMonitor {
private var streamItem: OperationsStreamItem? // Strong reference required!
private let sdk = StellarSDK.testNet()
func startStreaming(accountId: String) {
streamItem = sdk.payments.stream(
for: .paymentsForAccount(account: accountId, cursor: "now")
)
streamItem?.onReceive { response in
switch response {
case .response(let id, let operationResponse):
if let payment = operationResponse as? PaymentOperationResponse {
print("[\(id)] Payment: \(payment.amount) \(payment.assetCode ?? "XLM")")
}
case .error(let error):
print("Stream error: \(error?.localizedDescription ?? "unknown")")
default:
break
}
}
}
func stopStreaming() {
streamItem?.closeStream()
streamItem = nil
}
}For reconnection patterns and all streaming endpoints: Horizon Streaming Guide
Complete transaction lifecycle: Build -> Sign -> Submit.
let sdk = StellarSDK.testNet()
// senderKeyPair: the sender's signing KeyPair, built from its secret seed
// destinationAccountId: an existing account on the selected network
// 1. Load sender account (AccountResponse conforms to TransactionAccount)
let accountEnum = await sdk.accounts.getAccountDetails(accountId: senderKeyPair.accountId)
guard case .success(let accountResponse) = accountEnum else {
throw StellarSDKError.invalidArgument(message: "Could not load the sender account")
}
// 2. Create payment operation
let paymentOp = try PaymentOperation(
sourceAccountId: nil,
destinationAccountId: destinationAccountId,
asset: Asset(type: AssetType.ASSET_TYPE_NATIVE)!,
amount: 100.0 // Decimal type
)
// 3. Build transaction
let transaction = try Transaction(
sourceAccount: accountResponse,
operations: [paymentOp],
memo: Memo.text("Payment"),
maxOperationFee: 100
)
// 4. Sign
try transaction.sign(keyPair: senderKeyPair, network: Network.testnet)
// 5. Submit
let submitEnum = await sdk.transactions.submitTransaction(transaction: transaction)
switch submitEnum {
case .success(let response):
print("Success! Hash: \(response.transactionHash)")
case .destinationRequiresMemo(let accountId):
print("SEP-29: Destination \(accountId) requires memo")
case .failure(let error):
print("Failed: \(error)")
}For all operations (ChangeTrust, ManageSellOffer, CreateAccount, etc.): Operations Reference
RPC endpoint patterns for Soroban smart contract queries.
let server = SorobanServer(endpoint: "https://soroban-testnet.stellar.org")
server.enableLogging = true // Optional: debug logging
// Health check
let healthEnum = await server.getHealth()
// Network info
let networkEnum = await server.getNetwork()For all RPC methods (getAccount, simulateTransaction, getEvents, etc.): RPC Reference
Contract deployment and invocation patterns using SorobanClient.
let keyPair = try KeyPair(secretSeed: secretSeed)
let rpcUrl = "https://soroban-testnet.stellar.org"
// Step 1: Install WASM
let wasmHash = try await SorobanClient.install(
installRequest: InstallRequest(
rpcUrl: rpcUrl,
network: Network.testnet,
sourceAccountKeyPair: keyPair,
wasmBytes: wasmData,
enableServerLogging: false
)
)
// Step 2: Deploy instance
let client = try await SorobanClient.deploy(
deployRequest: DeployRequest(
rpcUrl: rpcUrl,
network: Network.testnet,
sourceAccountKeyPair: keyPair,
wasmHash: wasmHash,
constructorArgs: [SCValXDR.u32(1000)], // optional — see soroban_contracts.md
enableServerLogging: false
)
)
print("Contract ID: \(client.contractId)")// keyPair, rpcUrl: as in the deploy example above
// Create client for existing contract
let client = try await SorobanClient.forClientOptions(
options: ClientOptions(
sourceAccountKeyPair: keyPair,
contractId: "CB3FU6M3TOAGRBLN5WDLXL6A7VR5SSRGULMXQQOABNMPS25YRJ4CN5VV", // deployed contract
network: Network.testnet,
rpcUrl: rpcUrl
)
)
// Invoke method (handles simulation, signing, submission)
let result = try await client.invokeMethod(
name: "hello",
args: [SCValXDR.symbol("world")]
)For multi-auth workflows, low-level deploy/invoke, contract authorization, and protocol-27 (CAP-71) credential arms and delegated authorization: Smart Contracts Guide
Passkey-authenticated Soroban smart accounts: biometric (Face ID / Touch ID) auth, multiple signers (passkey / delegated / Ed25519), context rules, policies, and optional fee sponsoring via a relayer. Entry point: OZSmartAccountKit.create(config:).
submit / fundWallet, the externalSigners manager, indexer__check_auth debugging), contract error codesXDR is Stellar's binary serialization format.
// transaction: a built Transaction (see section 4)
let xdrBase64 = try transaction.encodedEnvelope()
// Decode XDR back into a transaction
let decoded = try Transaction(envelopeXdr: xdrBase64)// Soroban contract values
let boolVal = SCValXDR.bool(true)
let u32Val = SCValXDR.u32(42)
let symbolVal = SCValXDR.symbol("transfer")
let addressVal = SCValXDR.address(try SCAddressXDR(accountId: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ")) // SCAddressXDR throws, .address() does notFor all XdrSCVal types and encoding/decoding utilities: XDR Reference
let sdk = StellarSDK.testNet()
// Checksum-valid account id, not funded on any network — Horizon answers 404
let responseEnum = await sdk.accounts.getAccountDetails(accountId: "GB6HKIDW4WVQPPFPTXTVKZMAJIL33DUZGWBVLQV35TTYUNIUL7AL2UTG")
switch responseEnum {
case .success(let account):
print("Found: \(account.accountId)")
case .failure(let error):
switch error {
case .notFound(let message, _):
print("Account not found: \(message)")
case .rateLimitExceeded(let message, _):
print("Rate limited: \(message)")
default:
print("Other error: \(error)")
}
}let submitEnum = await sdk.transactions.submitTransaction(transaction: transaction)
switch submitEnum {
case .success(let response):
print("Success: \(response.transactionHash)")
case .failure(let error):
if case .badRequest(_, let errorResponse) = error {
if let resultCodes = errorResponse?.extras?.resultCodes {
print("TX code: \(resultCodes.transaction ?? "unknown")")
print("Op codes: \(resultCodes.operations ?? [])")
}
}
case .destinationRequiresMemo:
print("SEP-29 memo required")
}For the full error catalog and solutions: Troubleshooting Guide
Never hardcode secret seeds. Use iOS Keychain for storage. Always verify transaction details before signing. Validate network passphrases to prevent mainnet accidents.
The SDK implements the Stellar Ecosystem Proposals for discovery, authentication, KYC, deposits and withdrawals, quotes, and messaging: SEP-01 (TOML), SEP-02 (Federation), SEP-05 (Key Derivation), SEP-10 (Web Auth), SEP-24 (Interactive deposit/withdrawal), and more.
Multi-signature accounts, sponsored reserves, claimable balances, liquidity pools, muxed accounts (M-addresses), fee-bump transactions, path payments.
External Resources:
The mistakes that most often break builds or transactions, each with WRONG/CORRECT Swift examples: lowercase import stellarsdk; stream items must be retained; operation amounts are Decimal while Horizon returns String balances; sequence numbers are already Int64 and Transaction(sourceAccount:) increments them internally; the signing network must match the SDK instance; a KeyPair built from an accountId cannot sign; missing signatures for the transaction's source account surface as tx_bad_auth in the transaction code, while an operation whose own source account fails its thresholds surfaces as op_bad_auth in the operation codes; fees are per operation; Soroban transactions need simulation before signing.
For error handling patterns and troubleshooting: Troubleshooting Guide
© Soneso, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 33 other files (references) in skills/stellar-ios-mac-sdk of Soneso/stellar-ios-mac-sdk.
Open the folder on GitHubat commit f130530
Stellar iOS Mac SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Stellar iOS Mac SDK this skillSoneso/stellar-ios-mac-sdk | 132 | — | ~4.3k | Automated safety check: Pass | Apache-2.0 | |
| Swift ConcurrencyHoangNguyen0403/agent-skills-standard | 571 | — | ~545 | Automated safety check: Pass | MIT | |
| iOS Networkingdpearson2699/swift-ios-skills | 1.2k | — | ~4.2k | Automated safety check: Pass | Custom licence | |
| AgentSquad for Swift2FastLabs/agent-squad | 7.8k | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Core Data ExpertAvdLee/Core-Data-Agent-Skill | 315 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Swift Concurrencynimblehq/ios-templates | 110 | — | ~1.7k | Automated safety check: Pass | MIT |
HoangNguyen0403/agent-skills-standard
Implement async/await, Actors, and structured concurrency in Swift.
dpearson2699/swift-ios-skills
Build, review, or improve networking code in iOS/macOS apps using URLSession with async/await, structured concurrency, and modern Swift patterns.
2FastLabs/agent-squad
Guides building on-device multi-agent apps in Swift with the AgentSquad framework: which agent, orchestrator, classifier, storage or voice type fits each situation.
AvdLee/Core-Data-Agent-Skill
Expert Core Data guidance (iOS/macOS): stack setup, fetch requests & NSFetchedResultsController, saving/merge conflicts, threading & Swift Concurrency, batch operations & persistent history…
nimblehq/ios-templates
Write, review, or fix Swift 6 concurrency code using actors, Sendable, structured concurrency, and the strict data-race-safety model.
microsoft/SwiftStreamingMarkdown
Record and validate swift-snapshot-testing snapshots in the SwiftStreamingMarkdown package: regenerate reference PNGs, run snapshot tests, and diff failed snapshots.
Works with
Categories
Guides Stellar blockchain development in Swift using stellar-ios-mac-sdk. Stellar iOS Mac SDK is an agent skill from Soneso/stellar-ios-mac-sdk. Guides Stellar blockchain development in Swift using stellar-ios-mac-sdk.
Stellar iOS Mac SDK fits situations like: generating Swift code for transaction building; horizon API queries; smart contract deployment and invocation; smart accounts (OpenZeppelin) with passkey / WebAuthn authentication.
Run `npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a claude-code`. Or copy the skill folder (skills/stellar-ios-mac-sdk in Soneso/stellar-ios-mac-sdk) into .claude/skills/stellar-ios-mac-sdk in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a codex`. Or copy the skill folder (skills/stellar-ios-mac-sdk in Soneso/stellar-ios-mac-sdk) into .agents/skills/stellar-ios-mac-sdk in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Soneso/stellar-ios-mac-sdk --skill stellar-ios-mac-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stellar-ios-mac-sdk, .gemini/skills/stellar-ios-mac-sdk, .github/skills/stellar-ios-mac-sdk and .opencode/skills/stellar-ios-mac-sdk in your project.
SKILL.md names no scripts, command-line tools or credentials: Stellar iOS Mac SDK is instructions for the agent only. Compatibility (from SKILL.md): Requires Xcode 16+ (Swift 6 toolchain), iOS 15+, macOS 12+. Zero external dependencies..
SKILL.md names 3 domains. In commands or code: soroban-testnet.stellar.org; the agent is likely to contact it when it follows the instructions. As links in the text: developers.stellar.org and soroban.stellar.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Stellar iOS Mac SDK is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 260k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Stellar iOS Mac SDK: Swift Concurrency (HoangNguyen0403/agent-skills-standard, 571 stars), iOS Networking (dpearson2699/swift-ios-skills, 1.2k stars), AgentSquad for Swift (2FastLabs/agent-squad, 7.8k stars) and Core Data Expert (AvdLee/Core-Data-Agent-Skill, 315 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Soneso (a GitHub organization) maintains it in Soneso/stellar-ios-mac-sdk, which has 132 GitHub stars. The repository was last updated on October 7, 2026.
Source: Soneso/stellar-ios-mac-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.