The permissionless embedded wallet you own.

Stop renting your user layer from middlemen. Let customers hold, move, and spend stablecoins directly in your existing product experience. Fully non-custodial, with no API keys, paymasters, middlemen, or rent fees.

Install the skill to guide your coding agent
npx skills add 1Shot-API/skills/1shot-wallet

Connecting to wallet…

Embedded wallet infrastructure for product teams

Ship passkey-native accounts, stablecoin balances, and agent permissions without renting a closed user layer from a wallet vendor. Learn what an embedded wallet is.

Move money globally with fewer barriers

Use embedded stablecoins to enable faster, always-on payments and transfers across markets.

Automate transactions without losing control

Delegate account actions to users, teams, and AI agents with precise permissions, limits, and enterprise policies.

Reduce identity friction and compliance costs

Verify customers once and reuse portable credentials across products, markets, and providers.

Go onchain immediately — no purchase necessary.

There is no developer account or subscription required to scale. Just import the 1Shot provider package and customize the look and feel for your product.

  • No API keys, MAU tiers or wallet signature fees
  • Users can access the same onchain account between apps, increasing network effects
  • Compatible with all blockchain networks
  • Works with standard Web3 libraries like viem and ethers
embed-wallet.ts
import { OWSProxy } from "@1shotapi/ows-provider";
 
// No dev accounts or API key, just use the wallet iframe
const WALLET_URL = "https://wallet.1shotapi.com/";
 
const container = document.getElementById(
"wallet-container"
)!;
const proxy = await OWSProxy.create(
container,
WALLET_URL,
);
 
// Optional theming
await proxy.rpc("setStyle", {
copy: { productName: "Acme Wallet" },
theme: { primary: "#239aaa" },
});
 
proxy.showWallet();
 
const accounts = await proxy.ethereum.request({
method: "eth_requestAccounts",
});

Issue OpenID-compliant credentials to the wallet.

Credentials live with the user. Progressive disclosure means they only reveal what a verifier actually needs.

  • Issue verifiable credentials to a user’s wallet they can take to any verifier
  • Progressive disclosure — users have control to only reveal what’s necessary

Accept credential offer?

1shotapi.com (https://1shotapi.com/playground/issuer) wants to issue a credential to your wallet.

Offered credentials:
  • KycCredential (vc+sd-jwt) — kyc

You may be asked to verify with your passkey after you continue.

Outcome-scoped permissions for agents.

EIP-7710 delegations let agents execute strategies when users are offline — bounded by onchain enforcers.

  • EIP-7710 delegations enable modular, outcome-scoped permissioning
  • Execute strategies when users are offline, protected by onchain enforcers
EIP-7715 Permission

wallet.1shotapi.com

Amount25.00 USDC
Transfer windowDaily
Account
Alice's Wallet
JustificationClawdBot stablecoin budget
Networks
Ethereum logo
Ethereum
·
Arc logo
Arc
Start date04/20/2026 14:00
Expiration date06/07/2026 15:00

Pay gas in the stablecoins users already hold.

Sponsor transactions for your users, or let them pay from their own USDC, USDT, USDG, or mUSD balances.

  • Transactions can be paid in popular stablecoins (USDC, USDT, USDG, mUSD)
  • Sponsor transactions for your users or let them pay from their own stablecoin holdings

Network fee

Pay with
ETH logo
ETH
Balance: 0.000346 ETH
USDC logo
USDC
Balance: 67.42 USDC
USDG logo
USDG
Balance: 47.30 USDG
USDT logo
USDT
Balance: 20.65 USDT
Network speed
Slow
0.90 Gwei
1 min
Average
1.49 Gwei
30 sec
Fast
2.69 Gwei
15 sec
FAQ

Embedded wallet questions from enterprise teams

Evaluating embedded wallets or planning a security review? Start here — then explore Architecture and the passkey wallet quickstart.

What is an embedded wallet, and how is 1Shot different from Privy or Thirdweb?
An embedded wallet lives inside your product so users never install a browser extension. 1Shot Wallet is permissionless infrastructure: embed via OWSProxy with no vendor API key, no MAU tiers, and portable passkey-derived accounts by default — unlike Privy or Thirdweb, which meter users and gate cross-app portability.
Is 1Shot Wallet non-custodial? Where are private keys stored?
Yes. Private keys are derived client-side inside the isolated Signing Layer from a WebAuthn passkey PRF. Your Host app receives addresses and signatures via cross-origin postMessage — never key material.
Do we need a vendor contract, API keys, or MAU pricing to integrate?
No. Embed wallet.1shotapi.com with @1shotapi/ows-provider and start in the playground. There is no developer account gate, no per-MAU billing, and no per-signature metering on the wallet layer. You can contact the 1Shot team at info@1shotapi.com for support or SLA inquiries.
Can we white-label the wallet UX in our product?
Yes. Use Host RPC setStyle to merge your product name, colors, and copy into the Branding Layer before users see consent modals or account screens — so the wallet feels native to your fintech or Web3 app.
How does account portability work across apps?
Users control a passkey-derived EOA that is not locked to a single vendor dashboard. The same onchain identity can move between integrator apps that embed 1Shot Wallet, with portable verifiable credentials issued under OpenID standards.
How long does integration typically take?
Most product teams ship a working embed in a day: OWSProxy in the Host, setStyle for branding, and eth_requestAccounts for connect. Pair with the passkey-wallet quickstart and the 1shot-wallet agent skill for guided implementation.
How does this fit with our security review (iframe isolation, OWS layers)?
1Shot Wallet uses the Open Wallet Standard three-layer stack (Host → Branding → Signing). XSS in your Host cannot reach Signing postMessage. Passkey ceremonies and PRF derivation run only inside the nested Signing iframe on wallet.1shotapi.com.
See it in action

Stop renting your user layer.

The first and only permissionless embedded wallet. Never worry about hitting your user limit again.

Install the 1Shot Wallet skill
npx skills add 1Shot-API/skills/1shot-wallet