Programmable wallet infrastructure for every developer
Create and manage wallets, sign transactions, and send stablecoins. Pay only for what you use — no seat fees, no hidden costs.
Free sandbox tier

VaultKey cut our wallet integration time from weeks to a single afternoon. The stablecoin transfer API is exactly the abstraction we needed.

Finally a wallet layer that doesn't try to lock you in. The multi-chain support and KMS options made this an easy choice.

don't sleep on VaultKey

The sandbox isolation is a killer feature for staging environments.

Webhook delivery + job polling. Perfect async model.


Dashboard & Analytics
Monitor wallet activity, credit consumption, and operation counts in real time. Filter by chain, operation type, and date range. Export usage data and track which teams are spending what.

EVM + Solana Support
Create and manage wallets across all major EVM networks — Ethereum, Polygon, Arbitrum, Base, Optimism, BSC — and Solana. One unified API for both ecosystems.
Stablecoin Transfers
Send USDC and USDT with a single API call. Async job queue with webhook delivery and polling. Gasless transfers via relayer on supported EVM chains.
KMS Key Management
Pluggable KMS backends — HashiCorp Vault, AWS KMS, and GCP KMS. Keys never leave the HSM. Bring your own KMS or use the managed default.
Multi-tenant & RBAC
Full organization model with owner, admin, developer, and viewer roles. Separate mainnet and sandbox environments with isolated orgs, API keys, and credit balances.
Typed SDKs and a simple REST API — integrate managed wallets in minutes, not weeks.
import { VaultKey } from "@vaultkey/sdk";
const vk = new VaultKey({
apiKey: "vk_live_your_api_key",
apiSecret: "your_api_secret",
});
// Create a wallet
const { data: wallet } = await vk.wallets.create({
userId: "user_123",
chainType: "evm",
label: "main",
});
// Send USDC on Polygon
const { data: job } = await vk.stablecoin.transfer(wallet.id, {
token: "usdc",
to: "0xRecipientAddress",
amount: "50.00",
chainType: "evm",
chainName: "polygon",
});
// Poll for result
const { data: result } = await vk.jobs.get(job.jobId);
console.log(result.status); // "completed"from vaultkey import VaultKey
vk = VaultKey(
api_key="vk_live_your_api_key",
api_secret="your_api_secret",
)
# Create a wallet
wallet, err = vk.wallets.create({
"user_id": "user_123",
"chain_type": "evm",
"label": "main",
})
# Send USDC on Polygon
job, err = vk.stablecoin.transfer(wallet["id"], {
"token": "usdc",
"to": "0xRecipientAddress",
"amount": "50.00",
"chain_type": "evm",
"chain_name": "polygon",
})
# Poll for result
result, err = vk.jobs.get(job["job_id"])
print(result["status"]) # "completed"package main
import (
"context"
"log"
vaultkey "github.com/vaultkey/vaultkey-go"
)
func main() {
vk, err := vaultkey.NewClient("vk_live_your_api_key", "your_api_secret")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
// Create wallet
wallet, apiErr, err := vk.Wallets.Create(ctx, vaultkey.CreateWalletPayload{
UserID: "user_123",
ChainType: vaultkey.ChainTypeEVM,
Label: "main",
})
if err != nil || apiErr != nil {
log.Fatal(err, apiErr)
}
// Send USDC on Polygon
job, apiErr, err := vk.Stablecoin.Transfer(ctx, wallet.ID,
vaultkey.ChainTypeEVM,
vaultkey.StablecoinTransferPayload{
Token: "usdc",
To: "0xRecipientAddress",
Amount: "50.00",
ChainName: "polygon",
},
)
if err != nil || apiErr != nil {
log.Fatal(err, apiErr)
}
// Poll for result
result, _, _ := vk.Jobs.Get(ctx, job.JobID)
log.Println(result.Status) // "completed"
}# Create a wallet
curl -X POST https://app.getvaultkey.com/api/v1/sdk/wallets -H "X-API-Key: vk_live_your_api_key" -H "X-API-Secret: your_api_secret" -H "Content-Type: application/json" -d '{"user_id":"user_123","chain_type":"evm","label":"main"}'
# Send USDC on Polygon
curl -X POST https://app.getvaultkey.com/api/v1/sdk/wallets/{walletId}/stablecoin/transfer/evm -H "X-API-Key: vk_live_your_api_key" -H "X-API-Secret: your_api_secret" -H "Content-Type: application/json" -d '{
"token": "usdc",
"to": "0xRecipientAddress",
"amount": "50.00",
"chain_name": "polygon"
}'Free to start. Scale when you need to. No seat fees, no hidden costs.
Slide to pick your usage tier and billing cycle.
100% money-back guarantee · Credits don't roll over · No hidden fees
VaultKey provides wallet infrastructure for developers who need to create and manage wallets on behalf of their users. Keys are processed inside hardware security boundaries — never exposed to your application layer.


