Fin-Core
Developer-first financial infrastructure

The operational core for transaction-driven products.

Fin-Core gives builders, operators, and evaluation teams a serious path from first integration to adoption-ready financial workflows.

Manual approvals, expiring activation links, and tenant-scoped onboarding keep the path credible from demo to production hardening.

Use Now Guide

Start with the activation email, create a demo transaction, then submit and inspect an execution intent.

1. Activate And Run

Approval now creates the tenant automatically and emails the activation link to the request contact from [email protected].

CLI activation smoke
# 1. After approval, open the emailed activation link and reveal the dev key.
export FINCORE_BASE_URL="https://YOUR_FINCORE_BASE_URL"
export FINCORE_API_KEY="fincore_REVEALED_DEV_KEY"

# 2. Verify auth, tenant state, rate limits, and hosted readiness.
fincore doctor

# 3. Create a visible sandbox transaction and print the console link.
fincore demo --idempotency-key demo-001

2. Execute Something Meaningful

fincore demo creates a tenant-scoped sandbox transaction. The execution command goes further by building an approved contract call from an intent definition, submitting it, and returning an execution id.

CLI discovery and execution
# Discover the official rail deployment and supported intent types.
fincore deployments list --environment local
fincore execute intent-types

# Submit a real execution intent against an approved deployment.
fincore execute intent \
  --type vaultDeposit \
  --deployment official-rail-v0-anvil-individual-vault \
  --param amount=1000 \
  --param asset=USDC \
  --idempotency-key vault-deposit-001

# Inspect the returned execution id until it is submitted/confirmed/failed.
fincore executions get --execution-id exec_REPLACE_ME

3. TypeScript SDK

SDK demo and execution
import { FinCoreClient } from "@fincore/sdk";

const client = new FinCoreClient({
  baseUrl: process.env.FINCORE_BASE_URL!,
  apiKey: process.env.FINCORE_API_KEY!,
});

const demo = await client.demo({
  idempotencyKey: client.idempotencyKey("demo"),
  source: "sdk",
});
console.log("demo tx", demo.data.txId, demo.data.dashboardUrl);

const execution = await client.execution.executeIntent(
  {
    intentType: "vaultDeposit",
    deploymentId: "official-rail-v0-anvil-individual-vault",
    parameters: { amount: "1000", asset: "USDC" },
  },
  { idempotencyKey: "vault-deposit-001" }
);
console.log("execution", execution.data.executionId, execution.data.status);

4. Raw HTTP

Bootstrap and demo transaction
curl -fsS "$FINCORE_BASE_URL/console/bootstrap" \
  -H "Authorization: Bearer $FINCORE_API_KEY"

curl -fsS -X POST "$FINCORE_BASE_URL/console/demo" \
  -H "Authorization: Bearer $FINCORE_API_KEY" \
  -H "Idempotency-Key: demo-001" \
  -H "x-fincore-source: api"