A free, open-source self-custody crypto wallet for iPhone and iPad.
Aperture lets you hold, send, and receive Bitcoin, Ethereum, Solana, and assets across 22 additional production mainnets while keeping control of your wallet credentials. There is no Aperture account, custody service, swap engine, in-app Web3 browser, or dApp approval layer.
Download on the App Store · Website · Security model · Supported networks · Journal
- Self-custody: wallet credentials are created and used on the device. Aperture cannot sign for you or recover a lost recovery phrase.
- Open source: the production code is available under the MIT License for inspection, building, and independent review.
- Clear network boundaries: accounts, address formats, native assets, token identities, fees, and transaction status remain network-specific.
- Focused attack surface: Aperture deliberately omits buying, selling, swapping, an in-wallet browser, and standing dApp approvals.
- Native Apple experience: SwiftUI interface for iPhone and iPad with Face ID or device-passcode app locking, accessibility, localization, and platform-native navigation.
- Portable recovery: standard recovery-phrase and private-key import paths, optional BIP-39 passphrases, encrypted backup, and direct encrypted iPhone-to-iPhone transfer.
| Family | Networks |
|---|---|
| Bitcoin-style | Bitcoin, Bitcoin Cash, Litecoin, Dogecoin |
| EVM | Ethereum, BNB Smart Chain, Arbitrum One, Base, Polygon PoS, OP Mainnet, Avalanche C-Chain, Gnosis Chain, Linea, Scroll, Taiko Alethia, Telos EVM, X Layer |
| Other account models | Solana, TRON, TON, Sui, Aptos, NEAR Protocol, Stellar, XRP Ledger |
Network support means Aperture derives and validates the correct account identity for that mainnet. A matching ticker, logo, or hexadecimal-looking address does not make two networks interchangeable. See the network catalog for address, fee, token, and transaction details for every supported chain.
Aperture stores sensitive wallet material locally using Apple Keychain with this-device-only protection. Recovery phrases, private keys, passcodes, passcode verifiers, API credentials, and encryption keys are not stored in the app database. Signing happens on the device; only public account data and signed transactions are sent to network infrastructure when required for wallet operation.
Self-custody also means there is no company-held recovery copy. Before funding a wallet, verify your recovery method and understand the effect of any optional BIP-39 passphrase. Start with the security model and the guide to backup and restore.
Requirements:
- Xcode 26.5 or newer
- iOS 26.0 / iPadOS 26.0 deployment target
- XcodeGen
git clone https://github.com/devdasx/aperture.git
cd aperture
cp Secrets.xcconfig.template Secrets.xcconfig
xcodegen generate
open Aperture.xcodeprojSecrets.xcconfig.template documents the optional provider credentials without containing secrets. Keep the real Secrets.xcconfig local and uncommitted.
- Human-readable product documentation: aperturex.io
- Full network catalog: aperturex.io/networks
- Self-custody guides and product notes: Aperture Journal
- Machine-readable overview:
llms.txt - Extended machine-readable documentation:
llms-full.txt - OpenAPI description:
openapi.json - Official MCP Registry server:
io.aperturex/aperture-wallet-knowledge - Read-only MCP endpoint:
https://aperturex.io/mcp/ - MCP server implementation:
mcp-server/ - Static MCP server card:
/.well-known/mcp/server-card.json
The public mcp-server/ directory contains the production PHP request handler, all 12 tool definitions, the citation/search layer, the read-only Journal adapter, the public data snapshot, local run commands, and an explicit permission and network-access boundary. The server requires no authentication and cannot access wallet credentials, balances, signing, broadcasting, or other user wallet state.
- Agent connection guide:
llms-install.md
Connect from any MCP client that supports remote Streamable HTTP:
{
"mcpServers": {
"aperture-wallet-knowledge": {
"type": "http",
"url": "https://aperturex.io/mcp/"
}
}
}The server is public, requires no authentication, and exposes only read-only product knowledge. It cannot access a wallet, inspect balances, process wallet credentials, sign, authorize, or broadcast transactions.
This repository is also a conforming Agent Plugins 1.0
package. Compatible clients can load the root plugin.json and
mcp.json to connect to the same public, read-only MCP endpoint.
The package requires no API key, secret, local process, or wallet permission.
The portable package is intended for agent clients such as Cursor and GitHub Copilot/VS Code that support the Agent Plugins standard. It adds verified public Aperture knowledge only; installing it does not connect to, inspect, or control the Aperture iOS app or any user wallet.
The Agent Plugins project's current compatibility catalog includes VS Code, Cursor, GitHub Copilot, ChatGPT and Codex, Kiro, Hermes Agent, OpenClaw, Grok Bot, and NanoClaw. Each client still controls its own installation, permissions, and enabled components.
Hermes Agent can install this repository directly, then enable the portable plugin explicitly:
hermes plugins install devdasx/aperture --no-enable
hermes plugins enable aperture-wallet-knowledgeInstall the source-guidance skill from Aperture's first-party discovery endpoint:
npx skills add https://aperturex.io --skill aperture-wallet-guideOr install the same skill directly from this public repository:
npx skills add devdasx/aperture --skill aperture-wallet-guideThe discovery index is published at /.well-known/agent-skills/index.json, and the skill is also inspectable on skills.sh. It contains instructions only: no executable, account, API key, secret, or wallet connection.
Claude Code and Cowork can use the repository as an Aperture knowledge plugin.
The Claude manifest is at .claude-plugin/plugin.json,
the source guidance is in skills/aperture-wallet-guide/SKILL.md,
and .mcp.json connects to the same public read-only server. The
plugin requires no account, API key, secret, local executable, or access to a
user wallet.
Install the public read-only knowledge extension directly from this repository:
gemini extensions install https://github.com/devdasx/apertureThe extension adds the same public MCP endpoint plus concise product and safety context. It requires no API key and cannot access a wallet, private keys, recovery phrases, balances, or signing.
- Privacy policy: aperturex.io/privacy
- Product support: aperturex.io/support
- Security reports: responsible disclosure
Issues and pull requests are welcome when they include a reproducible problem, a narrowly scoped change, and appropriate validation. Do not post exploitable security details in a public issue; use the responsible-disclosure instructions instead.
Aperture is released under the MIT License.
Cryptocurrency transactions may be irreversible. Verify the network, asset, destination, amount, and fee before authorizing a transfer. Aperture does not provide investment, tax, or legal advice.