Custody wallets
Hot, warm and cold wallets on 25+ networks, with every transfer checked against your policy.
Custody, stablecoin payments and Travel Rule on one API, from a VASP registered in Korea.
Rules you set in the console are checked before every signature.
Rules you set in the console are checked before every signature.
Start with one module and add the rest without a migration.
Hot, warm and cold wallets on 25+ networks, with every transfer checked against your policy.
Collect, pay out and settle in USDC and USDT.
KRW to stablecoin and back through partner providers.
Screening and Travel Rule before the signature.
Mint and burn behind multi-party approval.
See every balance and approval in one view.
Screening, Travel Rule and multi-party approval clear before any key signs. One switch pauses every withdrawal.
Designed for businesses supervised by financial regulators.
Operated by Hecto Innovation.
No approval needed to build. Mainnet access follows a review.
Multi-signature wallets with segregated key material.
Limits, allowlists and multi-party approval run before signing.
Thresholds and fields configurable per jurisdiction.
Every change, approval and signature, exportable.
Cloud, dedicated tenancy or on-premise.
REST, signed webhooks and SDKs for Node.js, Python and Java. Testnet runs the same policy engine as production.
curl https://api.octet.im/2.0/wallets/wlt_8f2a/transfers \ -H "Authorization: Bearer $OCTET_API_TOKEN" \ -H "Idempotency-Key: 7f3c2a1e" \ -d '{ "asset": "USDC", "amount": "250000.00", "to": "0x4b3…9c1e", "travel_rule": { "beneficiary_vasp": "LEI:5493…" } }'
import Octet from "@octet/sdk"; const octet = new Octet(process.env.OCTET_API_TOKEN); const transfer = await octet.transfers.create("wlt_8f2a", { asset: "USDC", amount: "250000.00", to: "0x4b3…9c1e", travelRule: { beneficiaryVasp: "LEI:5493…" }, }, { idempotencyKey: "7f3c2a1e" }); console.log(transfer.state); // "awaiting_approval"
from octet import Octet client = Octet(api_key=os.environ["OCTET_API_TOKEN"]) transfer = client.transfers.create( "wlt_8f2a", asset="USDC", amount="250000.00", to="0x4b3…9c1e", travel_rule={"beneficiary_vasp": "LEI:5493…"}, idempotency_key="7f3c2a1e", ) print(transfer.state) # awaiting_approval
// POST https://your-app.example/octet/webhook // Octet-Signature: t=1760950985,v1=3f1a… { "type": "transfer.approved", "data": { "id": "trf_01J9K4", "state": "broadcast", "tx_hash": "0x9d2c…", "approvals": { "required": 2, "received": 2 } } }
Tell us what you move and where. We reply in one business day.